proc FSを使用したブロックI/Oレイテンシの測定

proc FSを使用したブロックI/Oレイテンシの測定

ディスクアクセスによるIOレイテンシを測定しようとしています。このために私はdelayacct_blkio_ticksの応答を使用します/proc/[pid]/stat。私のアプリケーションでどれだけのIOが実行されても、私が得るのは定数0だけです。

プロクの人々は言った:

42) delayacct_blkio_ticks  %llu  (since Linux 2.6.18)
Aggregated block I/O delays, measured in clock ticks (centiseconds).

カーネルバージョン3.0.101を使用しています。

ただし、...を使用すると、ゼロ以外のtop定数 "%wa"値が得られます。

top - 00:49:36 up 186 days, 15:06,  3 users,  load average: 4.54, 5.80, 5.53
Tasks: 270 total,   1 running, 269 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.0%sy,  0.0%ni, 97.0%id,  3.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    387581M total,   261149M used,   126432M free,      295M buffers
Swap:    12266M total,      193M used,    12073M free,    82346M cached

  PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND
 4290 build     20   0  512g 169g  25m S      8 44.9 241:27.65 java
 7614 build     20   0  9056 1268  828 R      0  0.0   0:01.28 top
    1 root      20   0 10540  560  536 S      0  0.0   0:46.33 init

間違った測定値を読んでいますか?topレポートが正しい理由は何ですか?アプリケーションでタスクを実行するときにのみWA値が0を超えるため、他のプロセスで発生したものではないと確信しています。

実際にJavaプロセスの状態はDdelayacct_blkio_ticksこの状態は単に報告時間ですか?

関連情報