Вопрос или проблема
Собрал активность диска за последние 2 дня с помощью следующей команды, но не могу понять, почему на корневом разделе так много записи (426 МБ)
iotop -oPa -d 2
Всего ЧТЕНИЕ ДИСКА: 0.00 B/s | Всего ЗАПИСЬ ДИСКА: 0.00 B/s
Фактическое ЧТЕНИЕ ДИСКА: 0.00 B/s | Фактическая ЗАПИСЬ ДИСКА: 0.00 B/s
PID PRIO ПОЛЬЗОВАТЕЛЬ ЧТЕНИЕ ДИСКА ЗАПИСЬ ДИСКА SWAPIN IO> КОМАНДА
239 be/3 root 0.00 B 426.21 M 0.00 % 0.17 % [jbd2/sdd2-8]
2678 be/4 root 961.21 M 107.91 M 0.00 % 0.03 % <emby mono-sgen>
2198 be/4 root 0.00 B 0.00 B 0.00 % 0.02 % udisksd --no-debug
6402 be/4 root 16.00 K 0.00 B 0.00 % 0.07 % [kworker/u4:1]
13162 be/4 root 16.00 K 0.00 B 0.00 % 0.09 % [kworker/u4:2]
У меня есть следующий диск
/dev/sdd2 on / type ext4 (rw,noatime,errors=remount-ro)
/dev/sda1 on /media/<пользователь>/2TB_EXT4 type ext4 (rw,nosuid,nodev,noatime,uhelper=udisks2)
/dev/sdb1 on /media/<пользователь>/2TB_EXT4_2 type ext4 (rw,nosuid,nodev,noatime,uhelper=udisks2)
jbd2 — это процесс, который обновляет журнал для систем ext4. Похоже, что он обновляется, даже несмотря на то, что файловая система смонтирована с параметром “noatime”.
Существуют способы запуска полностью доступной только для чтения корневой файловой системы, например, смотрите https://wiki.debian.org/ReadonlyRoot и https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash.
Ответ или решение
Процесс jbd2 отвечает за обновление журналов для файловых систем формата ext4, и его активная запись на диск может быть обусловлена несколькими причинами. Давайте рассмотрим возможные источники проблемы и пути их решения.
Анализ проблемы
-
Журналирование файловой системы:
- Файловая система ext4 использует журналирование для обеспечения целостности данных. Это подразумевает, что любые операции записи, включая изменения метаданных, будут фиксироваться в журнале, что приводит к дополнительным операциям записи на диск. Даже при использовании параметра "noatime", который отключает обновление временных меток при доступе к файлам, механизм журналирования продолжает функционировать.
-
Текущие операции:
- Обратите внимание на процессы, которые могут активно использовать файловую систему. В выводе iotop можно заметить, что
emby mono-sgen
также выполняет значительные операции записи. Это может указывать на то, что некоторые приложения или службы генерируют частые изменения, создавая нагрузку на журнал.
- Обратите внимание на процессы, которые могут активно использовать файловую систему. В выводе iotop можно заметить, что
-
Настройки монтирования:
- Убедитесь, что используются оптимальные параметры монтирования. Вы используете
noatime
, но другие параметры могут повлиять на производительность и активность записи. Проверьте, нет ли лишних процессов, которые могут приводить к неожиданной записи в журнал.
- Убедитесь, что используются оптимальные параметры монтирования. Вы используете
Возможные решения
-
Настройка параметров монтирования:
- Попробуйте использовать параметр
data=writeback
при монтировании, который может сократить количество записей в журнал, но помните, что это сделает файловую систему менее безопасной в случае сбоя питания, так как у вас не будет гарантированной целостности данных.
Пример:
/dev/sdd2 on / type ext4 (rw,noatime,data=writeback)
- Попробуйте использовать параметр
-
Обновление конфигурации приложений:
- Проверьте настройки приложения Emby или любых других служб, которые могут активно изменять данные. Попробуйте уменьшить частоту операций записи (например, частота обновлений библиотек или сохранения кэша).
-
Переход на более стойкую к сбоям файловую систему:
- Рассмотрите возможность использования файловой системы, такой как Btrfs или XFS, которые могут предложить более эффективные механизмы журналирования и управления данными в определенных сценариях.
-
Мониторинг и диагностика:
- Установите дополнительные инструменты мониторинга для анализа нагрузки на файловую систему. Используйте
iostat
,vmstat
, иdstat
для понимания того, какие именно операции вызывают нагрузку.
- Установите дополнительные инструменты мониторинга для анализа нагрузки на файловую систему. Используйте
-
Ограничение активной записи:
- Если возможно, рассмотрите возможность временного отключения журналирования (например, используя параметры монтирования
nobarrier
иbarrier=0
), но будьте осторожны, так как это увеличивает риск потери данных.
- Если возможно, рассмотрите возможность временного отключения журналирования (например, используя параметры монтирования
Заключение
Активная запись процесса jbd2 может быть следствием как нормальной работы файловой системы ext4, так и действий приложений, использующих ресурсы. Попробуйте оптимизировать настройки монтирования и конфигурации приложений, чтобы минимизировать нагрузку на диск. Это поможет вам сократить объем непрерывных записей в журнал и повысить общую производительность системы.