2011년 10월 10일 월요일

[Linux] vmstat

vmstat 명령어
시스템의 리소스 상황(CPU, I/O, 메모리)을 모니터링 할 수 있는 명령어이다

사용법

vmstat

 

를 치면 아래와 같이 나오고

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0      0 160436  15840  48616    0    0     0     3   19    9 22 50 28  0  0

 5초간 3번 Data를 수집 하고자 할때는

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
0  0      0 160588  15840  48616    0    0     0     3   19    9 22 50 28  0  0
2  0      0 160640  15840  48616    0    0     0     0 3954 8133 17 17 66  0  0
0  0      0 161108  15840  48616    0    0     0     0 4028 7987 16 19 65  0  0

첫번째 값은 의미 없는 값 일듯(항상 높게나옴) 2번째 값부터 보면 된다.

각 필드가 나타내는 의미는 다음과 같다.

proc 항목
r: 현재 실행중인 프로세스의 수
b: 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수 (I/O 처리를 하는 동안 블럭 처리된 프로세스)
w: 강제로 스왑아웃된 프로세스

memory 항목
swpd: 사용하고 있는 swap 메모리 양
free: 사용가능한 메모리 양
buff: 버퍼로 사용되고 있는 메모리 양
cache: 캐시로 사용되고 있는 메모리 양

swap 항목
si : swap in
so: swap out

io 항목
bi: 초당 블럭 디바이스로 보내는 블럭 수
bo: 초당 블럭 디바이스로부터 받은 블럭 수

system 항목
in: 초당 인터럽트 되는 양
cs: 초당 context switch되는 양

cpu 항목
us: 커널이 아닌 프로세스의 시간 (user time, including nice time)
sy: 커널의 사용시간 (system time)
id: 아무런 일을 하지 않는 시간
wa: 입출력 대기 시간
st: 가상머신이 사용하는 시간

sy필드의 값이 지나치게 높으면 디스크 I/O에 문제가 있을 가능성이 크다.
그리고 시스템 전체의 부하가 높은데 id필드의 값이 일반적으로 10%를 넘는다면 I/O나 메모리에 문제가 있을 가능성이 있다. I/O에 문제점이 있다는 것을 발견하면 iostat 등의 명령어를 추가로 사용하여 세부사항을 분석할 수 있다.

id필드의 값이 항상 0이라면 CPU를 100% 사용하고 있다는 것을 의미한다. 그러나 항상 100%로 사용하고 있다면 어떤 작업이 계속 축적되고 있으며 CPU가 과부하를 가진다는 것을 의미한다. 이 때는 top, ps, sar등의 명령어를 사용하여 CPU를 계속 사용하고 있는 프로세스를 찾아 적절하게 대응해야 한다.

CPU 전체사용률은

100-(user+sys+iowait) 로 보면 된다.

vmstat 에 날짜와 시간을 출력하고 싶으면

vmstat -n 5 | awk '{now=strftime("%F %T"); print now, " ", $0}'

와 같이 하면

2011-10-10 10:15:39   procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
2011-10-10 10:15:39    r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2011-10-10 10:15:39    0  0      0 160868  15840  48616    0    0     0     3   20   10 22 50 28  0  0
2011-10-10 10:15:44    1  0      0 160892  15840  48616    0    0     0     0 3984 8005 17 16 66  0  0

와 같은 형식으로 출력된다.

댓글 없음:

댓글 쓰기