Чому більша частина дискового IO приписується jbd2, а не процесу, який фактично використовує IO?


17

Під час моніторингу IO диска більша частина IO приписується jbd2, тоді як початковому процесу, який спричинив високий IO, приписується значно нижчий відсоток IO. Чому?

Ось iotopприклад результату (інші процеси з IO <1% опущені):

введіть тут опис зображення


Це з data=journal?
ДепресіяДаніель

@DepressionDaniel не впевнений, що ти маєш на увазі. Я щойно використав iotop -oP
Sparkler

Відповіді:


16

jbd2 це нитка ядра, яка оновлює журнал файлової системи.

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

У вашому випадку виявляється, що більша частина трафіку складається з оновлень журналу. Це простежується до оновлення журналу, але немає оновлень між оновленнями журналу та процесами, що спричинили операцію запису, яка вимагала цього оновлення журналу.


2
Які ще диски io категорії є окрім оновлень журналу? (тобто чому jdb2 - не єдиний запис у виході iotop?)
Sparkler

@Sparkler Там же записуються фактичні дані. (Якщо ви не використовуєте файлову систему, структуровану журналом, але більшість це не так.)
Жил "ТАК - перестаньте бути злим"

Це пояснює, що відбувається. Але це досить довго, коли початковий пріоритет вводу / виводу процесу був встановлений у режимі очікування та jbd2просто продовжує робити багато вводу-виводу за власним пріоритетом вводу-виводу.
jlh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.