kjournald причини високого використання


15

Я намагаюся розібратися, чому kjournaldбожеволіє на моїй машині. Це 8-ядерна коробка з великою кількістю пам'яті. Має ~ 50% процесорного навантаження.

Іотоп, схоже, не вказує на якісь конкретні процеси - деякі сюжети записів тут (там) (здебільшого запуск кронів, генеровані деякі статистичні дані моніторингу тощо) Коли я sys/vm/block_dumpзбирав статистику записів, у мене з’явились такі списки:

kjournald(1352): 1909
sendmail(28934): 13
cron(28910): 12
cron(28912): 11
munin-node(29015): 3
cron(28913): 3
check_asterisk_(28917): 3
sh(28917): 2
munin-node(29022): 2
munin-node(29021): 2

Де kjournaldдії - це лише WRITE.

Чому це відбувається? На що ще слід звернути увагу, щоб трохи обмежити діяльність kjournald? Це здається непропорційним тому, що написано насправді.


Яку ОС ви використовуєте. Чи можете ви розмістити неосновану інформацію.
Сохам Чакраборті

У мене була точно така ж проблема
Шарен Ейрс

Відповіді:


15

kjournaldвідповідає за журнал ext3 (журнальна файлова система). Як відомо, використовується багато процесора при певних навантаженнях. Не можна багато чого робити, крім використання іншої файлової системи або відключення журналу (ефективно роблячи fs ext2).

Теоретично ви можете використовувати один з інших режимів журналу ext3 і перевірити, чи зменшується використання процесора, але пам’ятайте, що кожен метод є компромісом щодо безпеки записуваних даних на диск. Ви замовили режим, режим запису та режим «все».

  1. Упорядковано: журнал лише метадані, але запевняє, що дані, пов'язані з метаданими, зберігаються перед внесенням змін у метадані до журналу.
  2. Зворотний зв'язок: журнал лише метадані, але не має гарантії збереження даних до журналу.
  3. журнал: все прокладено в журналі , дані та метадані. Це може бути повільним, але YMMV.

Ви встановлюєте режим, використовуючи опцію data=при монтажі системи, наприклад data=ordered.


Немає сенсу в зміні режиму журналу, навпаки, щоб повністю вимкнути його, але в ньому є ще менше сенсу. Тож описувати, які параметри журналу ніби не мають сенсу.
poige

3
У різних режимах журналу спостерігається різна поведінка процесора. Деякі тести тут .
coredump

1
@coredump, як і раніше безглуздо . Немає графіків, які б відображали використання процесора для різних режимів журналу, лише пропускну здатність. Графік використання процесора фактично показує відмінності між FSes. Крім того, враховуючи досить помітну різницю між EXT3 та Reiser3 на цьому графіку, зрозуміло, що загальний і середній слід процесора проаналізований, де @viraptor має щуки активності kjournald.
poige

Тоді ми погодимося не погодитися. Тільки тестування на його оточенні покаже, чи є різниця у використанні процесора чи ні. Також я б не рекомендував ReiserFS, оскільки уряд отримав постійний замок для автора FS :).
coredump

8
Ось візьміть цю чашку гумору: \
coredump

4

За замовчуванням ваша файлова система ext3 буде змонтована з atimes увімкнено. Кожен раз, коли файл або каталог читається / отримує доступ до нього, файловій системі доведеться записувати назад на диски, щоб оновити цей запис atime. Це означає, що навіть якщо ваша завантаженість здебільшого читається, вам все одно доведеться натискати на диски, щоб оновити час доступу кожного файлу та каталогу, і це я здогадуюсь, чому ваш kjournaldпроцес написав стільки блоків.

Вимкнення atime's призведе до значного підвищення продуктивності, але порушить відповідність POSIX. Перегляньте цю статтю у Вікіпедії, щоб ознайомитись з критикою atime.

Щоб вимкнути аніме, просто додайте noatimeдо параметрів монтажу вашої файлової системи, або ви можете перезавантажити, як це запропоновано poige. Ось приклад вашої кореневої файлової системи:

mount -o remount,noatime /

3
Зауважте, що новіші ядра за замовчуванням, relatimeякі, здається, є прийнятним компромісом між noatimeта atime.
Олівер

1

Якщо досконалість даних не важлива: зробіть це

iostat -o -a

Переконайтесь, що це справді kjournald. Це те, що спричиняє збій мого сервера.

Зміна жорсткого диска на SSD спрацює.

Коли ви бачите, що kjournald пише 5-10 МБ даних, які ви робите

http://ubuntuforums.org/showthread.php?t=56621

sudo tune2fs -O ^has_journal /dev/sda1
sudo e2fsck /dev/sda1

де sda1 - назва вашого розділу

Повідомте про результат у коментарі, щоб я міг далі перевірити.


3
Ви маєте на увазі іотоп, а не йостат, правда?
Джо Ніланд

0

Не для того, щоб це зробити, просто зазначити:

  1. mount -oremount,noatime /fs/being_over/journaled- як швидкий здогад (ви mountвсе одно не показали нам, як виглядає)
  2. Спробуйте зменшити розмір журналу ( tune2fs -J …)
  3. Перехід на Reiser3 (надійний досить тривалий час, так. І таких бридких журналів ніколи не було).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.