Нужно ли мне менять SSD для увеличения срока службы SSD?

35

Я столкнулся с этой статьей, которая включает в себя следующее предложение:

Своп и своппинг

Я сохранил свой раздел подкачки на старом жестком диске. Замена на SSD будет быстрее, но также сократит срок службы SSD.

В моей системе достаточно памяти, поэтому я также уменьшил значение подкачки до 0, чтобы сказать Ubuntu, что подкачка должна выполняться только тогда, когда это абсолютно необходимо. Я сделал это, добавив строку vm.swappiness = 0 в /etc/sysctl.conf.

Правда ли, что установка swappiness на ноль увеличит срок службы моего SSD? Я не могу найти ссылки на это в другом месте.

8128
источник

Ответы:

30

Снижение swapiness до 0 означает, что ОС начнет использовать SSD для подкачки, когда больше не будет свободной свободной оперативной памяти.

Теоретически это может увеличить срок службы SSD, потому что SSD будет страдать меньше записей. Это зависит от того, увеличивает ли он срок службы SSD:

  • Linux редко использует подкачку (особенно по сравнению с windows) даже при более высоких значениях подкачки, поэтому этот параметр, скорее всего, не изменит поведение подкачки в системах с большим количеством оперативной памяти по сравнению с использованием оперативной памяти. Если у вас недостаточно ОЗУ, то замена может происходить довольно часто со значением по умолчанию, равным 60, в этом случае уменьшение перестановки, вероятно, окажет значительное влияние на ограничение цикла записи SSD.

  • Выносливость записи SSD все еще довольно высока для простого потребительского использования, по крайней мере для SSD на основе MLC . Говорят, что нынешние твердотельные накопители на базе MLC могут выдержать ок. 3000-5000 циклов записи, прежде чем они изнашиваются. Расчет с лимитом 3000 означает, что твердотельный накопитель емкостью 128 ГБ с ежедневной записью 10 ГБ будет успешно работать в течение приблизительно. 38000 дней, что означает ок. 100 лет. Если у вас, конечно, SSD большего размера, он изнашивается гораздо позже. Поэтому маловероятно, что ваш SSD умрет из-за износа клеток. (Конечно, если вы используете SSD в корпоративной / серверной среде, то ежедневные записи значительно выше, но в корпоративных средах обычно используются SSD на основе SLC .)

  • Этот предел цикла записи настолько высок, что производители твердотельных накопителей (сначала SAMSUNG) начали выпускать твердотельные накопители на основе TLC для потребителей, которые могут выдерживать только приблизительно. 1000 циклов записи, но дешевле. Эти компании говорят, что даже ограничение цикла записи этих SSD будет длиться дольше, чем ожидается, что продукт будет использоваться. (Маловероятно, что в 2024 году мы все еще будем использовать наши твердотельные накопители емкостью 128 ГБ.) Если у вас есть твердотельный накопитель на основе TLC и вы часто пишете на этот диск, например, 50 ГБ / день, то уменьшение значения подкачки, вероятно, окажет значительный эффект. на срок службы вашего SSD.
  • Вот гигантская нить, где энтузиасты проверяли выносливость SSD, постоянно пиши им. Хотя их метод испытаний, вероятно, не совсем корректен, их результаты довольно впечатляющие и успокаивающие.

Итак, подведем итог: теоретически да, уменьшение перестановки приведет к увеличению срока службы твердотельных накопителей, на практике это вряд ли произойдет. Но если у вас есть твердотельный накопитель на базе TLC, и у вас мало оперативной памяти, и вы обычно часто пишете на SSD, то это также может иметь практический эффект.

У меня твердотельный накопитель на 128 МБ, основанный на MLC, и я в основном использую свою систему для работы в офисе / просмотра веб-страниц, и у меня достаточно оперативной памяти по сравнению с использованием оперативной памяти, поэтому мой твердотельный накопитель не находится под большой нагрузкой записи (хотя мой компьютер работает 24/7). Но так как мне вообще не нужно менять местами, и так легко уменьшить swappiness, я сам установил swappiness на 0, когда я установил свои SSD, потому что почему бы не сделать это? (На самом деле я установил swappiness на 0 на всех моих машинах, даже на машинах, которые имеют только жесткие диски.)

