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.