Linux

[리눅스] vmstat 명령어 완벽 가이드 사용법(시스템 성능 통계 확인)

인생아 2024. 10. 19. 21:04
반응형

vmstat가상 메모리시스템 성능 상태를 모니터링하는 데 사용되는 강력한 리눅스 명령어입니다. CPU 사용량, 메모리 사용량, I/O 활동, 프로세스 활동 등을 실시간으로 확인할 수 있어 시스템 자원 관리성능 문제 해결에 필수적인 도구입니다. 시스템의 과부하, 메모리 누수, 디스크 I/O 병목 현상 등을 분석할 때 유용합니다.

vmstat 기본 사용법

vmstat [옵션] [간격] [반복 횟수]
  • 간격: 데이터 수집 간격(초 단위)
  • 반복 횟수: 보고서를 출력할 반복 횟수

옵션 없이 vmstat를 실행하면 즉시 현재 시스템 상태를 보여줍니다. 기본적으로 한 번만 데이터를 출력하며, 간격반복 횟수를 지정하면 주기적으로 데이터를 모니터링할 수 있습니다.

vmstat 기본 출력 예시

user@linux:~$ vmstat

출력 예시는 다음과 같습니다:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  402576  11044 259472    0    0    12     4  123  457  1  1 98  0  0

이 값들의 의미는 다음과 같습니다:

  • r: 실행 대기 중인 프로세스 수
  • b: 블록 상태에 있는 프로세스 수
  • swpd: 사용된 스왑 메모리(KB)
  • free: 사용 가능한 메모리(KB)
  • buff: 버퍼 메모리(KB)
  • cache: 캐시 메모리(KB)
  • si: 디스크로부터 스왑된 메모리(KB)
  • so: 스왑된 메모리를 디스크로 보낸 양(KB)
  • bi: 블록 장치로부터 읽은 데이터 양(KB)
  • bo: 블록 장치로 보낸 데이터 양(KB)
  • in: 초당 인터럽트 발생 횟수
  • cs: 초당 문맥 전환(context switch) 횟수
  • us: 사용자 모드에서의 CPU 사용률
  • sy: 시스템 모드에서의 CPU 사용률
  • id: CPU의 유휴 상태 비율
  • wa: I/O 대기 시간 비율
  • st: 가상화 하이퍼바이저에 의해 훔친 CPU 시간 비율

주기적으로 시스템 모니터링하기

vmstat를 사용하여 시스템 상태를 주기적으로 모니터링할 수 있습니다. 예를 들어, 5초 간격으로 3번 데이터를 출력하려면 다음과 같이 실행합니다:

user@linux:~$ vmstat 5 3

출력 예시는 다음과 같습니다:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  402576  11044 259472    0    0    12     4  123  457  1  1 98  0  0
 0  0      0  401348  11200 260000    0    0    10     5  115  432  1  1 99  0  0
 1  0      0  400900  11520 261500    0    0    14     3  120  450  2  0 98  0  0

여기서 5초 간격으로 데이터를 모니터링한 결과를 볼 수 있습니다. 이와 같은 방법으로 CPU 사용량메모리 상태를 지속적으로 추적할 수 있습니다.

CPU 사용률만 출력하기

특정한 자원만 집중적으로 모니터링할 수도 있습니다. 예를 들어, CPU 사용률만 확인하고 싶다면 vmstat -t 옵션을 사용할 수 있습니다:

user@linux:~$ vmstat -t

출력:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0  402576  11044 259472    0    0    12     4  123  457  2  0 97  1  0

이 데이터를 통해 시스템이 얼마나 유휴 상태에 있는지, CPU가 어느 정도 바쁜지 등을 확인할 수 있습니다.

디스크 I/O 모니터링

또한 vmstat 명령어로 디스크 I/O 활동을 모니터링할 수 있습니다. I/O 병목 현상은 시스템 성능 저하의 주요 원인이기 때문에 bobi 값을 주의 깊게 살펴보아야 합니다.

user@linux:~$ vmstat -d

출력 예시:

disk- ------------reads------------ ------------writes-----------
       total merged sectors      ms    total merged sectors      ms
sda      231   12   12345      512     312   15   5678        302

vmstat 활용 팁

  • CPU 사용량이나 메모리 누수 등을 빠르게 파악할 때 사용하면 유용합니다.
  • I/O 활동을 모니터링해 디스크 병목 현상을 식별하는 데 효과적입니다.
  • 서버 성능 모니터링을 자동화하려면 crontab과 같은 도구와 결합하여 주기적으로 실행시킬 수 있습니다.

참고사이트

반응형