가상 메모리 통계 표시(vmstat )
Linux/Linux 명령어 :
2013. 2. 2. 11:07
반응형
출처 : http://docs.oracle.com/cd/E24846_01/html/E23088/spmonitor-22.html
출처 : http://finetia.egloos.com/1514766
가상 메모리 통계 표시(vmstat )
vmstat 명령을 사용하여 CPU 로드, 페이징, 컨텍스트 전환 수, 장치 인터럽트 및 시스템 호출과 같은 시스템 이벤트에 대한 가상 메모리 통계 및 정보를 보고할 수 있습니다. vmstat 명령은 스와핑, 캐시 비우기 및 인터럽트에 대한 통계도 표시할 수 있습니다.
다음 표는 vmstat 명령 출력의 필드를 설명합니다.
표 13-1 vmstat 명령의 출력
|
이 명령에 대한 자세한 내용은 vmstat(1M) 매뉴얼 페이지를 참조하십시오.
가상 메모리 통계를 표시하는 방법(vmstat )
- vmstat 명령을 시간 간격(초)과 함께 사용하여 가상 메모리 통계를 수집합니다.
$ vmstat n
여기서 n은 보고 사이의 간격(초)입니다.
예 13-1 가상 메모리 통계 표시
다음 예는 5초 간격으로 수집된 통계의 vmstat 표시를 보여줍니다.
$ vmstat 5 kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr dd f0 s1 -- in sy cs us sy id 0 0 0 863160 365680 0 3 1 0 0 0 0 0 0 0 0 406 378 209 1 0 99 0 0 0 765640 208568 0 36 0 0 0 0 0 0 0 0 0 479 4445 1378 3 3 94 0 0 0 765640 208568 0 0 0 0 0 0 0 0 0 0 0 423 214 235 0 0 100 0 0 0 765712 208640 0 0 0 0 0 0 0 3 0 0 0 412 158 181 0 0 100 0 0 0 765832 208760 0 0 0 0 0 0 0 0 0 0 0 402 157 179 0 0 100 0 0 0 765832 208760 0 0 0 0 0 0 0 0 0 0 0 403 153 182 0 0 100 0 0 0 765832 208760 0 0 0 0 0 0 0 0 0 0 0 402 168 177 0 0 100 0 0 0 765832 208760 0 0 0 0 0 0 0 0 0 0 0 402 153 178 0 0 100 0 0 0 765832 208760 0 18 0 0 0 0 0 0 0 0 0 407 165 186 0 0 100
시스템 이벤트 정보를 표시하는 방법(vmstat -s)
- vmstat -s 명령을 실행하여 시스템이 마지막으로 부팅된 이후 얼마나 많은 시스템 이벤트가 발생했는지 표시합니다.
$ vmstat -s 0 swap ins 0 swap outs 0 pages swapped in 0 pages swapped out 522586 total address trans. faults taken 17006 page ins 25 page outs 23361 pages paged in 28 pages paged out 45594 total reclaims 45592 reclaims from free list 0 micro (hat) faults 522586 minor (as) faults 16189 major faults 98241 copy-on-write faults 137280 zero fill page faults 45052 pages examined by the clock daemon 0 revolutions of the clock hand 26 pages freed by the clock daemon 2857 forks 78 vforks 1647 execs 34673885 cpu context switches 65943468 device interrupts 711250 traps 63957605 system calls 3523925 total name lookups (cache hits 99%) 92590 user cpu 65952 system cpu 16085832 idle cpu 7450 wait cpu
스와핑 통계를 표시하는 방법(vmstat -S)
- vmstat -S를 실행하여 스와핑 통계를 표시합니다.
$ vmstat -S kthr memory page disk faults cpu r b w swap free si so pi po fr de sr dd f0 s1 -- in sy cs us sy id 0 0 0 862608 364792 0 0 1 0 0 0 0 0 0 0 0 406 394 213 1 0 99
스와핑 통계 필드는 다음 목록에 설명되어 있습니다. 기타 필드에 대한 설명은 표 13-1을 참조하십시오.
- si
-
초당 스왑 인된 평균 LWP 수
- so
-
스왑 아웃된 프로세스 수
주 - vmstat 명령은 si 및 so 필드의 출력을 자릅니다. 스왑 통계의 좀더 정확한 계산을 표시하려면 sar 명령을 사용합니다.
장치당 인터럽트를 표시하는 방법(vmstat -i)
- vmstat -i 명령을 실행하여 장치당 인터럽트 수를 표시합니다.
예 13-2 장치당 인터럽트 표시
다음 예는 vmstat -i 명령의 출력을 보여줍니다.
$ vmstat -i interrupt total rate -------------------------------- clock 52163269 100 esp0 2600077 4 zsc0 25341 0 zsc1 48917 0 cgsixc0 459 0 lec0 400882 0 fdc0 14 0 bppc0 0 0 audiocs0 0 0 -------------------------------- Total 55238959 105
vmstat 명령어
시스템의 리소스 상황(CPU, I/O, 메모리)을 모니터링 할 수 있는 명령어이다.
명령행 "vmstat 3 5" 은 3초 간격으로 모니터링 정보를 5개 출력 하라는 것을 의미한다.
vmstat명령어 결과 중 첫 번째 라인은 부팅한 후부터 각 통계치에 대한 평균값을 보여주므로 무시하고 두 번째 줄부터 통계를 보면 된다.
각 필드가 나타내는 의미는 다음과 같다.
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: 사용자의 CPU 사용 시간 비율
sy: 시스템의 CPU 사용 시간 비율
id: idle
스왑아웃이 지속적으로 발생한다면 메모리가 부족한 것이다. w필드의 값이 증가하면 메모리가 부족하다는 의미이므로 메모리를 늘려야한다. so필드(swap out)는 0에 가까워야 한다. 평소에 swpd필드의 값이 높다고 해도 free 메모리에 여유가 있다면 메모리가 부족한 것이 아니다.
sy필드의 값이 지나치게 높으면 디스크 I/O에 문제가 있을 가능성이 크다.
그리고 시스템 전체의 부하가 높은데 id필드의 값이 일반적으로 10%를 넘는다면 I/O나 메모리에 문제가 있을 가능성이 있다. I/O에 문제점이 있다는 것을 발견하면 iostat 등의 명령어를 추가로 사용하여 세부사항을 분석할 수 있다.
id필드의 값이 항상 0이라면 CPU를 100% 사용하고 있다는 것을 의미한다. 그러나 항상 100%로 사용하고 있다면 어떤 작업이 계속 축적되고 있으며 CPU가 과부하를 가진다는 것을 의미한다. 이 때는 top, ps, sar등의 명령어를 사용하여 CPU를 계속 사용하고 있는 프로세스를 찾아 적절하게 대응해야 한다.
참고:
리눅스 시스템 최적화 튜닝 - 문태준 (워드문서, 구글검색)
http://tong.nate.com/srirama/11091898
시스템의 리소스 상황(CPU, I/O, 메모리)을 모니터링 할 수 있는 명령어이다.
vmstat명령어 결과 중 첫 번째 라인은 부팅한 후부터 각 통계치에 대한 평균값을 보여주므로 무시하고 두 번째 줄부터 통계를 보면 된다.
각 필드가 나타내는 의미는 다음과 같다.
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: 사용자의 CPU 사용 시간 비율
sy: 시스템의 CPU 사용 시간 비율
id: idle
스왑아웃이 지속적으로 발생한다면 메모리가 부족한 것이다. w필드의 값이 증가하면 메모리가 부족하다는 의미이므로 메모리를 늘려야한다. so필드(swap out)는 0에 가까워야 한다. 평소에 swpd필드의 값이 높다고 해도 free 메모리에 여유가 있다면 메모리가 부족한 것이 아니다.
sy필드의 값이 지나치게 높으면 디스크 I/O에 문제가 있을 가능성이 크다.
그리고 시스템 전체의 부하가 높은데 id필드의 값이 일반적으로 10%를 넘는다면 I/O나 메모리에 문제가 있을 가능성이 있다. I/O에 문제점이 있다는 것을 발견하면 iostat 등의 명령어를 추가로 사용하여 세부사항을 분석할 수 있다.
id필드의 값이 항상 0이라면 CPU를 100% 사용하고 있다는 것을 의미한다. 그러나 항상 100%로 사용하고 있다면 어떤 작업이 계속 축적되고 있으며 CPU가 과부하를 가진다는 것을 의미한다. 이 때는 top, ps, sar등의 명령어를 사용하여 CPU를 계속 사용하고 있는 프로세스를 찾아 적절하게 대응해야 한다.
참고:
리눅스 시스템 최적화 튜닝 - 문태준 (워드문서, 구글검색)
http://tong.nate.com/srirama/11091898
반응형
'Linux > Linux 명령어' 카테고리의 다른 글
리눅스에서 파일 분할과 합치기, linux file split cat (0) | 2013.04.02 |
---|---|
mount -o loop 옵션 (0) | 2011.10.18 |
grep (0) | 2011.05.16 |