Как мне оптимизировать операционную систему для твердотельных накопителей?

Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельный накопитель, чтобы оптимизировать производительность и обеспечить максимальную долговечность накопителя?

Я успешно использовал несколько различных методов для улучшения того, как Ubuntu использует запоминающее устройство, будь то твердотельный или традиционный накопитель.

Для твердотельных накопителей вы также хотите свести к минимуму количество записей на диск, так как чтение не должно приводить к износу диска.

1) Управление файлом подкачки

Если вы не переводите свой компьютер в спящий режим и у вас достаточно оперативной памяти для запуска всех ваших приложений, то теоретически вам не нужен раздел подкачки.

Если у вас есть сочетание твердотельных накопителей и жестких дисков, разместите раздел подкачки только на жестких дисках.

2) Нет записей для временных меток чтения (подходит для твердотельных накопителей и жестких дисков)

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

Отредактируйте свой /etc/fstab файл конфигурации (внимательно - сделайте резервную копию, чтобы быть уверенным, так как нарушение конфигурации fstab может помешать работе вашей системы):

cp /etc/fstab ~/fstab-backupgksudo gedit /etc/fstab

Отредактируйте параметры монтирования для ваших разделов, добавив текст noatime и nodiratime в строки, определяющие ваш корневой (/) и другие разделы, если они у вас есть (/home). - Примечание: если у вас есть раздел /home, начните с того, что просто измените этот раздел, если вы беспокоитесь о том, чтобы что-то сломать

# / was on /dev/sda2 during installationUUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1# /home was on /dev/sda3 during installationUUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

Вам необходимо будет перезагрузить компьютер, прежде чем эти изменения вступят в силу

3) Сведение к минимуму операций записи из операционной системы и приложений

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

Примечание: вносите следующие изменения только после установки всего программного обеспечения, которое вы собираетесь использовать (особенно таких вещей, как веб-сервер Apache), в противном случае у вас могут возникнуть некоторые проблемы с отсутствующими каталогами в /var/log

Для получения информации об этом подходе см. продление срока службы вашего флэш-накопителя на ubuntu-eee.com

Открыть /etc/fstab с помощью редактора (при условии, что вы создали резервную копию файла /etc/fstab)

gksudo gedit /etc/fstab

Добавьте следующие строки в конец файла fstab и сохраните:

# Uncomment these after all server based applications installed - eg. apache#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 #tmpfs /var/log/apt tmpfs defaults,noatime 0 0# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

Вам необходимо будет перезагрузить компьютер, прежде чем эти изменения вступят в силу

Смотрите также:

Срок службы твердотельного накопителя

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

В статье приведен расчет срока службы твердотельного накопителя, который принимает записи с непрерывной скоростью 80 М/с. Жизнь - это 51 год. Это основано на технологии 2007 года - срок службы SSD теперь будет больше. И вы почти наверняка не записываете данные на свой твердотельный накопитель со скоростью 80 Мбит/с 24 часа в сутки.

Производительность твердотельного накопителя

Однако снижение производительности с течением времени может стать проблемой, и отделка это решение. Есть два варианта

  • автоматическая/ оперативная ОБРЕЗКА, она же отбрасывание
  • ручная ОБРЕЗКА

Ты должен включите автоматическую ОБРЕЗКУ самостоятельно . (В основном вы добавляете discard опция для ваших параметров монтирования, при условии, что вы используете ext4.) Я нашел сообщение в блоге, в котором сообщается, что опция удаления замедляет работу вашей системы при удалении файлов.

Иногда вы можете сделать это вручную (или в задании cron), используя fstrim. Если у вас есть только один раздел, то все, что вам нужно сделать, это:

sudo fstrim /

Обратите внимание, что fstrim доступен только в версиях 11.10 и новее. Для более старых систем вам понадобится wiper.sh скрипт. Я нашел сценарий в /usr/share/doc/hdparm/contrib/wiper.sh.gz в моей системе.

Если вам интересно, проблема, которую решает TRIM, как описано в Википедии, является:

