Основные способы оптимизации файловой системы на серверах с Linux.

Итак. Хоть и снова активны минусы, решаюсь описать пару способов оптимизации фс, которые давным использую на своих серверах (бд, веб).
.
Файловая система ext3, конечно, вылизана на отлично, отказоустойчива, но это не значит, что она достаточно быстра.
1) В какой-то момент по определённым причинам (рассказывать в чём отличие ext4 от ext3 не стану.) было решено перейти на ext4.
2) Для самой системы максимум на серверах выделено в пределах 50-60 гб. Больше не нужно.
Все данные перемещены на отдельные разделы, уже с 1тб места и более, со своими специфичными настройками:

noatime, nodiratime — дает задание не обновлять индексные дескрипторы каждый раз.
data=writeback — файловая система не производит какого либо журналирования данных.
По заявлению всех разрабочиков любых дистрибутивов последний параметр может оказаться вредным, по причине потери данных при сбоях (неожиданных перезагрузках системы и т.д). Однако, данная опция даёт хорошую оптимизацию. Есть режим data=ordered, указывающий, что файловая система должна журналировать только метаданные. Она хоть и тоже без гарантии, но защищает данные, соответственно риска потери данных меньше, но в то-же время, производительность будет несколько ниже. Сие мы стараемся использовать например для корневых разделов. Мы лично перестали беспокоится за потерю данных, у нас давным давно отлажена система резервного копирования. К тому-же, в жизни некоторых серверов, были ситуации совсем разные.
Я не разу не замечал, чтобы настройки файловой системы оказали каких нить плохих побочных эффектов.

Для произведения этих настроек нужно иметь root-доступ.
Первые настройки (noatime, nodiratime) можно по идее записать просто в fstab и выполнить
mount -o romount /path


Для второго уже нужно несколько по другому (Изменения надо проводить при размонтированном разделе):
tune2fs -o journal_data_writeback /dev/sdaX
tune2fs -O ^has_journal /dev/sdaX
e2fsck -f /dev/sdaX

После этого всего записать в fstab и смонтировать файловую систему.
UUID=93aae031-91b0-49fa-adf0-7344f972c903 /data ext4 defaults,data=writeback,noatime,nodiratime 0 2

mount /data

UUID у каждого свой.
Посмотреть его можно например так:
dumpe2fs /dev/sdaX |more

Filesystem UUID: 93aae031-91b0-49fa-adf0-7344f972c903

На этом вроде всё.
PS. Хорошим тоном ещё будет использование SSD, но начальство пока решило, что для нас оно дороговато. Так что, пока не буду углубляться в него.

ATTENTION!!! Я не несу ответственности за случайно убитые ОС или данные на ваших серверах при/после копипасты этих советов. Делайте всё на свой страх и риск.

7 комментариев

avatar
SSD наша оптимизация.
avatar
Самое интересное это как раз то почему вы решили перейти на ext4, а не скажем на XFS.
avatar
Освоение XFS начал недавно. В скором времени мб начну переносить мение важные сервера на неё.
Возможно, при переходе на дебиан 7.
avatar
ewden а почему? чем XFS так лучше ext3 в контектсе LS?
avatar
Вы хотите чтобы я вам рассказал отличия файловых систем?
avatar
Нет, об этом я могу сам почитать. Но я не вижу никаких значимых преимуществ для LS. Синтетический прирост в скорости ещё увидеть надо, терабайты данных навряд ли повод. А недостатки тоже есть например больший расход CPU и меньшая надёжность.
avatar
zfs или btrfs — вот куда смотреть надо)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.