Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Глава 7. Файловые системы
7.1. Характеристики производительности файловых систем
7.1.1. Параметры форматирования
Размер блока может быть задан на стадии mkfs
. При этом верхний предел определяется максимальным размером страниц, а нижний предел зависит от типа файловой системы. Обычно стандартного размера должно быть достаточно.
Если в основе системы лежат дисковые массивы (например, RAID5), производительность может быть улучшена за счет выравнивания метаданных в соответствии с геометрией массива. Для программных RAID-массивов (LVM и MD) это будет сделано автоматически, в то время как в других ситуациях администратор должен будет определить геометрию вручную в строке команды mkfs
.
В файловых системах с журналированием (ext4 и XFS) при интенсивном чтении и записи метаданных обращение к журналам возрастает. Чтобы сократить время поиска, можно разместить журнал на отдельном накопителе. Однако если его скорость меньше скорости диска файловой системы, выигрыш будет минимален.
Предупреждение
mkfs
, а устройства журналов определяются во время монтирования. За подробной информацией обратитесь к справочным страницам mke2fs(8)
, mkfs.xfs(8)
и mount(8)
.
7.1.2. Параметры монтирования
Барьер записи — механизм ядра, отвечающий за порядок записи метаданных. При отключении энергии файловые системы с барьерами сохраняют состояние данных, переданных при помощи fsync()
. Red Hat Enterprise Linux включает барьеры по умолчанию.
fsync()
или часто создают и удаляют небольшие файлы. Для стабильных накопителей, не использующих непостоянный кэш, а также для некритичных приложений функциональность барьеров можно отключить с помощью параметра nobarrier
. Более подробно об этом рассказывается в руководстве по управлению накопителями.
Обычно время доступа для чтения файлов (atime
) можно изменить в метаданных дескриптора inode, что требует выполнения дополнительной операции записи. Если нет необходимости в точном определении atime
, при монтировании файловой системы можно добавить параметр noatime
. В большинстве случаев, однако, atime
не добавляет значительную задержку, так в ядре Red Hat Enterprise Linux 6 уже по умолчанию включен режим relatime
. В этом режиме atime
будет обновляться , если предыдущее время доступа меньше времени изменения файла (mtime
) или времени изменения статуса (ctime
).
Примечание
noatime
будет автоматически включен параметр nodiratime
, поэтому отдельно его устанавливать не требуется.
Упреждающее чтение ускоряет доступ за счет предварительного чтения данных и размещения их в кэше страниц. При интенсивной нагрузке это может значительно улучшить производительность.
# blockdev -getra устройство
# blockdev -setra N устройство
blockdev
значение не будет сохраняться между перезагрузками. Рекомендуется создать сценарий init.d
, чтобы восстановить его при запуске системы.
7.1.3. Обслуживание файловой системы
Блоки, не используемые файловой системой, можно освободить. Это помогает освободить пространство в файловых системах на SSD-дисках и в динамически созданных томах.
fstrim
удаляет неиспользуемые блоки в соответствии с заданными критериями. Эти операции можно использовать в файловых системах XFS и ext4 в версиях Red Hat Enterprise Linux 6.2 и выше при условии, что они поддерживаются на уровне физических устройств. Параметр /sys/block/устройство/queue/discard_max_bytes
поможет это проверить: если его значение не равно нулю, удаление поддерживается.
-o discard
(или указать его в строке команды mount
в /etc/fstab
). Удаление будет выполняться без участия пользователя. Блоки, переходящие из занятого состояние в свободное, будут автоматически удаляться в ext4 (начиная с Red Hat Enterprise Linux 6.2) и в XFS (начиная с Red Hat Enterprise Linux 6.4).
7.1.4. Производительность приложений
Файловые системы ext4, XFS позволяют заранее выделить пространство при помощи вызова fallocate(2)
. Это поможет уменьшить фрагментацию, тем самым улучшив производительность. fallocate(2)
отмечает заданный диапазон как выделенный и инициализирует его нулями.