Как оптимизировать ОС для твердотельных накопителей?

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

154
задан 31 January 2014 в 23:20

13 ответов

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

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

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

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

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

110
ответ дан 31 January 2014 в 23:20

Курс быстрой настройки для вашего 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

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

  • Для систем с> = 2 гигабайтами памяти, желательно разместить / tmp в ОЗУ.
  • Нет раздела подкачки . В настоящее время он нужен только для гибернации, поскольку современные машины имеют довольно большой объем оперативной памяти. Параметры
  • noatime и отменить . Информация здесь .

scheduler

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

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

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

info

one ] two

16
ответ дан 31 January 2014 в 23:20

Я бы не стал добавлять эту строку в ваш 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, если ваш аппаратный / программный интерфейс поддерживает его, это должен, я не использую 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 в течение дня, а затем придумал руководство, вы должны проверить его ЗДЕСЬ

3
ответ дан 31 January 2014 в 23:20

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

2
ответ дан 31 January 2014 в 23:20

4) включите автоматический TRIM

Если ваш SSD поддерживает его, то вы также должны включить автоматический TRIM (как описано здесь)

8
ответ дан 31 January 2014 в 23:20

Есть несколько баллов:

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

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

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

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

Mountflags:

Я бы рекомендовал noatime и отбросить

Tmpfs

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

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

20
ответ дан 31 January 2014 в 23:20

Misy info tsara Ahoana ny fikajiana sy fanatsarana ny SSD ho an'ny Ubuntu, Linux Mint avy amin'ny http://namhuy.net/1563/how-to-tweak-and -optimize-ssd-for-ubuntu-linux-mint.html mety ho liana amin'ny

Ampiasao ny preload

Mba hametrahana preload amin'ny Ubuntu, Linux Mint na fizarana miorina amin'ny debian

# apt-get update && apt-get install preload

Vonoy ny fifanakalozanao

Mba hanovana ny fametahana swappiness:

$ su -
# nano /etc/sysctl.conf

Ary ampio ao anaty sysctl.conf ity tsipika ity.

vm.swappiness = 10
2
ответ дан 31 January 2014 в 23:20

Требуется ИБП. В файле /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

Подробнее http://vasilisc.com/speedup_ubuntu_eng#speedup_fs

2
ответ дан 31 January 2014 в 23:20

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

В Ubuntu 14.04 в пакет util-linux добавлена новая функция, которая регулярно автоматически обрезки SSD, но только у SSD Intel и Samsung TRIM включен по умолчанию, потому что некоторые дешевые SSD могут даже обломаться при работе с 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

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2Как включена функция Trim?

3
ответ дан 31 January 2014 в 23:20

Хорошо, короче говоря:

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

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

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

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

2
ответ дан 31 January 2014 в 23:20

Жизнь SSD

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

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

Производительность SSD

Однако снижение производительности со временем может стать проблемой, и TRIM является ее решением. Существует две опции

  • автоматического/встроенного TRIM, также известного как отбрасывание
  • ручного TRIM

Вы должны включить автоматический TRIM самостоятельно . (В основном, при использовании ext4 к вариантам крепления добавляется опция disard). Я нашел запись в блоге о том, что опция удаления замедляет работу системы при удалении файлов .

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

sudo fstrim /

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

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

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

94
ответ дан 31 January 2014 в 23:20

Я предлагаю размещать на SSD только те вещи, которые читаются во время загрузки, любые приложения, которые требуют много времени для загрузки. Данные, журналы и другие некритические вещи, которые я бы разместил на обычном жестком диске .Кроме того, вы можете настроить свой ubuntu так, чтобы он загружал только большие initramfs с SSD во время загрузки и не записывал обратно изменения на ssd. Это имеет преимущество,изменения в этом разделе не являются постоянными, что похоже на защиту вашей загрузочной системы. Поэтому вам, конечно же, потребуется гораздо больше ОЗУ.

Я бы, например, разместить перегородки /, / etc, / usr, / boot, / lib 32/64 на SSD, в то время как sth вроде

/ opt, / bin, / sbin, / root, / home и даже swap (увеличение RAM !!!) на HDD

Википедия говорит:

Ядро Linux поддерживает функцию TRIM, начиная с версии 2.6.33. Файловая система ext4 поддерживается при монтировании с параметром discard. Самые последние дисковые утилиты (и, следовательно, установочное программное обеспечение, которое их использует) также применяют правильное выравнивание разделов.

Для резервного копирования существует много способов, самый простой из которых - (r) синхронизация плюс задание cron.

0
ответ дан 31 January 2014 в 23:20

Как настроить и оптимизировать 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 отключает обновление файловой системы, а nodiratime отключает обновление файловой системы каталогов. Добавление 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
1
ответ дан 31 January 2014 в 23:20

Другие вопросы по тегам:

Похожие вопросы: