Что такое atime
atime - это время последнего доступа к файлу. Каждое чтение файла обновляет метаданные. Даже обычный cat, grep или ls может вызвать запись на диск. Проверить режим монтирования можно так:
mount | grep atime
Почему atime это проблема
Обновление atime - дополнительная запись. Исторически atime был включён всегда, и это реально било по производительности.
Компромисс - relatime
relatime обновляет atime не всегда, а только если atime старше mtime или ctime, или прошло больше 24 часов Это дефолт почти во всех современных дистрибутивах. Пример:
UUID=... / ext4 defaults,relatime 0 1
В большинстве случаев это лучший баланс между корректностью и производительностью.
noatime - максимум производительности
noatime полностью отключает обновление atime. Используется для: /var, /data, базы данных, кэшей, логов
UUID=... /data ext4 defaults,noatime 0 2
Когда atime все-таки нужен
Некоторые утилиты и сценарии зависят от atime: почтовые системы, старые бэкапы, системы очистки неиспользуемых файлов. С noatime такая логика ломается.
Вывод
atime - это не архаизм, а механизм, который нужно контролировать. relatime подходит почти всегда. noatime - осознанная оптимизация для data-разделов. Менять режим стоит только понимая, что именно ты ускоряешь и чем жертвуешь.
LinuxCamp | #utils
