Linux

iostat 명령어

moxie2ks 2025. 3. 3. 18:01
728x90
반응형

개요

디스크 입출력 통계를 확인하고 싶다면 iostat 명령어가 유용한 도구다. 이 명령어는 디스크의 읽기/쓰기 통계, CPU 사용률, 대기열 길이 등 다양한 정보를 실시간으로 제공한다. 여러 시스템의 성능을 모니터링할 때 반드시 필수적인 툴로 손꼽힌다.

설명

iostat는 Input/Output Statistics의 약자로, 디스크 입출력에 대한 통계를 수집하고 보고하는 역할을 한다. 이 명령어는 CPU 사용률과 함께 각 디스크의 입출력 성능을 모니터링할 수 있게 도와준다. 특히, 프로세스의 성능 문제를 진단하거나 시스템의 부하를 분석할 때 유용하다.

iostat의 주요 출력 항목은 다음과 같다:

  • %user : 사용자 프로세스에서 사용한 CPU 시간의 비율
  • %system : 시스템 프로세스에서 사용한 CPU 시간의 비율
  • %iowait : I/O 작업을 기다리는 시간의 비율
  • tps : 초당 전송되는 트랜잭션 수
  • kB_read/s : 초당 읽은 키로바이트 수
  • kB_wrtn/s : 초당 쓴 키로바이트 수
  • %util : 디스크의 사용률

이러한 데이터는 디스크의 상태를 이해하고, 성능 문제를 조기에 발견하는 데 도움을 줄 수 있다.

사용법

iostat를 사용하기 위해서는 터미널에서 간단한 명령어를 입력하면 된다. 기본적인 사용법은 아래와 같다:

iostat [옵션] [초기 딜레이] [횟수]
  • 옵션 : 다양한 출력 형식을 설정할 수 있는 옵션으로, -c, -d, -x 등이 있다.
  • 초기 딜레이 : 출력 주기를 설정하는 수치로 초 단위로 입력한다.
  • 횟수 : 출력할 데이터의 개수를 설정한다.

예시

실제로 iostat 명령어를 사용했을 때의 예시를 들어보자. 아래는 iostat 명령어를 실행한 결과의 예다:

iostat -x 1 3

이 명령어는 매 1초마다 3번 디스크의 입출력 통계를 출력한다. 출력 결과는 다음과 같은 형식으로 나타난다:

Linux 5.15.0-83-generic (hostname)     03/03/2025     _x86_64_    (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.50    0.00    1.00    0.50    0.00   96.00

Device            r/s    w/s    rkB/s  wkB/s  avgrq-sz  avgqu-sz   await  svctm  %util
sda              10.00  15.00   500.00  750.00   100.00      0.20    5.00   1.50  37.50
sdb               5.00   8.00   250.00  400.00    80.00      0.10    3.00   1.20  20.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.00    0.00    1.50    0.30    0.00   95.20

Device            r/s    w/s    rkB/s  wkB/s  avgrq-sz  avgqu-sz   await  svctm  %util
sda              12.00  18.00   600.00  900.00   105.00      0.25    6.00   1.60  42.00
sdb               6.00   9.00   300.00  450.00    85.00      0.12    4.00   1.30  25.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.00    0.00    2.00    0.20    0.00   93.80

Device            r/s    w/s    rkB/s  wkB/s  avgrq-sz  avgqu-sz   await  svctm  %util
sda              14.00  20.00   700.00 1000.00   110.00      0.30    7.00   1.70  45.00
sdb               7.00  10.00   350.00  500.00    90.00      0.15    5.00   1.40  30.00

디스크 I/O 관련 통계

필드 설명
Device
디스크 장치 이름 (sda, sdb 등)
r/s 초당 읽기 요청 수
w/s 초당 쓰기 요청 수
rkB/s
초당 읽기된 데이터(KB)
wkB/s
초당 쓰기된 데이터(KB)
avgrq-sz 평균 요청 크기(KB)
avgqu-sz
요청 대기열 길이 (Queue Length)
await
I/O 요청의 평균 대기 시간(ms)
svctm
I/O 요청의 평균 서비스 시간(ms)
%util
장치 사용률 (100%에 가까울수록 I/O 부하가 높음)

결론

iostat 명령어는 시스템 모니터링과 디스크 성능 분석에 매우 유용한 도구다. CPU와 디스크의 상태를 간편하게 확인할 수 있어, 시스템 관리자는 물론 개발자에게도 필수적인 툴이다.

이 명령어를 통해 디스크의 성능을 지속적으로 모니터링하면 시스템의 효율성과 안정성을 높이는 데 도움이 된다.

이제 본 포스팅을 통해 iostat의 사용 방법과 유용성을 이해했으리라 생각한다. 실무에서 자주 활용해 보면 좋겠다.

참고문헌

[1] 티스토리 - [Linux] iostat 명령어 사용법 - 디스크 사용량 모니터링

[2] 브런치스토리 - Linux iostat

[3] 티스토리 - Linux iostat - Las 낙서장 - 티스토리

[4] Oracle Help Center - 디스크 사용률 정보 표시( iostat) - 시스템 관리 설명서

728x90
반응형