私はこれを使って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 マンページもっと学ぶ。