iostat — 디스크 I/O 통계

Linux / 장애 진단 및 복구 / iostat.html

장애 진단 및 복구원문등록 2026-10-18

💬 "iostat 명령어"

iostat은 디스크별 I/O 처리량과 지연을 보여줍니다. 스토리지 병목을 특정합니다.

특히 %util과 await(지연)를 봅니다.

  • tps: 초당 I/O 요청 수입니다.
  • kB_read/s, kB_wrtn/s: 초당 읽기/쓰기량입니다.
  • await: 평균 대기 시간(ms)입니다. 높으면 병목입니다.
  • %util: 장치 사용률입니다. 100%에 가까우면 포화입니다.

자주 쓰는 옵션

옵션설명
-x확장 통계(await, %util)를 표시합니다
<간격> <횟수>예: iostat -x 1 5
-d디스크 통계만 표시
-mMB 단위로 표시

필수 명령어 조합 3가지

  • iostat -x 1 3 — 디스크별 확장 통계 관찰
  • iostat -xm 1 3 | grep -E 'Device|vdb' — 특정 디스크만 보기
  • iostat -d -m 1 3 — MB 단위 처리량 확인

💬 "이 명령어 결과를 파일로 남기는 예시 보여줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 통계 관찰

확장 통계를 몇 초간 봅니다.

iostat -x 1 3

2단계 · 포화 장치 특정

%util과 await가 큰 장치를 찾습니다.

iostat -x 1 3 | awk '$1=="vdb"'

3단계 · 원인 프로세스

해당 장치를 쓰는 프로세스를 찾습니다.

iotop -o -b -n 1 2>/dev/null | head || ps -eo pid,comm | head

실무에서는 이렇게 씁니다

1. 디스크 포화 진단

상황 — 서비스가 느리고 wa가 높습니다.

iostat -x 1 3

결과 — %util이 100%에 가까운 장치와 높은 await가 확인됩니다.

포인트 — 해당 장치에 몰리는 프로세스를 찾아 부하를 분산합니다.

2. 백업 시간대 판단

상황 — 백업이 서비스에 영향을 주지 않는 시간대를 찾습니다.

iostat -xm 1 5

결과 — 시간대별 처리량을 비교해 여유 있는 창을 정합니다.

포인트 — 백업은 kB_wrtn/s가 낮은 구간에 배치합니다.

주의할 점

  • 첫 측정값은 평균이라 무시하고 이후 값을 봅니다.
  • 가상/클라우드 디스크는 지연 특성이 달라 수치 해석에 주의합니다.
  • iotop 등 추가 도구가 없으면 ps/df와 함께 추정합니다.

실제 실행 화면

디스크별 I/O 지연과 사용률을 확인한 결과입니다(%util 포화).

iostat 명령어 실행 결과: 디스크 I/O 통계

실제 운영 중인 서버

이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.