Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельном диске для оптимизации производительности и обеспечения максимальной долговечности накопителя?
Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельном диске для оптимизации производительности и обеспечения максимальной долговечности накопителя?
Я успешно использовал несколько разных методов, чтобы улучшить способ использования Ubuntu устройством хранения, будь то твердотельное или традиционное устройство.
Для SSD вы пытаетесь свести к минимуму количество времени, в которое записывается диск, так как чтение не должно увеличивать износ диска.
1) Управление файлом подкачки
Если вы не спящий спящий режим на вашем компьютере, и у вас достаточно памяти RAM для запуска всех ваших приложений, тогда теоретически вам не нужен раздел подкачки.
Если у вас есть сочетание SSD и жестких дисков, поместите свой раздел подкачки только на жесткие диски.
2) No Writes for Timestamps (подходит для SSD и жестких дисков)
Установка разделов с параметрами noatime и nodiratime остановит запись метки времени при чтении файлов и папок. Эти записи временных меток обычно не требуются, если вы не используете клиента локального почтового сервера, такого как mutt. Причина, по которой это, как правило, плохая идея, состоит в том, что каждое чтение будет производить запись при обновлении временных меток. Это уменьшает срок службы SSD.
Измените конфигурационный файл / etc / fstab (осторожно - сделайте резервную копию, чтобы убедиться, что нарушение вашей конфигурации fstab может помешать работе вашей системы):
cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Измените параметры монтирования для своих разделов, добавив текст noatime и nodiratime к строкам, определяющим ваш root (/) и другие разделы, если у вас есть (/ home) - Примечание: если у вас есть / домашний раздел , начните с того, что просто измените этот раздел, если вас беспокоит нарушение чего-то
# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2
Вам необходимо перезагрузить компьютер до того, как эти изменения вступят в силу.
3) Минимизация записей из ОС и приложений
Предполагая, что вы не используете критически важный сервер продукта, большинство людей не смотрят на журналы, если что-то пойдет не так (особенно, поскольку серьезные ошибки для большинства пользователей Ubuntu являются редкими). Поэтому вы можете настроить Ubuntu, чтобы все журналы записывались в RAM-память, а не на 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 раздуто. Вы можете прочитать эту подробную статью о том, почему вы действительно не должны беспокоиться . Короче говоря, схема внутри современных твердотельных накопителей управляет износостойкостью для вас, и они знают, как сделать это намного лучше, чем вы. Р>
В статье приведен расчет жизни SSD, который получает записи с непрерывной скоростью 80 М / с. Жизнь 51 год . Это основано на технологии 2007 года - жизнь SSD будет дольше. И вы почти наверняка не пишете на свой SSD по 80 Мбит / с 24 часа в сутки.
Однако ухудшение производительности со временем может быть проблемой, и TRIM является решением. Существует два варианта
Вы должны включить автоматический TRIM . (В основном вы добавляете параметр discard
в параметры монтирования, если используете ext4.) Я нашел сообщение в блоге, сообщающее, что опция discard замедляет вашу систему при удалении файлов .
Вы можете иногда делать это вручную (или в задании cron), используя fstrim . Если у вас только один раздел, вам нужно всего лишь:
sudo fstrim /
Обратите внимание, что fstrim доступен только в 11.10 и новее. Для старых систем вам понадобится скрипт wiper.sh
. Я нашел скрипт в /usr/share/doc/hdparm/contrib/wiper.sh.gz
в моей системе.
Если вам интересно, проблема, которую TRIM решает, поскольку , описанный в Википедии , является:
SSDs store data in flash memory cells that are grouped into pages, with the pages (typically 4 kB each) grouped together into blocks (typically 128 pages per block, totaling 512 kB). NAND flash memory cells can only be directly written to when they are empty. If they are considered to contain data, the contents first need to be erased before a write operation can be performed reliably. In SSDs, a write operation can be done on the page-level, but due to hardware limitations, erase commands always affect entire blocks. As a result, writing data to SSD media is very fast as long as empty pages can be used, but slows down considerably once previously written pages need to be overwritten. Since an erase of the cells in the page is needed before it can be written again, but only entire blocks can be erased, an overwrite will initiate a read-erase-modify-write cycle: the contents of the entire block have to be stored in cache before it is effectively erased on the flash medium, then the overwritten page is modified in the cache so the cached block is up to date, and only then is the entire block (with updated page) written to the flash medium. This phenomenon is known as write amplification.
Есть несколько моментов:
Выравнивание:
Часто указывается правильный выравнивание раздела. Это должно быть равно размеру блока SSD. Играйте в безопасном режиме и делайте свои разделы согласованными с границами MiB. Обратите внимание: вы не можете сделать это с помощью инструмента разделения раздела Ubuntu (который использует MB not MiB), но вы можете загружать Live CD, использовать Gparted (который использует MiB), а затем нажмите «Установить», чтобы использовать настроенные вами разделы.
Правильный планировщик:
Важным моментом является планировщик , который должен быть noop
. Вы можете установить этот планировщик через kernelparameter elevator=noop
или через запись echo noop > /sys/block/sda/queue/scheduler
в rc.local.
Mountflags:
Я бы порекомендовал noatime
и discard
Tmpfs
Чтобы поставить tmp на ramdisk, можно увеличить время жизни ssd.
Чтобы использовать это, введите следующую строку в fstab: none /tmp tmpfs defaults 0 0
Как правило, если вы хотите глубже погрузиться в эту тему, я бы рекомендовал эту отличную вики-статью.
Быстрый курс настройки для вашего SSD на Ubuntu:
Файловая система
Arch wiki упоминает несколько предпочтительных параметров файловой системы SSD - один из них нестабилен, другие - ext *. Я предполагаю, что ext4 - один из лучших вариантов.
Примечание. В случае ext4 вы можете использовать опцию discard
mount.
Fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /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
Несколько важных вещей здесь:
swap
раздела. В настоящее время это необходимо только для спячки, поскольку современные машины имеют довольно большой объем оперативной памяти. noatime
и discard
. Информация здесь . планировщик
Рассмотрим переход от планировщика по умолчанию, который в большинстве дистрибутивов Linux является cfq (полностью честная очередь), для планировщика noop или deadline для SSD. Например, использование планировщика noop просто обрабатывает запросы в том порядке, в котором они получены, без какого-либо учета того, где данные физически находятся на диске. Эта опция считается предпочтительной для SSD, поскольку времена поиска идентичны для всех секторов на SSD.
Добавьте в /etc/rc.local следующее:
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
Информация
один два
4) включить автоматический TRIM
Если ваш SSD поддерживает его, вы также должны включить автоматический TRIM (как описано здесь )
Я бы не добавил эту строку в вашу fstab, папка var / tmp предназначена для выживания перезагрузки, и это может вызвать проблемы для вас.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
Когда я настраиваю новую систему, я оставляю эту папку tmp закомментированной, если что-нибудь случится, я могу проверить журналы и прочее. Затем, как только у меня будет основная системная настройка, я их не буду комментировать, но никогда не добавляю вышеприведенную строку, вот что я использую:
tmpfs /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
И если у меня возникли проблемы с моей системой, я прокомментирую их, чтобы проверить все даже после перезагрузки или принудительной перезагрузки после блокировки.
Также вам не нужно nodiratime, noatime опция позаботится обоим.
Что касается TRIM, если ваш hw / sw поддерживает его, это обязательно, я не использую discard в fstab. Я создаю ежедневный cron, потому что мой компьютер всегда включен, делая следующее:
gksu gedit /etc/cron.daily/trim
Затем добавьте это в файл и сохраните (если у вас нет отдельного / домашнего раздела на ssd или других частей, находящихся на ssd, вы должны получить представление о том, как это изменить:
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
Затем сделайте исполняемый файл:
sudo chmod +x /etc/cron.daily/trim
Я также редактирую свой rc.local так:
gksu gedit /etc/rc.local
Добавьте это выше «exit 0» и ниже последнего #:
# Modification for SSD
# you may want to add more folders to be checked/created to this list
for 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
fi
done
Вы можете скопировать и вставить отсюда, чтобы не было ошибок, для непрофессионала это выглядело из-за удара, это не так.
Я также прочитал, что оставить 10% вашего диска ssd неформатированным может помочь продлить жизнь, что еще предстоит выяснить. Я не так много читал в этом, поэтому я не могу ручаться, если имеет смысл это сделать.
Это лучший во всем руководстве, он не обошел Google в течение дня, а затем придумал руководство, вы должны проверить его ЗДЕСЬ
TRIM позволяет операционной системе сообщать SSD, какие блоки данных больше не используются и могут быть протерты внутренне. Обрезка позволяет SSD обрабатывать накладные расходы на сбор мусора, что в противном случае значительно замедляло бы будущие операции записи для задействованных блоков заранее. 1
В Ubuntu 14.04 добавлена новая функция в пакет util-linux , который автоматически обрезает SSD-файлы автоматически, но по умолчанию только SSD от Intel и Samsung имеют TRIM, потому что некоторые дешевые SSD могут даже кирпичи
/etc/cron.weekly/fstrim
в Ubuntu 14.04:
#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -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
1 Ссылка
2 Как включена функция Trim?
Понятно, что /var/tmp
не должно быть в tmpfs, поскольку по определению его содержимое необходимо сохранить за перезагрузкой:
Ок "длинный рассказ короткий":
Отформатировать как ext4
во время установки и создать небольшую свопинг ~ 1 ГБ. После установки отредактируйте fstab с sudo gedit /etc/fstab
и добавьте следующую строку
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Это создаст ramdrive для ваших временных файлов, что приведет к снижению старения. Также добавьте noatime,nodiratime,discard
к вашей строке ext4 после значений по умолчанию. Это также уменьшит износ и активирует функцию TRIM. Сохраните и перезагрузитесь.
Есть некоторая хорошая информация Как настроить и оптимизировать SSD для Ubuntu, Linux Mint от Ссылка вам может быть интересно
Использовать предварительную загрузку
Чтобы установить предварительную загрузку в Ubuntu, дистрибутивах Linux Mint или debian
# apt-get update && apt-get install preload
Отключить своп
Чтобы изменить настройку swappiness:
$ su -
# nano /etc/sysctl.conf
И добавьте эту строку в файл sysctl.conf.
vm.swappiness = 10
ИБП требуется. В файле /etc/sysctl.conf
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
Найдите демона конфигурационного файла, обычно /etc/syslog.conf
или /etc/rsyslog.d/
, и все пути формы /var/log/
изменяются путем записи знака минус («-») перед путями. Перед
mail.err
/var/log/mail.err
После
mail.err -/var/log/mail.err
используйте FS btrfs
и используйте параметр -o ssd
Подробнее Ссылка
Как настроить и оптимизировать SSD для Ubuntu, Linux Mint
Включить TRIM
Команда TRIM (команда Trim позволяет ОС знать, какие блоки SSD не используются и могут быть удалены)
Создайте резервную копию fstab сначала, если произойдет что-то неправильное.
# cp /etc/fstab ~/fstab.bk
Изменить файл fstab
# nano /etc/fstab
Добавить сброс на диски или разделы ssd, после ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime
noatime и nodiratime - опции монтирования в linux для файловой системы Linux. noatime отключает обновления atime в файловой системе, а nodiratime отключает обновления atime в системе каталогов. Добавляя noatime и nodiratime, вы значительно уменьшите нагрузку ssd на производительность.
Изменить файл fstab
# nano /etc/fstab
Добавьте noatime, nodiratime к вашим дискам или разделам ssd, после ext4
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
Я предлагаю размещать только те вещи, которые читаются во время загрузки на SSD, возможно, приложения, требующие много времени для загрузки. Даты и журналы и другие некритические вещи, которые я нашел бы на обычном жестком диске. Также вы можете настроить свой ubuntu чтобы загружать большие initramfs из SSD во время загрузки и не записывать обратно изменения в ssd. Это имеет преимущество, что изменения в этом разделе не являются постоянными, что является защитой для вашей системы загрузки. Для этого вам понадобится гораздо больше ОЗУ конечно.
Я бы, например, разместить разделы /, / etc, / usr, / boot, / lib 32/64 на SSD, в то время как sth like
/ opt, / bin, / sbin, / root, / home и даже swap (увеличить RAM !!!) на HDD
Wikipedia говорит:
The Linux kernel supports the TRIM function starting with version 2.6.33. The ext4 file system is supported when mounted using the "discard" parameter. The most recent disk utilities (and therefore installation software that make use of them) also apply proper partition alignment.
Для резервных копий существует множество способов, самым простым из которых является (r) синхронизация плюс задание cron.