IOボトルネックが読み取りか書き込みかを確認する

IOボトルネックが読み取りか書き込みかを確認する

私はこれを使ってddrescue失敗したディスクを希少ファイルとしてイメージします。多くの場合、ファイルは高度に断片化されます(50,000以上の断片)。

時々、瓦礫によってイメージングが遅くなるようです。速度の低下がソースディスクの読み取りまたはターゲットファイルの書き込みによって引き起こされるかどうかを検出する方法はありますか?

答え1

ddrescueあるブロックデバイスから読み込み、別のブロックデバイスに書き込むとします。実行するiostat -xyh 10と、各ブロックデバイスで1秒あたりの読み取り/書き込み/廃棄されるデータ量(読み取り/書き込み/廃棄回数と読み取り/書き込み/廃棄されるデータ量)を確認できます。

SSDが1つのノートパソコンの出力例:

$ iostat -xyh /dev/nvme0n1 10
Linux 5.4.0-26-generic (tux)        05/16/2020      _x86_64_        (4 CPU)


avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          16.3%    0.0%   34.7%    9.3%    0.0%   39.6%

     r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz Device
    0.60      9.6k     0.00   0.0%    1.17    16.0k nvme0n1

     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz Device
 2422.60    294.7M     0.40   0.0%   11.41   124.5k nvme0n1

     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz Device
    0.00      0.0k     0.00   0.0%    0.00     0.0k nvme0n1

  aqu-sz  %util Device
   23.25  34.3% nvme0n1

この数値を見ると、私がSSDへの書き込みは多くして読み取りはほとんどしないことが明らかになりました。読み取り(「r_await」)および書き込み(「w_await」)に関連するiowait時間に集中することもできます。

よりiostat マンページもっと学ぶ。

関連情報