Вы можете проверить, сколько записи перенесло ваш SSD за время его жизни smartctl, посмотрите строку, с Total_LBAs_Writtenкоторой вы увидите, сколько секторов 512b было записано на SSD. (Да, я знаю, что твердотельные накопители физически имеют блоки 4K, а не 512b, но SMART по-прежнему говорит: Sector Size: 512 bytes logical/physicalи с 512 блоками я получаю результаты, сравнимые с tune2fs -lвыходными данными записи Lifetime.) Так что умножьте это число на 512, и вы получите записи в байтах или для краткости:

sudo smartctl -a /dev/sda | grep Total_LBAs_Written | awk '{print $10*512/1024/1024/1024 " GiB"}'

распечатает в ГиБ для / dev / sda. (Просто измените имя устройства на имя вашего твердотельного накопителя.) Мой 128 ГБ твердотельный накопитель перенес ок. 800 ГБ записывает чуть более одного года, что означает только 7 циклов записи, использованных из 3000.

сокольничий
источник
С файловой системой можно TRIM уменьшить усиление записи. Есть ли эквивалент для раздела SWAP?
Брайс
Этот ответ, по-видимому, предполагает, что «swapiness» колеблется от 0 до 100, где ноль означает отсутствие обмена (а 100 означает отсутствие оперативной памяти?). Но в другом ответе более подробно рассматривается swappinessзначение, указывающее, что число колеблется от 0 до 200 и представляет относительный вес в отношении различных типов обмена.
Palswim
7

Все эти разговоры об износе твердотельных накопителей - это «догадки». У меня были те же чувства, но я начал использовать их в коммерческих целях. У меня один из самых быстрых скоплений оракулов на восточном побережье. 3 года назад мы создали SSD для всей нашей системы хранения и временных файловых систем. Мы выполняем миллиарды операций записи в день на SSD. Через 3 года мы все еще не достигли 10% выгорания. Если я смогу сделать это коммерчески, они НИКОГДА не изнашиваются в жилых помещениях. Итак, я реализовал решение SSD специально для подкачки на моей рабочей станции Linux и BAM !!!

Итак, ваш пробег может варьироваться, но SSD - это путь во всех отношениях.

Дейв

TekOps
источник
SSD, предназначенные для серверов, могут занимать больше записей, чем (более дешевые), предназначенные для потребителей.
Ярно
1
Понятно, но у меня на рабочих станциях установлены круглосуточные твердотельные накопители, развернутые в масштабе предприятия 24x7, и мы делали резервные копии дельты каждые пару дней, но за 2 года не было ни одного сбоя. Имейте в виду, что MTBF для физического вращающегося блюда составляет 3 года, и по моему опыту продажи / обслуживания систем более 25 лет это довольно точно. Твердотельные накопители превосходят все остальные варианты, коммерческие или потребительские.
TekOps
3

Да . Вам нужно изменить swappiness, чтобы увеличить срок службы SSD.

Swappiness позволяет контролировать объем используемого файла подкачки. Значения подкачки могут быть изменены от 0 до 100. Чем выше значения подкачки, тем больше ядро ​​будет пытаться использовать пространство подкачки, чем ниже значения подкачки, тем меньше будет или не будет места подкачки, в зависимости от наших настроек.

Значение подкачки по умолчанию - 60. Если у вас достаточно оперативной памяти, вам следует избегать использования пространства подкачки, которое записывает и читает на ваш SSD, но на жесткий диск. Для системы с 4 ГБ или более ОЗУ попробуйте уменьшить использование подкачки, изменив параметры подкачки между 10 и 0, при этом файл подкачки находится на жестком диске.

Работа с разделом подкачки очень интенсивна при вводе / выводе диска, и это на самом деле плохо для SSD. SSD может обрабатывать столько записей, пока он не вышел из строя, и вам не пришлось покупать другой диск. Поэтому, если это вообще возможно, перенесите пространство подкачки на дополнительный вращающийся диск ... подальше от SSD.

Твердотельный накопитель относительно быстро изнашивается в результате действий записи. Особенно старшие поколения SSD были уязвимы в этом аспекте, но в меньшей степени это относится и к новым поколениям.

Вы можете создать новый раздел на новом диске или просто создать файл подкачки; создание нового раздела почти всегда приводит к гораздо лучшей производительности.

