ディスクIOのほとんどが、実際にIOを使用しているプロセスではなくjbd2に起因するのはなぜですか?


16

ディスクIOを監視する場合、IOのほとんどはjbd2に起因しますが、IOが高い原因となった元のプロセスはIOパーセンテージがはるかに低いとみなされます。どうして?

以下はのiotop出力例です(IO <1%の他のプロセスは省略):

ここに画像の説明を入力してください


これはdata=journal
DepressedDaniel

@DepressedDanielはどういう意味かわからない。iotop -oP
Sparkler

回答:


16

jbd2 ファイルシステムジャーナルを更新するカーネルスレッドです。

多くのプロセスのアクティビティが結合されるため、ファイルシステムまたはディスクのアクティビティを、それを引き起こしたプロセスで追跡することは困難です。たとえば、2つのプロセスが同じファイルから同時に読み取りを行っている場合、どのプロセスに対して読み取りが考慮されますか?2つのプロセスが同じディレクトリに書き込みを行い、ディレクトリがディスク上で1回だけ更新される場合(2つの操作を組み合わせて)、書き込みはどのプロセスの対象になりますか?

あなたの場合、トラフィックのほとんどはジャーナルの更新で構成されているようです。これは、ジャーナル更新プログラムまでトレースされますが、ジャーナル更新と、このジャーナル更新を必要とする書き込み操作を引き起こしたプロセスとの間のトレースはありません。


2
ジャーナルの更新以外にどのディスクioカテゴリがありますか?(つまり、jdb2がiotopの出力の唯一のエントリではない理由)
Sparkler

@Sparkler実際のデータも書いています。(ログ構造化ファイルシステムを使用している場合を除き、ほとんどはそうではありません。)
ジル「SO-悪であるのをやめる」

それが何が起こるかを説明しています。しかし、元のプロセスのI / O優先度が「アイドル」に設定されていjbd2て、独自のI / O優先度で大量のI / Oを実行し続けると、時間がかかります。
jlhが
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.