본문 바로가기

리눅스

[draft] vmstat 명령어

728x90

vmstat 명령어

vmstat는 서버의 리소스 상태를 한눈에 파악할 수 있는 강력한 도구로 CPU, 메모리, I/O, 스왑, 시스템 프로세스 등 다양한 성능 지표를 실시간으로 모니터링하는 데 적합합니다.

1. 기본 명령으로 서버 상태 확인

현재 시점의 CPU, 메모리, 프로세스 등 서버의 리소스 상태가 요약되어 출력됩니다.

vmstat [options] [delay [count]]
  • options
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit
 -w, --wide             wide output
 -t, --timestamp        show timestamp

 -h, --help     display this help and exit
 -V, --version  output version information and exit
  • delay : 각 샘플 사이의 시간 간격 (초 단위)
  • count : 출력할 샘플 개수

2. vmstat 결과 필드의 의미

procs(프로세스 상태)

  • r : 실행 대기 중인 프로세스 수. 이 값이 높으면 CPU가 해당 프로세스를 처리하는 데 병목이 발생할 수 있음을 의미합니다.
  • b : 입출력(I/O) 대기 중인 프로세스 수. 값이 높으면 I/O 성능을 확인할 필요가 있습니다.

memory(메모리 상태)

  • swpd : 사용 중인 스왑 메모리(KB 단위). 이 값이 0이 아닌 경우, 스왑 메모리를 사용하고 있으며 메모리 부족이 의심될 수 있습니다.
  • free : 여유 물리 메모리(KB 단위). 여유 메모리가 적다면 메모리 사용이 높은 상태일 수 있습니다.
  • buff : 파일 시스템 버퍼에 사용 중인 메모리(KB 단위).
  • cache : 페이지 캐시에 사용 중인 메모리(KB 단위). 일반적으로 디스크 I/O를 줄이기 위해 자주 사용되는 데이터를 캐시에 저장합니다.

swap(스왑 상태)

  • si : 스왑에서 메모리로 데이터를 가져오는 속도(KB/s). 값이 높으면 스왑 인이 발생하고 있음을 의미합니다.
  • so : 메모리에서 스왑으로 데이터를 보내는 속도(KB/s). 값이 높으면 스왑 아웃이 발생하고 있음을 의미합니다.

io(입출력 상태)

  • bi : 블록 장치로부터 읽기 속도(KB/s). I/O 읽기 작업이 많을수록 값이 높아집니다.
  • bo : 블록 장치로 쓰기 속도(KB/s). I/O 쓰기 작업이 많을수록 값이 높아집니다.

system(시스템 성능)

  • in : 초당 인터럽트 수. CPU가 인터럽트를 처리하는 빈도를 나타내며, 값이 높으면 I/O 작업이 많을 가능성이 있습니다.
  • cs : 초당 컨텍스트 스위치 수. 이 값이 높으면 프로세스 간 전환이 자주 발생하는 상황으로, 시스템 부하가 높을 수 있습니다.
  • cpu(CPU 상태)
  • us : 사용자 모드에서 CPU가 사용된 시간 비율(%). 애플리케이션이 CPU를 얼마나 사용하는지 나타냅니다.
  • sy : 시스템 모드에서 CPU가 사용된 시간 비율(%). 커널 작업과 같은 시스템 작업의 비중을 나타냅니다.
  • id : CPU가 유휴 상태로 있는 시간 비율(%). 이 값이 높으면 CPU에 여유가 많음을 의미합니다.
  • wa : I/O 대기 시간 비율(%). 이 값이 높으면 디스크 또는 네트워크 작업 대기로 인한 CPU 병목이 발생할 수 있습니다.
  • st : 하이퍼바이저에서 CPU를 빼앗긴 시간 비율(%). 주로 가상화 환경에서 나타나며 이 값이 높으면 다른 가상 머신에서 리소스를 사용하고 있을 가능성이 있습니다.

vmstat은 지속적으로 업데이트되는 정보를 표시하기 때문에 필요한 만큼 실행하여 원하는 시간 동안의 상태를 확인할 수 있습니다.

728x90

사용 예시

1. 실시간 상태 모니터링

2초 간격으로 10번 출력합니다.

vmstat 2 10

2. CPU 성능 분석

CPU의 사용자 모드(us), 시스템 모드(sy), 유휴(id), I/O 대기(wa) 시간을 확인하여 CPU 성능을 분석할 수 있습니다.

vmstat 1 5

3. 메모리 상태 집중 분석

메모리 사용 통계를 자세히 보여줍니다.

vmstat -s

4. 디스크 I/O 통계 확인

각 디스크의 입출력 통계를 보여줍니다.

vmstat -d

5. 시스템 부하 확인

시스템의 평균 부하를 확인할 수 있습니다.

vmstat -w

6. 전체 시스템 성능 모니터링

디스크와 I/O 상태를 포함하여 실시간으로 모니터링하며 다음 줄로 자동으로 개행되지 않습니다.

vmstat -n 1

 

728x90