Всегда хочется выдавить из системы тот максимум, который возможен! Поэтому и было принято данное решение, о применении параметров монтирования, для увеличения производительности.
Теория
Если файловая система смонтирована с параметром atime, то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтирования noatime, nodiratime или relatime может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.
Параметр noatime полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметр relatime.
Параметр nodiratime отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.
Параметр relatime включает обновление поля только когда содержимое файла перезаписывается (в отличие от noatime, при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде Mutt будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.
Монтируем файловую систему с параметром relatime
1 2 3 4 5 6 7 8 9 |
mount /dev/sdc1 on /var/vmail/backup type ext4 (rw,relatime,data=ordered) ... mount -o remount,noatime /var/vmail/backup ... mount /dev/sdc1 on /var/vmail/backup type ext4 (rw,noatime,data=ordered) |
Все тоже справедливо для файла fstab
1 2 3 |
UUID=9070635e-c668-4468-8ec7-48ede9381471 /var/vmail/backup ext4 defaults,noatime 1 2 |
Опции | Описание |
---|---|
Общие | Могут применяться к любой файловой системе (но не все файловые системы на самом деле поддерживают их) — например, опция sync сегодня имеет силу только для ext2, ext3, fat, vfat и ufs |
sync / async | Все операции ввода / вывода файловой системы должны выполняться синхронно/асинхронно. |
atime | Производить запись времени последнего доступа к файлу. Значение по умолчанию. |
noatime | Не обновлять время доступа к файлу (например, для быстрого доступа к новостным потокам, для ускорения серверов новостей). |
relatime | Обновлять время доступа только при изменении файла или изменении времени доступа. (В отличие от noatime, необходимая опция для нормальной работы, например, почтовых клиентов или других приложений, которым необходимо точное время последнего изменения файлов) |
norelatime | Не включать функцию relatime (например, для систем, в которых эта функция включена по умолчанию, для более подробной информации см. параметры монтирования в /proc/mounts). |
strictatime | Обновление времени доступа к структуре данных при изменении файлов. Отключает noatime и relatime. |
nostrictatime | Обновлять время доступа к структуре данных, в соответствии с настройками ядра по умолчанию. |
auto / noauto | При auto устройство будет устанавливаться автоматически при загрузке, или по команде mount. auto является вариантом по умолчанию. Если вы не хотите, чтобы устройство устанавливалось автоматически, используйте параметр noauto. |
context= fscontext= defcontext= rootcontext= |
Эти опции полезны при монтировании файловой систем, которые не поддерживают дополнительные атрибуты, такие как дискеты или жесткие диски отформатирован в VFAT, или файловые системы, которые обычно не работает под SELinux (например ext3 диск отформатированный на не-SELinux рабочей станции). Вы можете также использовать *context= для файловых систем которым вы не доверяете, например на дискетах или флешках. Более подробно о контексте можно узнать прочитав о SELinux. |
defaults | Использовать настройки по умолчанию. Эквивалентно: rw,suid,dev,exec,auto,nouser,async. |
dev / nodev | Интерпретировать/не интерпретировать блок специальных устройств на файловой системе. |
diratime / nodiratime | Обновлять/не обновлять время доступа к каталогу структуры данных. По умолчанию установлено diratime |
dirsync | Изменения каталогов в файловой системе выполняются синхронно. Это относится к следующим системным командам: creat, link, unlink, symlink, mkdir, rmdir, mknod и rename. |
exec / noexec | exec позволяет выполнять двоичные файлы, которые находятся на этом раздел, в то время как noexec не позволяет этого делать. noexec может быть полезно для раздела, который не содержит бинарные файлы например /var, или содержит бинарные файлы которые вы не хотите выполнять на вашей системе, или которые не могут быть выполнены в вашей системе. Последнее может быть в случае Windows раздела. |
group | Разрешает обычным (т.е. не root) пользователям монтировать файловую систему, если одна из его групп совпадает с группой устройства. Эта опция подразумевает наличие опций nosuid и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как group,dev,suid). |
encryption | Определяет используемый алгоритм шифрования. Используется в сочетании с опцией loop. |
keybits | Определяет размер ключа для используемого алгоритма шифрования. Используется в сочетании с loop и encryption. |
nofail | В случае отсутствия устройства не сообщать об ошибке. |
iversion | Номер версии структуры данных увеличивается каждый раз, когда структура данных изменяется. |
noiversion | Номер версии структуры данных не увеличивается при изменении структуры данных. |
mand | Разрешает принудительное блокирование файловой системы. |
nomand | Не разрешает принудительное блокирование файловой системы. |
_netdev | Используется для предотвращения попыток смонтировать файловые системы, подключённые к сети. |
suid / nosuid | Разрешает использование битовых идентификаторов пользователей или групп / Запрещает использование битовых идентификаторов пользователей или групп. (Это достаточно небезопасно, особенно, если установлен suidperl). |
owner | Разрешает обычному (т.е. не root) пользователю монтировать файловую систему, если он является владельцем устройства. Эта опция подразумевает параметры nosuid и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как owner, suid и dev). |
ro | Монтировать только для чтения. |
rw | Монтирование файловой системы для чтения и записи. |
user / nouser | user — разрешает монтирование от лица обычного пользователя, по умолчанию это имеет право сделать только root. nouser — соответственно запрещает (является параметром по умолчанию). |
users | Разрешает монтирование от лица любого пользователя. Эта опция подразумевает параметры nosuid, noexec и nodev (за исключением случаев, когда пересекается с последующими опциями, такими как users, exec, owner, suid и dev). |