vmstat — 시스템 부하 요약

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

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

💬 "vmstat 명령어"

vmstat는 CPU·메모리·I/O를 한 줄로 요약합니다. 병목이 어디인지 빠르게 판별합니다.

두 번째 줄부터가 실제 측정값이며 간격을 지정해 연속 관찰합니다.

  • r / b: 실행 대기 / 블록 대기 프로세스 수입니다.
  • si / so: 스왑 인/아웃입니다. 0이 아니면 메모리 압박입니다.
  • bi / bo: 블록 입출력입니다. 디스크 병목 지표입니다.
  • wa: I/O 대기 CPU 비율입니다. 높으면 디스크 병목입니다.

자주 쓰는 옵션

옵션설명
<간격> <횟수>예: vmstat 1 5 (1초 간격 5회)
-s메모리 관련 통계 요약
-d디스크별 통계
-w넓은 출력 형식

필수 명령어 조합 3가지

  • vmstat 1 5 — 1초 간격 5회 시스템 요약
  • vmstat -s | head — 메모리 통계 요약
  • vmstat -d | head -5 — 디스크별 I/O 통계

💬 "실제 운영 중인 서버에서 흔히 쓰는 패턴 하나만 짚어줘"

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

1단계 · 요약 관찰

몇 초간 측정해 추세를 봅니다.

vmstat 1 5

2단계 · 병목 판별

si/so가 크면 메모리, wa가 크면 디스크입니다.

vmstat 1 5 | awk '{print $1,$2,$7,$8,$16}'

3단계 · 원인 확인

해당 자원을 쓰는 프로세스를 봅니다.

ps -eo pid,%cpu,rss,comm --sort=-rss | head

실무에서는 이렇게 씁니다

1. I/O 병목 판별

상황 — 서버가 느린데 CPU는 한가합니다.

vmstat 1 5

결과 — wa(대기)가 높고 bi/bo가 크면 디스크 병목입니다.

포인트 — iostat로 어느 디스크인지 좁히고, 어떤 프로세스인지 확인합니다.

2. 스왑 사용 감지

상황 — 메모리가 부족한지 확인합니다.

vmstat 1 5 | awk 'NR>2{print $7,$8}'

결과 — si/so가 0이 아니면 실제 스왑 사용 중입니다.

포인트 — 스왑이 크게 돌면 성능이 급격히 떨어집니다.

주의할 점

  • 첫 줄은 부팅 이후 평균이라 측정값으로 쓰지 않습니다.
  • 간격 없는 단일 실행은 스냅샷이라 추세를 놓칩니다.
  • 컨테이너에서는 호스트 전체 값이 보일 수 있습니다.

실제 실행 화면

1초 간격으로 CPU·메모리·I/O 상태를 관찰한 결과입니다.

vmstat 명령어 실행 결과: 시스템 부하 요약

실제 운영 중인 서버

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