Создан: 30.10.2014
Модиф: 30.10.2014
Иванов Аркадий
SSD-диски работают совершенно по иному, нежели традиционные HDD.
У них нет позиционирования головок - это огромный плюс.
У них ограниченное число циклов перезаписи - это главный минус.
Зато мы имеем скорость записи/чтения около 500Mb/sec и нет никаких задержек на поиски нужной дорожки и сектора (цифры соответствуют дате написания этой заметки).
Здесь я собрал многое из того, что применимо к использованию SDD в Linux, что может увеличить производительность работы с ним и продлить его жизнь.
1. До установки системы в BIOS следует включить режим AHCI.
2. В установленной системе включаем поддержку TRIM(команда, передаваемая в SSD, где указываются блоки, уже не используемые файловой системой).
Для разделов SSD в /etc/fstab в опции монтирования добавляем параметр discard, например:
UUID=aca9f4ba-a2e7-462a-9802-ea847d2a481b / ext4 errors=remount-ro,relatime,nodiratime,commit=60,discard,barrier=0 0 1
2a. В строке монтирования я также сразу указал дополнительные важные ключи:
- relatime - не записыать время последнего доступа к файлу, только время изменения.
- nodiratime - аналогично для каталогов
- commit=60 - сброс данных на диск из буферов раз в минуту.
2b. Подобные ключи следует указать для всех разделов SSD-диска.
3. Указываю дополнительные параметры ядра в /etc/sysctl.conf:
vm.laptop_mode = 5 # изменение режима
vm.dirty_writeback_centisecs = 6000 # запись буферов раз в минуту
vm.swappiness = 5 # использую swap только когда свободного ОЗУ останется 5%
Применить изменения следует командой:
sysctl -p
4. Умолчания для grub правим в /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop"
и затем делаем
update-grub
Этот параметр отключает планировщик ввода-вывода, который отвечал за оптимальное позиционирование головок диска.
Для SSD он не нужен.
5. Используем tmpfs в оперативной памяти машины для каталогов, которые система и задачи используют как временные.
Добавлю следующие строки в /etc/fstab:
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
6. Если ОЗУ много, можно вообще отключить SWAP, закомментировав этот раздел в /etc/fstab, например:
#UUID=07ab725c-7923-4e8a-b048-b39c9ef4ea94 none swap sw 0 0
7. Можно искуственно по расписанию запускать очистку блоков, освобождённых файловой системой. В /etc/crontab вписываю
очистку файловых систем "/" и "/home" по воскресеньям:
01 01 * * 7 root fstrim / 2>&1
05 01 * * 7 root fstrim /home 2>&1