Назад | Перейти на главную страницу

Почему kjournald чрезвычайно активен в практически неподвижной файловой системе?

Примечание: Это вопрос «документирования моего процесса», на который я напишу ответ. К счастью, serverfault уже помог мне решить эту проблему, потому что запись моей ситуации, чтобы другие могли ее оценить, заставила меня понять, что происходит.

  1. Я использую файловую систему ext3 на сервере Debian.
  2. Несмотря на то, что в моей основной файловой системе происходит очень небольшая активность в отношении файлы, огромная активность от kjournald (видно через iotop).
  3. Эта активность происходит в виде периодических всплесков, которые повышают мое общее среднее количество операций записи примерно до 2 МБ / с (что очень беспокоит меня, потому что я хотел бы получить несколько твердотельных накопителей, и этой скорости на самом деле достаточно, чтобы серьезно угрожать очень большой продолжительности записи. текущие модели).
  4. Я уже смонтировал рассматриваемую файловую систему с помощью noatime,nodiratime.
  5. Я уже увеличил интервал фиксации журнала файловой системы с 5 до 300 секунд.

Что происходит? (Спойлеры: это было связано с пользовательским пространством. Я пишу это в основном, чтобы выделить, возможно, противоречащие интуиции основные проблемы.)

Посмотрите, что произошло: основное приложение, работающее на этом сервере, управляет чрезвычайно большим, хорошо заполненным деревом каталогов и записывает файлы в это дерево с несколько неоптимальным владением и разрешениями. Поскольку довольно неприятно заставить это приложение изменить это, а файлы нуждаются в том, чтобы их права собственности и разрешения были исправлены достаточно быстро (небольшая задержка - это нормально, но не много), я настроил задание cron, чтобы каждую минуту бросать массу chown -R и chmod -R в большом, хорошо заполненном дереве каталогов. Казалось, что все работает нормально, пока это происходит, поэтому я сказал: ну, это перебор, но работает, я с этим переживу.

Тем не мение. Оказывается, когда вы делаете chown или chmod, он регистрирует журналируемые метаданные файловой системы ext независимо от того, имело ли место какое-либо изменение. Итак, в файловой системе ничего или почти ничего не менялось, но необъятный были сгенерированы объемы метаданных, которые затем вылетели из диска, когда журнал зафиксировал. Ой.

Так что я изменил chown и chmod к find задания, которые фактически ищут файлы, которые необходимо изменить перед их изменением, и средняя скорость записи увеличилась с 2 МБ / с до 50 кБ / с. Ура.