Твердотельные накопители хранят данные в ячейках флэш-памяти, которые сгруппированы в страницы, причем страницы (обычно по 4 Кб каждая) сгруппированы в блоки (обычно 128 страниц на блок, общим объемом 512 кБ). Ячейки флэш-памяти NAND могут быть записаны непосредственно только тогда, когда они пусты. Если считается, что они содержат данные, сначала необходимо удалить их содержимое, прежде чем можно будет надежно выполнить операцию записи. В твердотельных накопителях операция записи может выполняться на уровне страницы, но из-за аппаратных ограничений команды стирания всегда затрагивают целые блоки. В результате, запись данных на твердотельный накопитель выполняется очень быстро, пока можно использовать пустые страницы, но значительно замедляется, когда требуется перезаписать ранее записанные страницы.. Поскольку перед повторной записью необходимо стереть ячейки страницы, но можно стереть только целые блоки, перезапись инициирует цикл чтения-стирания-изменения-записи.: содержимое всего блока должно быть сохранено в кэше, прежде чем оно будет эффективно удалено на флэш-носителе, затем перезаписанная страница изменяется в кэше, чтобы кэшированный блок был обновлен, и только тогда весь блок (с обновленной страницей) записывается на флэш-носитель.. Это явление известно как усиление записи.

Есть несколько моментов:

Выравнивание:

На что часто указывают, так это на правильное выравнивание из раздела. Это должно быть равно размеру блока твердотельного накопителя. Будьте осторожны и выровняйте свои разделы по границам MiB. Обратите внимание, что вы не можете сделать это с помощью установщика Ubuntu partition tool (который использует MB, а не MiB), но вы можете загрузить live CD, использовать Gparted (который использует MiB), а затем нажать Install, чтобы использовать созданные вами разделы.

Правильный планировщик:

Важным моментом является то, что планировщик который должен быть noop. Вы можете установить этот планировщик с помощью kernelparameter elevator=noop или через запись echo noop > /sys/block/sda/queue/scheduler в вашем rc.local.

Mountflags:

Я бы рекомендовал noatime и discard

Tmpfs

Размещение tmp на оперативном диске может увеличить срок службы твердотельного накопителя.Чтобы использовать это, поместите следующую строку в свой fstab: none /tmp tmpfs defaults 0 0

В общем, если вы хотите глубже погрузиться в эту тему, я бы рекомендовал этот отличная вики-статья.

Курс быстрой настройки вашего SSD-накопителя на Ubuntu:

файловая система

Арка вики упоминает несколько предпочтительных вариантов для файловой системы SSD - один из них нестабилен, другие внутр* единицы. Я предполагаю ext4 это один из лучших вариантов.
Примечание: В случае ext4 возможно, вы захотите использовать discard опция монтирования.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>proc            /proc         proc   nodev,noexec,nosuid                        0       0tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Здесь есть несколько важных моментов::

  • >Для систем с объемом памяти =2 гигабайта желательно разместить /tmp в оперативной памяти.
  • Нет swap раздел. В настоящее время это необходимо только для гибернации, так как современные машины имеют довольно большой объем оперативной памяти.
  • noatime и discard опции. Информация - это здесь.

планировщик

Рассмотрите возможность перехода от планировщика по умолчанию, который в большинстве дистрибутивов Linux является cfq (полностью справедливая очередь), к планировщику noop или deadline для SSD. Использование планировщика noop, например, просто обрабатывает запросы в порядке их получения, не обращая никакого внимания на то, где данные физически находятся на диске. Считается, что этот вариант выгоден для твердотельных накопителей, поскольку время поиска одинаково для всех секторов на твердотельном накопителе.

Добавьте следующее к /etc/rc.local:

# SSD performance tuningecho noop > /sys/block/sda/queue/scheduler

информация

один два

4) включить автоматическую ОБРЕЗКУ

Если ваш твердотельный накопитель поддерживает его, вы также должны включить автоматическую ОБРЕЗКУ (как описано здесь)

Я бы не стал добавлять эту строку в вашу fstab, папка var / tmp предназначена для того, чтобы выдерживать перезагрузки, и это может вызвать у вас проблемы.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Когда я настраиваю новую систему, я оставляю всю папку tmp закомментированной таким образом, если что-нибудь случится, я смогу проверить журналы и прочее. Затем, как только у меня будет основная настройка системы, я отменю их комментирование, но я никогда не добавляю приведенную выше строку, вот что я использую:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 tmpfs /var/log/apt tmpfs defaults,noatime 0 0

