프로세스'/proc/pid/io를 읽는 방법

프로세스'/proc/pid/io를 읽는 방법

각 프로세스의 디스크 활동을 모니터링하려고 합니다. 이를 수행하는 방법을 찾은 한 가지 방법은 /proc/pid/io 파일을 읽고 해당 필드를 이전에 읽은 필드와 비교하는 것입니다. 내 모니터링 프로세스가 일부 io 파일만 읽을 수 있는 것 같다는 점을 제외하면 잘 작동합니다(예: 아파치를 읽을 수 있는 권한이 없습니다). 다른 사람의 IO를 읽는 방법은 무엇입니까? 어쩌면 이것을 달성하는 더 좋은 방법이 있을까요?

편집하다분명히 프로세스를 루트로 실행할 수 있지만 이것을 피하고 싶습니다.

답변1

사용 iotop.

Redhat/Centos/Fedora 시스템의 저장소에서 사용할 수 있어야 합니다(아직 설치되지 않은 경우).

유사한 정보를 출력 top하지만 CPU/메모리 통계 대신 IO 통계(디스크 읽기, 쓰기 및 스왑)를 얻게 됩니다.

-p귀하는 -u이러한 옵션에 관심이 있을 수 있습니다 --only.

예를 들어 프로세스 ID 5435에 대한 IO 활동을 보려면 다음을 사용합니다.

iotop -p 5435

man페이지 에서 :

   -p PID, --pid=PID
          A list of processes/threads to monitor (all by default).

   -u USER, --user=USER
          A list of users to monitor (all by default)

   -P, --processes
          Only show processes. Normally iotop shows all threads.

관련 정보