iotop이지만 특정 디스크의 경우?

iotop이지만 특정 디스크의 경우?

iotop특정 볼륨의 IO를 모니터링하기 위한 유사한 도구가 있습니까? (또는 필터링 방법이 누락되었을 수도 있습니다 iotop.) 그렇지 않은 경우 이 정보를 얻을 수 있는 방법이 있습니까 /proc? ( dstat등등은 볼륨당 모든 프로세스의 집계 활동만 표시하는 반면, 각 프로세스가 얼마나 기여하는지 이해하고 싶습니다.)

답변1

이것은 이상적인 대답은 아니지만 매초 어떤 프로세스가 가장 많이 쓰고, 주어진 디스크에 얼마나 많이 기록되었는지 알려줍니다(이 경우 /dev/sda).

dstat -tdD /dev/sda --top-io

다음과 같은 내용이 표시됩니다.

데이터 통계 출력

답변2

확인하다fatrace:

예를 들어 /hdd모니터링하려는 파티션(제 경우에는 마운트 지점)으로 CD를 이동하고 실행합니다.

sudo fatrace -c -t

그러면 예를 들어 다음과 같이 touch /hdd/x표시됩니다.

16:11:05.278541 touch(179482): + /hdd
16:11:05.278541 touch(179482): CWO /hdd/x

세부 사항:

Usage: fatrace [options...] 

Options:
  -c, --current-mount       Only record events on partition/mount of current directory.
  -o FILE, --output=FILE    Write events to a file instead of standard output.
  -s SECONDS, --seconds=SECONDS Stop after the given number of seconds.
  -t, --timestamp       Add timestamp to events. Give twice for seconds since the epoch.
  -p PID, --ignore-pid PID  Ignore events for this process ID. Can be specified multiple times.
  -f TYPES, --filter=TYPES  Show only the given event types; choose from C, R, O, or W, e. g. --filter=OC.
  -C COMM, --command=COMM   Show only events for this command.
  -h, --help            Show help.

답변3

아직 답변이 없기 때문에...

iotop 스위치와 같은 간단한 제안은 없지만 이것이 중요하다면 파일 시스템을 다른 곳에 다시 마운트하고(확인하려는 프로세스를 루트로 지정) 읽기 횟수를 계산하는 FUSE 모듈을 작성할 수 있습니다. 가져오거나 쓴 데이터의 수입니다. 이는 기존 모듈을 상당히 간단하게 적용한 것이어야 합니다. FUSE 커뮤니티에 어떤 것이 가장 좋은 기존 솔루션인지 물어볼 수 있습니다. 아마도 데모 모듈도 작동할 것입니다.

답변4

iostat를 사용하여 디스크 I/O 성능 문제를 모니터링할 수 있습니다.

$ iostat -xd /proc

관련 정보