반응형

출처 : 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 명령의 출력

범주
필드 이름
설명
procs
다음에 대해 보고합니다.
r
전달 대기열의 커널 스레드 수
b
리소스를 대기 중인 차단된 커널 스레드 수
w
처리 중인 리소스 완료를 대기 중인 스왑 아웃된 LWP 수
memory
실제 메모리 및 가상 메모리의 사용에 대해 보고합니다.
swap
사용 가능한 스왑 공간
free
해제 목록의 크기
page
페이지 결함 및 페이지 작업을 초 단위로 보고합니다.
re
재확보된 페이지
mf
작은 결함 및 큰 결함
pi
페이징인(킬로바이트)
po
페이징아웃(킬로바이트)
fr
해제됨(킬로바이트)
de
최근 스왑 인된 프로세스에서 필요한 예상 메모리
sr
현재 사용되고 있지 않은 page 데몬으로 스캔된 페이지. sr이 0이 아니면 page 데몬이 실행된 것입니다.
disk
최대 4개 디스크의 데이터에 대한 초당 디스크 작업 수를 보고합니다.
faults
초당 트랩/인터럽트 비율을 보고합니다.
in
초당 인터럽트
sy
초당 시스템 호출
cs
CPU 컨텍스트 전환 비율
cpu
CPU 시간 사용을 보고합니다.
us
사용자 시간
sy
시스템 시간
id
유휴 시간

이 명령에 대한 자세한 내용은 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 명령은 siso 필드의 출력을 자릅니다. 스왑 통계의 좀더 정확한 계산을 표시하려면 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

 

반응형

'Linux > Linux 명령어' 카테고리의 다른 글

리눅스에서 파일 분할과 합치기, linux file split cat  (0) 2013.04.02
가상 메모리 통계 표시(vmstat )  (0) 2013.02.02
mount -o loop 옵션  (0) 2011.10.18
grep  (0) 2011.05.16
Posted by Real_G

댓글을 달아 주세요