Linux useful tool - vmstat
vmstat(virtual memory statistics)는 리눅스 프로세서의 메모리, disk, cpu performance 모니터링 도구입니다.
※ 중요 : vmstat의 처음 결과는 부팅 이후 평균수치 입니다. 이후의 결과는 일정 샘플링 기간 동안의 결과 값 입니다.
세부 옵션은 아래와 같습니다.
delay : delay를 입력하지 않으면 부팅 이후 평균 값이 출력됩니다. delay를 입력하게 되면 vmstat의 결과가 반복적으로 출력되는데, 첫 번째 결과는 부팅 이후 평균 값이며 두번째 결과 부터는 delay를 입력한 사이의 결과 값 입니다.
e.g. delay를 입력하지 않았을 때
이 때의 결과는 부팅 이후의 총 평균 입니다.
이 때의 첫 번째 나온 결과는 부팅 이후의 총 평균이며, 이후 결과는 입력한 delay인 3초 동안의 샘플링 결과입니다.
※ 중요 : vmstat의 처음 결과는 부팅 이후 평균수치 입니다. 이후의 결과는 일정 샘플링 기간 동안의 결과 값 입니다.
사용 방법
세부 옵션은 아래와 같습니다.
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 : delay를 입력하지 않으면 부팅 이후 평균 값이 출력됩니다. delay를 입력하게 되면 vmstat의 결과가 반복적으로 출력되는데, 첫 번째 결과는 부팅 이후 평균 값이며 두번째 결과 부터는 delay를 입력한 사이의 결과 값 입니다.
e.g. delay를 입력하지 않았을 때
-bash-4.2$ vmstat
procs -----------memory----------
---swap-- -----io---- -system-- ----cpu----
r
b swpd free
buff cache si
so bi bo
in cs us sy id wa
9 0
2568028 4517948 521380 17599556
0 0 38
115 0 0 11
0 88 1
|
e.g.2 delay가 3인 경우
-bash-4.2$ vmstat 3
procs -----------memory----------
---swap-- -----io---- -system-- ----cpu----
r
b swpd free
buff cache si
so bi bo
in cs us sy id wa
9 0
2568028 4299568 521420 17605440
0 0 38
115 0 0 11
0 88 1
8 0
2568028 3854400 521452 17608780
0 0 48
5475 8373 1243 39 1 60 0
8 0
2568028 3942488 521524 17620684
0 0 81
4769 8414 1536 39 1 60 0
8 0
2568028 3994148 521628 17636656
0 0 403
11 8455 1858 39 1 60 0
8 0
2568028 3784628 521692 17641060
0 0 112
5695 8368 1964 38 2 60 0
8 0
2568028 3097964 521712 17641476
0 0 177
16 8230 932 39 1 60
0
|
count : 결과를 몇 번 출력할 지 입력하는 값 입니다. 입력하지 않으면 프로그램이 종료될 때 까지 출력됩니다.
e.g. count가 2인 경우
e.g. count가 2인 경우
-bash-4.2$ vmstat 3 2
procs -----------memory----------
---swap-- -----io---- -system-- ----cpu----
r
b swpd free
buff cache si
so bi bo
in cs us sy id wa
9 0
2568024 3866768 530488 18397436
0 0 38
115 0 0 11
0 88 1
8 0
2568024 3833196 530556 18366220
0 0 172
9 8416 2398 38 1 60 1
-bash-4.2$
|
options
참고
-m : slab 정보를 표시합니다.
-n : 헤더 정보가 한번만 표시됩니다.
*헤더 : procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
-s : 다양한 이벤트 카운터들이 표시됩니다.
-d : disk 통계가 표시됩니다.
-D : disk 통계까 요약 표시됩니다.
-p : 지정된 파티션정보가 표시됩니다.
-S : 표시 단위를 변경합니다.
* 1000 (k), 1024 (K), 1000000 (m), 1048576 (M) bytes.
참고
-bash-4.2$ man vmstat
|
-a : active/inactive 메모리를 볼 수 있습니다.
-f : 부팅 후 fork 된 수를 표시합니다.-m : slab 정보를 표시합니다.
-n : 헤더 정보가 한번만 표시됩니다.
*헤더 : procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
-s : 다양한 이벤트 카운터들이 표시됩니다.
-d : disk 통계가 표시됩니다.
-D : disk 통계까 요약 표시됩니다.
-p : 지정된 파티션정보가 표시됩니다.
-S : 표시 단위를 변경합니다.
* 1000 (k), 1024 (K), 1000000 (m), 1048576 (M) bytes.
결과 분석
procs(프로세스)
- r(run queue) : 실행 가능한(runnable) 프로세서 수 (실행하기 위해 기다리고 있는 것)
- b(blocked queue) : block되어 sleep상태로 실행을 기다리는 상태의 프로세서 수 (파일시스템의 i/o blocked, inode lock등)
memory
- swpd : 가상 메모리(virtual memory) 사용량
- free : idle 메모리
- buff : 사용된 메모리
- cache : cache로 사용된 메모리
- inact : 비활성화 메모리 (-a 옵션)
- active : 활성화 메모리 (-a 옵션)
swap
- si : disk -> 메모리 스왑량 (단위 : /s)
- so : 메모리 -> disk 스왑량 (단위 : /s)
io
- bi : 장치에서 받아오는 블록 (단위 : blocks/s)
- bo : 장치로 보내는 블록 (단위 : blocks/s)
system
- in : 초당 인터럽트 수(clcok 포함)
- cs : 초당 context 교환 수
cpu
* 이 항목은 퍼센트(%) 기준으로 측정됩니다.
- us : 비커널 코드에서 소비된 시간(user time)
- sy : 커널 코드에서 소비된 시간(system time)
- id : idle 된 시간
- wa : 입출력 대기 시간
- st : Virtual machine에서 뺏은 시간
댓글
댓글 쓰기