web-dev-qa-db-ja.com

iotopはどのようにして相対的なI / Oアクティビティを計算しますか?

ワークステーションで重いI/Oプロセスをいくつか実行していて、最近それらを監視するためにiotopをインストールしました。これが最近のスクリーンショットです:

iotop screenshot

IO>列の読み取り値について少し混乱しています。これは、ディスクが約1500%のI/Oアクティビティで実行されていることを示しています。それは可能ですか?

これらの読み取り値からディスクの最大I/Oを把握するにはどうすればよいですか?また、iotopはどのようにして相対的なI/Oアクティビティを計算しますか?

16
Afr

iotopは、いくつかの異なる起源の統計を示します。ものを追加するときは注意してください。

この前のディスカッション は、プロセスごとの読み取り/書き込み量とシステムの合計読み取り/書き込み量の違いをカバーしています。プロセスごとの量にはすべてのI/Oが含まれているため(ディスクに関係なく)、異なるものをカバーしていますシステムの合計はRAMとディスク(スワップ、遅延キャッシュ書き込みなどを含む)の間です)。

IO>列の数値を合計することはできません。これらは、各プロセスからの合計I/Oの割合ではなく、I/Oに費やされる各プロセスの時間の割合を示します。 99.9%は、このプロセスがほぼ常にI/Oでブロックされることを意味します。

プロセス間で多くのI/Oが共有されるため、プロセスごとのI/Oのアカウンティングは困難です(複数のプロセスで使用されるファイルのキャッシュ、プロセスがRAMを要求すると、別のプロセスがスワップアウトされます。等。)

ディスクの「可能な最大I/O」の有用な定義はないと思います。チェーンのさまざまなポイントで最大順次書き込み速度と最大順次読み取り速度があります(hdparm -tはこれらの値の一部を表示します)が、これは実際の使用状況を実際に示しているわけではありません。通常、ファイルの読み取りと書き込みは順次ではありません。ハードディスクでは、多くの場合、ヘッドを移動して別の場所にアクセスするのが最も時間がかかります。