我用来ddrescue
将故障磁盘映像为稀疏文件 - 通常文件会变得高度碎片化(> 50k 碎片)。
我怀疑有时成像速度会因为碎片而降低。有没有办法检测缓慢是由于读取源磁盘还是写入目标文件造成的?
答案1
我假设ddrescue
正在从一个块设备读取并写入另一个块设备。您可以运行iostat -xyh 10
以了解每个块设备上每秒读取/写入/丢弃的数据量(读取/写入/丢弃的次数以及读取/写入/丢弃的数据量)。
带有一个 SSD 的笔记本电脑的输出示例:
$ 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 手册页了解详情。