리눅스 시스템에서 디스크 입출력을 어떤 프로세스가 많이 유발하는지 모니터링해야 할 경우가 있다. 이 때, iotop 명령어를 사용하면 된다.
iotop 설치
$ sudo yum install iotop
iotop 명령어 사용법
iotop 명령어는보안 문제때문에 root 권한 혹은 NET_ADMIN capability를 필요로 한다.
top 명령어를 실행하면 각 프로세스의 CPU 사용량과 메모리 사용량을 모니터링할 수 있는 것처럼 iotop 명령어를 실행하면 각 프로세스들의 디스크 입출력 정보를 모니터링할 수 있다.
$ sudo iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
640 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
652 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % unshare -fp --propagation shared --mount-proc systemd
653 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd
702 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-journald
723 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-udevd
729 be/4 systemd- 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-networkd
마치 top 명령어처럼 화면 전체에 입출력에 대한 정보가 뿌려진다.
iotop 명령어 옵션
옵션 | 설명 |
-h | 사용법 |
-o | 실제 입출력이 발생하고 있는 프로세스만 보여줌 |
-b | 배치모드 |
-n <num> | 반복 횟수 지정 |
-p <pid> | 특정 프로세스에 대한 정보 출력 |
-d <sec> | 업데이트 주기 설정 (기본 1초) |
-u <user> | 특정 사용자 모니터링 |
-a | 실행한 시점부터 읽기 및 쓰기량 누적 |
-p | 스레드는 제외하고 프로세스만 보여줌 |
iotop 단축키
iotop을 실행한 상태에서 단축키를 이용해 정보 표시 방법을 변경할 수 있다.
키 | 설명 |
왼쪽, 오른쪽 방향키 | 정렬에 사용할 열을 변경 |
r | 정렬 순서를 반대로 표시 |
o | 실제로 입출력을 수행하는 프로세스나 스레드만 표시 |
p | 스레드 대신 프로세스 표시 |
a | 누적된 입출력 대역폭 표시 |
l | 스레드 또는 프로세스의 우선순위 변경 |
관련글
댓글