web-dev-qa-db-ja.com

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

ディスクIOを監視するとき、IOのほとんどはjbd2に起因しますが、高IOの原因となった元のプロセスははるかに低い属性に起因しますIOパーセンテージ。なぜですか?

iotopの出力例を以下に示します(IO <1%が省略された他のプロセス)。

enter image description here

19
Sparkler

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

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

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