iostat란?
iostat는 시스템의 입출력 통계를 보기 위한 유틸리티 중 하나로, CPU 및 디스크 I/O 통계를 제공하는 명령어입니다. 이 도구는 리눅스 환경에서 사용되며, 시스템의 성능 모니터링 및 디스크 사용량 파악에 유용합니다.
iostat 명령어를 사용하면 CPU 사용률, 디스크의 읽기 및 쓰기 작업, 디스크 대기 시간 등과 같은 다양한 시스템 통계를 실시간으로 모니터링할 수 있습니다. 이를 통해 시스템의 성능 문제를 식별하고 최적화할 수 있습니다.
iostat 설치
#Red Hat 계열
[root@localhost ~]# yum install sysstat
#Debian 계열
[root@localhost ~]# apt-get install sysstat
iostat 사용방법
[root@localhost ~]# iostat [옵션] [인터벌] [횟수]
#예시 1초마다 CPU 정보를 3번 출력.
[root@localhost ~]# iostat -c 1 3
#예시 1초마다 DISK 정보를 3번 출력.
[root@localhost ~]# iostat -d 1 3
iostat 명령어 옵션
| 옵션 | 설명 |
| -c | CPU 사용량에 대한 통계 표시 |
| -d | 디스크 I/O 통계 표시 |
| -h | 출력을 보기 쉬운 형식으로 표시 |
| -k 또는 -m | 출력 단위를 킬로바이트(-k) 또는 메가바이트(-m)로 표시 |
| -N | 네트워크 통계 표시 |
| -t | 터미널 통계 표시 |
| -V | 프로그램 버전 정보 표시 |
| -x | 확장된 CPU 통계 표시 |
| -y | 프로세스 스위칭 통계 표시 |
| -z | 숨겨진 통계 표시 |
| `-j { ID | LABEL |
| [ -T ] -g <group_name> | 그룹별로 통계 표시 (옵션 -T를 사용하면 각 그룹의 평균도 표시) |
| `-p [ <device> [,…] | ALL ]` |
| `[ <device> […] | ALL ]` |
iostat 출려 정보 해석
iostat CPU 출력정보 해석
#아래는 iostat -c 명령어 실행에 대한 예시 출력입니다.
[root@localhost ~]# iostat -c
Linux 3.10.0-1160.el7.x86_64 (localhost) 12/18/2023 _x86_64_ (48 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.07 0.00 0.32 2.66 0.00 96.95
| 출력 정보 | 설명 |
| %user | 사용자 레벨에서 CPU가 소비하는 시간의 백분율 |
| %nice | NICE 값이 조정된 프로세스가 사용한 CPU 시간의 백분율 |
| %system | 시스템 레벨에서 CPU가 소비하는 시간의 백분율 |
| %iowait | CPU가 입출력 연산을 처리하는 데 대기하는 시간의 백분율 |
| %steal | 하이퍼바이저에서 다른 가상 머신에 할당된 가상 CPU의 백분율 |
| %idle | CPU가 유휴 상태에 있는 시간의 백분율 |
iostat DISK 출력정보 해석
#아래는 iostat -dmx 명령어 실행에 대한 예시 출력입니다.
[root@localhost ~]# iostat -dmx

iostat disk 출력값
| 항목 | 설명 |
| rrqm/s | 초당 읽기 요청에 대한 병렬 복수의 요청 수 |
| wrqm/s | 초당 쓰기 요청에 대한 병렬 복수의 요청 수 |
| r/s | 초당 읽기 I/O 작업 수 |
| w/s | 초당 쓰기 I/O 작업 수 |
| rMB/s | 초당 읽은 데이터 양 (메가바이트 단위) |
| wMB/s | 초당 쓴 데이터 양 (메가바이트 단위) |
| avgrq-sz | 평균 요청 크기 (블록 단위) |
| avgqu-sz | 평균 I/O 큐 길이 |
| await | 평균 I/O 대기 시간 (밀리초) |
| r_await | 읽기 작업의 평균 대기 시간 (밀리초) |
| w_await | 쓰기 작업의 평균 대기 시간 (밀리초) |
| svctm | 평균 I/O 서비스 시간 (밀리초) |
| %util | 디스크 사용률 (디스크가 사용 중인 백분율) |