Если у вас нет альтернативного диска для перехода, вы можете изменить настройку, которая будет включать подкачку только тогда, когда ваша физическая память заполнена на 100%, что уменьшит нагрузку на ваш файл подкачки и поможет вашему SSD. Просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

echo 0 > /proc/sys/vm/swappiness

Износ SSD связан с циклами записи

Твердотельный накопитель относительно быстро изнашивается в результате действий записи. Особенно старшие поколения SSD были уязвимы в этом аспекте, но в меньшей степени это относится и к новым поколениям.

Используйте Trim

TRIM - это преимущество, которое вы используете с твердотельными накопителями. Он работает в программном обеспечении и связывается с контроллером SSD, сообщая ему, какие «блоки» больше не нужны файловой системе и могут быть безопасно очищены и перезаписаны. Это на самом деле не приведет к улучшению производительности, а скорее продлит срок службы вашего SSD.

Источники: Linux SSD Tweaks & How-to для оптимизации вашего SSD

Митч
источник
Я хотел бы знать, что не так? ОП спросил, нужно ли ему менять свою подкачку, чтобы увеличить срок службы SSD, и ответ - да, ему нужно поменять подкачку.
Митч
Я понимаю, что последние версии Ubuntu автоматически используют TRIM для твердотельных накопителей.
Пэдди Ландау
Последняя версия Ubuntu использует TRIM только для определенных моделей твердотельных накопителей. @PaddyLandau
Брайс
2

Правда ли, что установка swappiness на ноль увеличит срок службы моего SSD?

Это приведет к тому, что Linux реже перемещает блоки памяти в раздел подкачки. Запись в своп обычно использует циклы записи, если ваш своп находится в SSD. Помните, что подкачка используется только при необходимости, и если у вас достаточно оперативной памяти, вам может быть лучше без нее (если только вы не хотите переходить в спящий режим, но это уже другая проблема).

Эффекты этих действий могут различаться, но делать это просто для того, чтобы сохранить некоторые циклы записи в SSD, делает неправильно. Современные твердотельные накопители (примерно с 2012 года) имеют тонны циклов записи, и производительность может снизиться для ваших приложений, когда вы почти израсходуете всю свою оперативную память. При установке программ вы используете больше циклов записи, чем из-за подкачки. Помните, опять же, что своп используется только тогда, когда это необходимо по умолчанию.

Если вас беспокоят циклы записи SSD, используемые для подкачки, вы можете вообще удалить / деактивировать подкачку, если у вас достаточно ОЗУ, и активировать только временную подкачку на жестком диске вместо того, чтобы возиться с подкачкой. Это был бы лучший маршрут.

Braiam
источник
0

Я настоятельно рекомендую вам изменить настройку подкачки на более низкое значение, лучше всего «0», если у вас достаточно памяти / оперативной памяти для вашей системы 4 ГБ оперативной памяти или больше. Несмотря на то, что в 10 с перестановкой в ​​системе с высокой оперативной памятью я едва вижу, что ubuntu что-то помещает в раздел подкачки, так как в основном все уже на оперативной памяти.

Я сделал небольшой поиск в Google и нашел эту страницу http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html

может помочь вам настроить и оптимизировать SSD для вашей системы Ubuntu, чтобы она работала более эффективно и поддерживала работу вашего SSD дольше

Дэймон Филлипс
источник
0

Изменение swappiness может не иметь никакого эффекта. Мы много играли с этим в системах, где не хватает оперативной памяти, и мы хотим как можно больше подтолкнуть к SSD, и это фактически оказало небольшое влияние, элементы, оставшиеся в памяти (что означает, что они необходимы). Это может быть спорным вопросом.

TekOps
источник
0

Мне понравилась идея проверки smartctlвывода, однако мой код немного более компактен. Я никогда не понимал, почему люди просто не знают, что awkтакое grepвстроенная способность.

sudo smartctl -a /dev/sdb | awk ' ($0 ~ /Total_LBAs_Written/) {print ($10*512)/(1024^3) " GiB"}'

Хотя это код, который я использую:

sudo smartctl -a ${device} | awk ' ($0 ~ /Total_LBAs_Written/) { if (($10*512)/(1024^3) > 1000) { msg="TiB"; size=($10*512)/(1024^4); } else { msg="GiB"; size=($10*512)/(1024^3); }; printf "\nThis device has had %.2
f %s written to it.\n",size,msg; }'
блейк
источник