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
'리눅스' 카테고리의 다른 글
[draft] 우분투에서 설치된 패키지를 완전히 삭제하는 방법 (0) | 2024.10.29 |
---|---|
[draft] HP DL360p Gen8에서 HP Smart Array CLI를 이용한 RAID 구성 및 XFS 파일 시스템 설정하는 방법 (0) | 2024.10.28 |
[draft] 우분투에서 PHP-FPM의 real-time status 페이지 기능을 활성화하는 방법 (2) | 2024.10.23 |
[draft] 우분투에서 systemd-resolved를 비활성화하고 snap을 비활성화 및 패키지를 삭제하는 방법 (0) | 2024.10.22 |
[draft] 우분투에서 needrestart를 비활성화하는 방법 (0) | 2024.10.22 |