- 현재 메모리의 상태를 출력함.
- 프로세스 정보 , 메모리 사용량 , 스왑 , IO 상태 및 CPU 활동 상황에 대한 정보를 보여준다.
vmstat 명령어 사용 형식
# 첫번째 방법
$ vmstat [옵션]
# 두번째 방법 -> 예시) vmstat 5 5 (5초 간격으로 1줄씩 5번 생성)
$ vmstat [시간] [반복]
vmstat 명령어 출력 필드
$ 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 345316 39780 259932 0 0 13 5 53 108 1 0 99 0 0
1. procs 필드
- r : CPU 접근 대기 중인 실행 가능한 프로세스 수
- b : I/O 자원을 할당 받지 못해 블록된 프로세스의 수
2. memory 필드
- swpd : 사용된 가상 메모리의 용량
- free : 사용가능한 여유 메모리의 용량
- buff : 버퍼에 사용된 메모리의 총량
- cache : 페이지 캐시에 사용된 메모리의 용량
3. swap 필드
- si : swap-in된 메모리의 양(kb)
- so : swap-out된 메모리의 양(kb), swap-out가 지속적으로 발생한다면 메모리 부족을 의심
4. I/O 필드
- bi : 블록 디바이스로부터 입력 블록수
- bo : 블록 디바이스에 쓰기 블록수
5. system 필드
- in : 초당 발생한 interrupts의 수
- cs : 초당 발생한 context switchs(문맥교환)의 수
6. CPU 필드
- us : CPU가 사용자 수준 코드를 실행한 시간 (단위: %)
- sy : CPU가 시스템 수준 코드를 실행한 시간 (단위: %)
- id : idle 시간
- wa : I/O wait 시간
vmstat 명령어 옵션
1. vmstat -a 명령어 → buffer와 cache 대신 active 와 inactive 메모리 사용량에 대한 결과를 출력
2.vmstat -d 명령어 → 디스크의 사용량을 출력
- Reads (읽기)
- total : 성공한 모든 읽기 작업 개수
- merged : 하나의 I/O로 묶은 읽기 작업 수
- sectors : 성공적으로 읽은 섹터 수
- ms : 읽기 작업을 하는데 소요된 시간(밀리초)
- Wrties (쓰기)
- total : 성공한 모든 쓰기 작업 개수
- merged : 하나의 I/O로 묽은 쓰기 작업 수
- sectors : 성공적으로 쓴 섹터 수
- ms : 쓰기 작업을 하는데 소요된 시간(밀리초)
- I/O (입출력)
- cur : 현재 수행 중인 I/O 수
- sec : I/O를 수행하는데 소요된 시간(초)
$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
- 생략 -
loop7 0 0 0 0 0 0 0 0 0 0
sr0 0 0 0 0 0 0 0 0 0 0
sda 10864 5487 541394 55154 6140 14695 166258 47768 0 29
sdb 874 941 4334 785 24 17 200 47 0 0
sdc 1889 891 12894 1390 146 7908 64308 847 0 1
vmstat 명령어를 crontab에 활용