Почему kjournald чрезвычайно активен в покоящейся файловой системе?
Примечание: это вопрос "документирования моего процесса", на который я напишу ответ. К счастью, ошибка сервера уже помогла мне решить эту проблему, потому что написание моей ситуации, чтобы другие могли оценить ее, заставило меня осознать, что происходит.
- Я использую файловую систему ext3 на сервере Debian.
- Несмотря на то, что в моей основной файловой системе происходит очень мало действий по отношению к файлам, существует огромная активность
kjournald
(видно черезiotop
). - Это действие периодически повторяется, что повышает общее среднее число операций записи до 2 МБ / с (что вызывает у меня большое беспокойство, поскольку я хотел бы получить некоторые твердотельные накопители, и такой скорости на самом деле достаточно, чтобы серьезно угрожать весьма щедрой стойкости записи текущие модели).
- Я уже сделал монтируемую файловую систему с помощью
noatime,nodiratime
, - Я уже увеличил интервал фиксации журнала файловой системы с 5 до 300 секунд.
Что здесь происходит? (Спойлеры: это была вещь пользовательского пространства. Я пишу это, главным образом, чтобы осветить, возможно, противоречащие интуиции основные проблемы.)
1 ответ
Посмотрите, что произошло, главное приложение, которое запускается на этом сервере, управляет чрезвычайно большим, густонаселенным деревом каталогов и записывает файлы в это дерево с несколько неоптимальными владениями и разрешениями. Поскольку довольно неприятно заставлять это приложение изменять это, а файлы нуждаются в том, чтобы их владельцы и права доступа были исправлены достаточно быстро (некоторая задержка - это хорошо, но не слишком много), я настроил задание cron, чтобы каждую минуту бросать массу chown -R
а также chmod -R
в большом, густонаселенном дереве каталогов. Казалось, что все продолжало работать нормально, пока это происходило, поэтому я сказал, эх, это излишне, но работает, я буду жить с этим.
Тем не мение. Оказывается, когда вы делаете chown
или же chmod
он регистрирует метаданные журнальной файловой системы ext независимо от того, произошло ли какое-либо изменение. Таким образом, в файловой системе ничего или почти ничего не менялось, но генерировалось огромное количество метаданных, которые затем ударили по чертям диска при фиксации журнала. К сожалению.
Так что я изменил chown
а также chmod
в find
задания, которые на самом деле ищут файлы, которые необходимо изменить перед их изменением, а средняя скорость записи увеличилась с 2 МБ / с до, возможно, 50 КБ / с. Ура.