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 병목 현상은 시스템 성능 저하의 주요 원인이기 때문에 bo와 bi 값을 주의 깊게 살펴보아야 합니다.
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과 같은 도구와 결합하여 주기적으로 실행시킬 수 있습니다.
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] badblocks 명령어 완벽 가이드 사용법(디스크 불량 섹터 검사) (0) | 2024.10.21 |
---|---|
[리눅스] tune2fs 명령어 완벽 가이드 사용법(파일 시스템 튜닝) (0) | 2024.10.20 |
[리눅스] uptime 명령어 완벽 가이드 사용법(시스템 부하 확인) (0) | 2024.10.20 |
[리눅스] sar 명령어 완벽 가이드 사용법(시스템 성능 기록 및 분석) (0) | 2024.10.20 |
[리눅스] iptables 명령어 완벽 가이드 사용법(방화벽 설정) (0) | 2024.10.19 |
[리눅스] netcat 명령어 완벽 가이드 사용법(네트워크 디버깅) (0) | 2024.10.19 |
[리눅스] strace 명령어 완벽 가이드 사용법(프로세스 추적) (0) | 2024.10.19 |
[리눅스] nohup 명령어 완벽 가이드 사용법(백그라운드 실행) (1) | 2024.10.19 |