И если у меня возникают какие-либо проблемы с моей системой, я комментирую их, чтобы иметь возможность проверить все даже после перезагрузки или принудительной перезагрузки после блокировки.

Кроме того, вам не нужен nodiratime, опция noatime позаботится об обоих сама по себе.

Что касается TRIM, если ваш hw / sw поддерживает его, это обязательно, я не использую discard в fstab. Я создаю ежедневный cron, потому что мой компьютер всегда включен, делая это:

gksu gedit /etc/cron.daily/trim

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

#!/bin/shLOG=/var/log/trim.logecho "*** $(date -R) ***" >> $LOGfstrim -v / >> $LOGfstrim -v /home >> $LOG

Затем сделайте файл исполняемым с помощью:

sudo chmod +x /etc/cron.daily/trim

Я также редактирую свой rc.local следующим образом:

gksu gedit /etc/rc.local

Добавьте это над "выходом 0" и под последним #:

# Modification for SSD# you may want to add more folders to be checked/created to this listfor dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do  if [ ! -e /var/log/$dir ] ; then    mkdir /var/log/$dir  fidone

Вы можете копировать и вставлять отсюда, чтобы не было ошибок, для непрофессионала это выглядит неуместно, это не так.

Я также читал, что если оставить 10% вашего SSD-накопителя неформатированным, это может помочь продлить срок службы, но это еще предстоит выяснить. Я не так уж много вчитывался в это, поэтому не могу поручиться, имеет ли это смысл.

Это лучший универсальный путеводитель, он не бегал по Гуглу целый день, а потом придумал путеводитель, вы должны его проверить здесь

TRIM позволяет операционной системе сообщать твердотельному накопителю, какие блоки данных больше не считаются используемыми и могут быть удалены внутренне. Обрезка позволяет твердотельному накопителю заранее обрабатывать накладные расходы на сборку мусора, которые в противном случае значительно замедлили бы будущие операции записи в соответствующие блоки.1

В Ubuntu 14.04 новая функция была добавлена в util-linux пакет, который регулярно автоматически обрезает твердотельные накопители, но только на твердотельных накопителях Intel и Samsung по умолчанию включена ОБРЕЗКА, потому что некоторые дешевые твердотельные накопители могут даже отключаться при запуске TRIM.2 Содержание /etc/cron.weekly/fstrim в Ubuntu 14.04:

#!/bin/sh# call fstrim-all to trim all mounted file systems which support itset -e# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty# firmware may encounter data loss problems when running fstrim under high I/O# load (e. g.  https://launchpad.net/bugs/1259829). You can append the# --no-model-check option here to disable the vendor check and run fstrim on# all SSD drives.exec fstrim-all

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2Как включается обрезка?

Хорошо, "короткая история":

  1. Да. Это похоже на обычный жесткий диск. Здесь это хороший обзор.
  2. Некоторые специальные дополнения, о которых я расскажу.
  3. Достаточно хорошо. Я использую его с сервером.

Формат как ext4 во время установки и создайте небольшую подкачку ~1 ГБ. После установки отредактируйте fstab с помощью sudo gedit /etc/fstab и добавьте следующую строку

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Это создаст оперативную память для ваших временных файлов, что снизит скорость их старения. Также добавьте noatime,nodiratime,discard к вашей строке ext4 после значений по умолчанию. Это также снизит износ и включит функцию ОБРЕЗКИ. Сохраните и перезагрузите компьютер.

Требуется ИБП.В /etc/sysctl.conf файл

vm.dirty_writeback_centisecs = 15000vm.swappiness = 10

Найдите демон файла конфигурации, обычно /etc/syslog.conf или /etc/rsyslog.d/ и все пути формы /var/log/ измените, написав знак минус ("-") перед путями.Перед отправкой почты.ошибка

/var/log/mail.err

После
mail.err -/var/log/mail.err

используйте FS btrfs и использовать -o ssd вариант

Больше http://vasilisc.com/speedup_ubuntu_eng#speedup_fs

Ясно, что /var/tmp не должно быть в tmpfs, поскольку по определению его содержимое должно быть сохранено после перезагрузки: