Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельный накопитель, чтобы оптимизировать производительность и обеспечить максимальную долговечность накопителя?
Какие шаги следует предпринять до / во время / после установки Ubuntu на твердотельный накопитель, чтобы оптимизировать производительность и обеспечить максимальную долговечность накопителя?
Ответы:
Я успешно использовал несколько различных методов, чтобы улучшить использование Ubuntu запоминающего устройства, будь то твердотельное или традиционное устройство.
Для твердотельных накопителей вы также хотите минимизировать количество операций записи диска, так как чтение не должно увеличивать износ диска.
1) Управление файлом подкачки
Если вы не переводите компьютер в спящий режим и у вас достаточно оперативной памяти для запуска всех ваших приложений, то теоретически вам не нужен раздел подкачки.
Если у вас есть сочетание SSD и жестких дисков, поместите раздел подкачки только на жесткие диски.
2) Нет записи для чтения меток времени (подходит для SSD и жестких дисков)
Монтирование разделов с опциями noatime и nodiratime остановит запись меток времени при чтении файлов и папок. Эти записи меток времени обычно не требуются, если вы не используете клиент локального почтового сервера, такой как Mutt. Причина, по которой это, как правило, плохая идея, заключается в том, что каждое чтение будет производить запись при обновлении временных меток. Это уменьшает срок службы SSD.
Отредактируйте ваш файл конфигурации / etc / fstab (внимательно - сделайте резервную копию, чтобы быть уверенным, что нарушение вашей конфигурации fstab может помешать вашей системе работать):
cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
Отредактируйте параметры монтирования для ваших разделов, добавив текст noatime и nodiratime к строкам, определяющим ваш корневой (/) и другие разделы, если они у вас есть (/ home). - Примечание: если у вас есть раздел / 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 так, чтобы все журналы записывались в оперативную память, а не в 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 управляет выравниванием износа для вас, и они знают, как сделать это намного лучше, чем вы.
В статье приведен расчет срока службы SSD, который получает записи с постоянной скоростью 80M / s. Жизнь 51 год . Это основано на технологии 2007 года - жизнь SSD теперь будет больше. И вы почти наверняка не пишете на свой SSD со скоростью 80M / s 24 часа в сутки.
Однако снижение производительности с течением времени может быть проблемой, и TRIM является решением. Есть два варианта
Вы должны включить автоматический TRIM самостоятельно . (По сути, вы добавляете эту discard
опцию в опции монтирования, если вы используете ext4.) Я обнаружил в блоге сообщение о том, что опция сброса замедляет работу вашей системы при удалении файлов .
Иногда вы можете сделать это вручную (или в работе cron), используя fstrim . Если у вас есть только один раздел, то все, что вам нужно сделать, это:
sudo fstrim /
Обратите внимание, что fstrim доступен только в 11.10 и новее. Для старых систем вам понадобится wiper.sh
скрипт. Я нашел скрипт в /usr/share/doc/hdparm/contrib/wiper.sh.gz
моей системе.
Если вам интересно, проблема, которую решает TRIM, как описано в Википедии , такова:
Твердотельные накопители хранят данные в ячейках флэш-памяти, которые сгруппированы в страницы, причем страницы (обычно по 4 КБ каждая) сгруппированы в блоки (обычно 128 страниц на блок, общим объемом 512 КБ). Ячейки флэш-памяти NAND могут быть напрямую записаны, только когда они пусты. Если считается, что они содержат данные, прежде чем надежно выполнить операцию записи, необходимо сначала стереть содержимое. В твердотельных накопителях операция записи может выполняться на уровне страницы, но из-за аппаратных ограничений команды стирания всегда влияют на целые блоки. В результате запись данных на носитель SSD происходит очень быстро, если можно использовать пустые страницы, но значительно замедляется после того, как ранее записанные страницы необходимо перезаписать, Так как необходимо стереть ячейки на странице, прежде чем она может быть снова записана, но стереть могут только целые блоки, перезапись инициирует цикл чтения-стирания-изменения-записи: содержимое всего блока должно быть сохранено в кеше до того, как он будет эффективно удален на флэш-носителе, перезаписанная страница изменяется в кеше, чтобы кешированный блок обновлялся, и только тогда весь блок (с обновленной страницей) записывается на флэш-носитель . Это явление известно как усиление записи.
Есть несколько моментов:
Выравнивание:
На что часто указывают правильное выравнивание раздела. Это должно быть равно размеру блока SSD. Будьте осторожны и приведите ваши разделы в соответствие с границами MiB. Обратите внимание, что вы не можете сделать это с помощью инструмента установки разделов установщика Ubuntu (который использует MB, а не MiB), но вы можете загрузить live CD, использовать Gparted (который использует MiB), а затем нажать Install, чтобы использовать разделы, которые вы создали.
Правильный планировщик:
Важным моментом является планировщик, который должен быть noop
. Вы можете установить этот планировщик через параметр ядра elevator=noop
или через запись echo noop > /sys/block/sda/queue/scheduler
в вашем rc.local.
Mountflags:
Я бы порекомендовал noatime
иdiscard
Tmpfs
Поместить tmp на виртуальный диск может увеличить время жизни ssd. Чтобы использовать это, поместите следующую строку в ваш fstab:none /tmp tmpfs defaults 0 0
Как правило, если вы хотите углубиться в эту тему, я бы порекомендовал эту отличную вики-статью.
Курс быстрой настройки для вашего SSD в Ubuntu:
файловая система
Arch wiki упоминает несколько предпочтительных опций для файловой системы SSD - один из них нестабильный, другие - ext *. Я полагаю, ext4 является одним из лучших выборов.
Примечание: в случае ext4 вы можете использовать discard
опцию монтирования.
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 или дедлайн для SSD. Например, использование планировщика noop просто обрабатывает запросы в том порядке, в котором они были получены, не принимая во внимание то, где данные физически находятся на диске. Считается, что этот вариант предпочтителен для твердотельных накопителей, поскольку время поиска одинаково для всех секторов твердотельного накопителя.
Добавьте следующее в /etc/rc.local :
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
Информация
/tmp
оперативной памятью очень легко выйти из ситуации нехватки памяти , так как многие программы используют /tmp
в качестве места для хранения (например, Brasero для хранения образов DVD).
tmpfs
по умолчанию 10% оперативной памяти. Размер может быть скорректирован с помощью size
опции, хотя.
Я бы не стал добавлять эту строку в вашу 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 поддерживает его, это обязательно, я не использую сброс в 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
Добавьте это выше «выхода 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 была добавлена новая функция, которая регулярно отключает твердотельные накопители, но только для твердотельных накопителей Intel и Samsung по умолчанию включена TRIM, поскольку некоторые дешевые твердотельные накопители могут даже кирпичить себя при работе TRIM. 2 Содержание /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 https://en.wikipedia.org/wiki/Trim_%28computing%29
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, с http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html, который вы можете быть заинтересованным в
Использовать предзагрузку
Для установки предварительной загрузки в дистрибутивах на основе Ubuntu, Linux Mint или Debian
# apt-get update && apt-get install preload
Выключи своп
Чтобы изменить настройку подкачки:
$ 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
Добавьте discard на ваши диски или разделы 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, любые приложения, которые требуют много времени для загрузки. Данные, журналы и другие некритические вещи, которые я бы обнаружил на обычном HDD. Также вы можете настроить свою Ubuntu так, чтобы она загружалась только большой initramfs из SSD во время загрузки, а не запись изменений в ssd. Преимущество в том, что изменения в этом разделе не являются постоянными, что похоже на защиту вашей загрузочной системы. Поэтому вам, конечно, потребуется гораздо больше ОЗУ.
Например, я бы разместил разделы /, / etc, / usr, / boot, / lib 32/64 на SSD, пока что-то вроде
/ opt, / bin, / sbin, / root, / home и даже подкачка (увеличение оперативной памяти !!!) на жестком диске
Википедия говорит:
Ядро Linux поддерживает функцию TRIM, начиная с версии 2.6.33. Файловая система ext4 поддерживается при монтировании с использованием параметра discard. Самые последние дисковые утилиты (и, следовательно, программное обеспечение для их установки) также применяют правильное выравнивание разделов.
Для резервных копий есть много способов, самым простым из которых является (r) синхронизация плюс задание cron.
/root
, /home
и swap должны быть помещены на SSD для скорости, потому что это в основном только для чтения. Для /var
увеличения скорости установите SSD.
/
Раздел для Kubuntu Oneiric занимает 4,5 Гб на мой SSD. 20ГБ достаточно для /
минуса /home
. Усилия по настройке структуры файловой системы, распределению ее по нескольким разделам не стоят того.
tmpfs
строки комментируются, так почему добавление этих строк будет иметь какое-то значение? Нужно ли добавлять его без комментариев?