각 프로세스의 디스크 활동을 모니터링하려고 합니다. 이를 수행하는 방법을 찾은 한 가지 방법은 /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.