Использование SSD в Linux

Создан: 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