Mengapa sebagian besar IO disk dikaitkan dengan jbd2 dan bukan karena proses yang sebenarnya menggunakan IO?

16

Saat memantau IO disk, sebagian besar IO dikaitkan dengan jbd2, sedangkan proses asli yang menyebabkan IO tinggi dikaitkan dengan persentase IO yang jauh lebih rendah. Mengapa?

Berikut ini iotopcontoh output (proses lain dengan IO <1% dihilangkan):

masukkan deskripsi gambar di sini

Sparkler
sumber
Apakah ini dengan data=journal?
DepressedDaniel
@DepressedDaniel tidak yakin apa yang Anda maksud. Saya hanya menggunakan iotop -oP
Sparkler

Jawaban:

16

jbd2 adalah utas kernel yang memperbarui jurnal sistem file.

Menelusuri aktivitas sistem berkas atau disk dengan proses yang disebabkannya sulit karena aktivitas banyak proses digabungkan bersama. Misalnya, jika dua proses membaca dari file yang sama pada saat yang sama, proses mana yang akan dibaca pembacaannya? Jika dua proses menulis ke direktori yang sama dan direktori diperbarui pada disk hanya sekali (menggabungkan dua operasi), proses mana yang akan dituliskan terhadap penulisan?

Dalam kasus Anda, tampaknya sebagian besar lalu lintas terdiri dari pembaruan jurnal. Ini dilacak ke jurnal updater, tetapi tidak ada penelusuran antara pembaruan jurnal dan proses yang menyebabkan operasi penulisan yang memerlukan pembaruan jurnal ini.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
2
Kategori disk io apa yang ada selain pembaruan jurnal? (Yaitu mengapa jdb2 bukan satu-satunya entri dalam output iotop?)
Sparkler
@Parkler Ada menulis data aktual, juga. (Kecuali jika Anda menggunakan filesystem log-terstruktur, tetapi kebanyakan tidak.)
Gilles 'SO- stop being evil'
Itu menjelaskan apa yang terjadi. Tapi itu menyebalkan waktu ketika proses asli 'I / O prioritas telah diatur ke' idle 'dan jbd2hanya terus melakukan banyak I / O pada prioritas I / O sendiri.
jlh