IO 병목 현상이 읽기인지 아니면 쓰기인지 확인

IO 병목 현상이 읽기인지 아니면 쓰기인지 확인

나는 이것을 사용하여 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 맨페이지더 알아보기.

관련 정보