나는 이것을 사용하여 ddrescue
실패한 디스크를 희소 파일로 이미지화합니다. 종종 파일이 고도로 조각화됩니다(50,000개 이상의 조각).
때때로 잔해로 인해 이미징 속도가 느려지는 것 같습니다. 속도 저하가 원본 디스크 읽기 또는 대상 파일 쓰기로 인해 발생하는지 여부를 감지할 수 있는 방법이 있습니까?
답변1
ddrescue
한 블록 장치에서 읽고 다른 블록 장치에 쓰는 것으로 가정합니다 . 실행 iostat -xyh 10
하면 각 블록 장치에서 초당 읽기/쓰기/폐기되는 데이터의 양(읽기/쓰기/폐기 횟수 및 읽기/쓰기/폐기되는 데이터 양)을 확인할 수 있습니다 .
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 맨페이지더 알아보기.