EXT3/ReiserFS

По умолчанию ОС Linux на EXT3 и reiserfs пишет новое время доступа к файлу при каждом чтении файла. Таким образом, при каждой операции чтения файла получаем операцию записи. Помимо снижения скорости работы с файловой системой, для SSD крайне вредна частая запись, которая старит диск. Решение - использовать параметры в /etc/fstab :

noatime - Access timestamps are not updated when a file is read.

nodiratime - Do not  update  directory  inode  access  times  on  this  filesystem.

Пример строки в /etc/fstab:

LABEL=/       /       ext3    noatime,nodiratime        1 1

Побочные эффекты

Ряд инструментов используют atime для работы: наиболее популярны очистка tmp папки tmpwatch и система приема почты mutt. Требуется их дополнительная настройка после применения параметров.

Запуск tmwatch с ключом --mtime:

--- /etc/cron.daily/tmpwatch.orig +++ /etc/cron.daily/tmpwatch @@ -3,6 +3,6 @@
 /usr/sbin/tmpwatch 720 /var/tmp
 for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
     if [ -d "$d" ]; then
 - /usr/sbin/tmpwatch -f 720 "$d" + /usr/sbin/tmpwatch --mtime -f 720 "$d"
     fi

EXT4

На новых системах (например, Ubuntu 10.04), в опции по умолчанию в /etc/fstab входит параметр relatime, который имеет аналогичное действие, но не влияет на работу утилит. Изменения проводить не требуется. 

Оптимизация EXT4 под SSD (при условии защиты питания машины с помощью батареи UPS/ноутбука):

/dev/sda2        /      ext4     defaults,discard,data=writeback,commit=15     1 1
  • Отключение журналирования данных - только метаданные. Это сокращает число операций записи;
  • Увеличение интервала для записи с 5мс по умолчанию до 10-15. Сокращает число операций записи в разы, но увеличивает риск потери данных в случае сбоя питания;
  • If you don't need access time records (mtime and ctime should be enough for most folks) disabling atime will also limit write operations.

 

 

  • Нет меток