Параметры монтирования для высоконагруженных систем

Всегда хочется выдавить из системы тот максимум, который возможен! Поэтому и было принято данное решение, о применении параметров монтирования, для увеличения производительности.

Теория

Если файловая система смонтирована с параметром atime, то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтирования noatime, nodiratime или relatime может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.
Параметр noatime полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметр relatime.
Параметр nodiratime отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.

Параметр relatime включает обновление поля только когда содержимое файла перезаписывается (в отличие от noatime, при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде Mutt будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.

Монтируем файловую систему с параметром relatime

Все тоже справедливо для файла fstab

Стоит  так же обратить на параметр commit, указывающий время, через которое происходит синхронизация данных и метаданных с жестким диском, стандартно оно равняется 5 секундам (см. исходники ядра), но в некоторых случаях его можно увеличить без особого вреда, скажем, до 10 секунд, чтобы лишний раз не дергать диски. Да, есть вероятность потери данных, но! Вы же не используете аппаратный рейд с HotSpare и батареей для контроллера, да и архивацию никто не отменял ) Но стоит обратить на нее внимание, так как не стоит дергать постоянно диски. Далее приведена небольшая таблица с параметрами

Опции Описание
Общие Могут применяться к любой файловой системе (но не все файловые системы на самом деле поддерживают их) — например, опция 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).
0 0 голоса
Рейтинг статьи
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 5,00 из 5)
Загрузка...
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии