2010. 3. 15. 18:54

[SERVER] vmstat (AIX)

이 명령의 사용방법은 다음과 같다: 

          vmstat  -fs   Drives   Interval   Count
            "vmstat 1 3"의 출력 결과 예


     procs   memory          page           faults           cpu
     -----  --------   ----------------- --------------  -----------
     r  b   avm  fre   re pi po fr sr cy  in   sy   cs   us sy id wa
     0  0   6747 1253   0  0  0  0  0  0  114  10   22   0  1  26 0
     1  0   6747 1253   0  0  0  0  0  0  113  118  43   17 4  79 0
     0  0   6747 1253   0  0  0  0  0  0  118  99   33   8  3  89 0

다음은 각 항목들에 대한 설명이다.



procs
"procs" 아래의 내용은 여러 큐들에 놓여 있는 프로세스들의  평균 수에 관련한 정보를 제공한다.

r
"r" 에 표시된 숫자는 1 초간격으로 실행 큐에 놓여 있는 프로세스들의 평균 수를
나타낸다. 이 값은 "실행가능한" 프로세스들의 수이다. 시스템은 매초마다
실행준비가 된 프로세스들의 수를 확인하여, 이를 내부 카운터에 더한다. vmstat는
최종값에서 이 카운터의 최초 값을 빼고, 이 값을 측정기간만큼의 초로 나눈다. 안정된
업무부하의 상태에서는 이 값은 5 보다 적은 것이 일반적이다. 만일 이 값이 급격히
증가하게 되면, 어플리케이션에 어떤 문제가 있는지를 확인하여야 한다. 만일 CPU
자원을 요구하는 많은 프로세스들 (특히 CPU 중심적인 작업들) 이 있는 경우에는,
이들 프로세스들은 라운드-로빈 방식에 의해 실행된다. 각각의 프로세스들이 주어진
시간동안 쉬지 않고 실행되는 경우에는, 이 값은 쉽게 100을 넘게 될 수도 있다.

b
"b" 에 표시된 숫자는 1 초간격으로 대기 큐에 놓여 있는 프로세스들의 평균 수를
나타낸다. 대기 큐에 놓여 있는 프로세스들은 자신들의 프로세스 페이지중의 하나가
페이지인 되어 실행되기를 기다린다. 매초마다 시스템은 대기중인 프로세스들의 수를
확인하여 이를 내부 카운터에 더한다. vmstat 는 이후 최종 값에서 최초 값을 빼고,
이를 측정기간의 초로 나눈다. 보통 이 값은 0 이다. 물론 여기서 이 값과 입출력을
기다리고 있슴을 나타내는 "wa"와 혼동하여서는 않된다.

 

memory
"memory" 에 표시된 정보는 실제 메모리와 가상 메모리에 대한 정보를 제공한다.

avm
"avm" 에 표시된 숫자는 페이징 공간에 할당된 평균 페이지들의 수를 보여준다.
(AIX 에서는 각 페이지들은 4,096 바이트의 크기를 가진다)
한 프로세스가 실행될 경우에는, 작업공간이 페이징 디바이스에 할당된다. (이를
backing store된다고 한다) 이는 실행중인 프로세스들에 대하여 할당되어 있는
페이징 공간의 양을 계산하는데 사용되기도 한다. "avm" 에 표시된 수를 256 으로
나누면, 이는 시스템 전체에 할당된 페이징 공간을 메가바이트로 나타낸 수가 된다.
"lsps -a" 명령을 사용하면, 각각 페이징 공간의 크기를 확인할 수 있다. 물론 이러한
페이징 공간의 사용정도가 100 % 에 가까운 값을 갖지 않도록, 충분한 페이징 공간을
시스템에 할당하여야 하는 것은 매우 중요한 일이다. 만일 할당되지 않은 페이지들의
수가 128 보다 작은 경우에는 시스템은 충분한 페이징 공간을 확보하기 위하여
프로세스들을 죽이기 시작한다.

fre
"fre" 에 표시된 숫자는 할당되지 않은 메모리 프레임들의 평균 수를 나타낸다.
한 프레임이란 한 프레임이란 4,096 바이트의 실제 메모리이다. 시스템은 자유명세서
라 하는 메모리 프레임들의 버퍼를 관리한다. 이는 가상 메모리 관리자가 공간을
필요로 하는 경우에 사용된다. 적정한 자유명세서의 크기는 설치된 실제 메모리의
크기에 따라 변하게 된다. 64 MB 이상의 메모리가 설치되어 있는 시스템에서는,
최소한의 값(MINFREE)은 120 프레임이다. 64 MB 보다 적은 메모리를 가진 시스템은,
이 값은 실제 메모리의 크기의 두배의 값에서 8 을 뺀 값이다. 예를 들어, 32 MB 의
메모리를 가진 시스템에서는, MINFREE 의 값은 56 이다. 만일 fre 값인 MAXFREE
값(이는 MINFREE 의 값에 8 을 더하여 얻어진다)을 넘어서게 되는 경우에는,
시스템은 스래싱을 일으키지 않는 것으로 판단된다. 만일 시스템이 스래싱을 일으키고
있는 경우에는, fre 값이 적다고 판단하여도 된다. 대부분의 유닉스와 AIX
운영체계에서는, 대부분의 가용할 수 있는 실제 메모리들을 디스크 캐쉬로 사용하기
때문에, 이 fre 값이 MINFREE 와 MAXFREE 사이에서 왔다갔다하는 경우에는 크게
걱정하지 않아도 된다.

 

page
"page" 에 표시된 정보는 페이지 실패 및 페이징 활동에 대한 정보를 제공한다.

re
"re" 에 표시된 값은 재요청된 페이지들의 수를 나타낸다. 재요청된 페이지들은, 해당
페이지들이 아직도 메모리내에 있기 때문에, 새로운 입출력 요청을 하지 않고도
주소번역실패를 충족시킬 수 있다. 이는 자유명세서에 놓여져 있으면서 재할당되지
않은 상태에서 다시 사용요청된 페이지들을 포함한다. 이는 VMM 에 의해 이미
요청되었으면서 입출력이 아직 완료되지 않은 페이지들과 VMM 의 readahead
메카니즘에 의해 미리 선정되었으면서 실패된 세그먼트로부터 숨겨져 있는 페이지들을
포함한다.

pi
"pi" 은 페이징 공간에서 메모리로 들어온 페이지들의 수를 보여준다. 페이징 공간은
디스크상에 놓여 있는 가상 메모리의 한 부분이다. 이는 메모리가 너무 많이 요청된
경우에 "넘치는 부분(overflow)" 을 위해 사용된다. 페이징이란 실제 메모리로부터
훔쳐진 작업 묶음 페이지들의 저장공간으로 할당된 페이징 논리적 볼륨들로 구성된다.
만일 이렇게 훔쳐진 페이지들을 프로세스가 참조하는 경우에는, 페이지 실패가
발생하게 되고, 이 페이지는 페이징 공간으로부터 메모리로 읽혀져 들어와야만 한다.
이 값이 얼마이면 좋은가하는 지침은 없는데, 이는 하드웨어, 소프트웨어 및
어플리케이션들의 구성에 의존하는 정도가 크기 때문이다. 몇몇 분석가들은 초당
5 개의 페이지-인 정도가 최대 한계라고 말하곤 한다. 이러한 이론적인 최대값을
반드시 따를 필요는 없지만, 참조값으로는 사용할 수 있다. 이 값은 페이징 공간의
활동을 알려주는 매우 중요한 값이다. 이를 다음과 같이 이해하도록 한다 : 만일 하나의
페이지-인이 발생하면, 이 페이지에 대한 전의 페이지-아웃이 반드시 있었다는 것이다.
이러한 현상은 각각의 페이지-인들이 다른 페이지들을 훔치게 하여, 결과적으로는
페이지 아웃을 초래하게 되는 메모리 제약 환경 내에서 발생하기 쉽다는 것이다.

po
"po" 에 표시된 값은 메모리로부터 페이징 공간으로 축출된 페이지들의 수를 나타낸다.
작업공간의 한 페이지가 훔쳐지게 되면, 이는 페이징 공간에 쓰여진다, 만일 다시
참조되지 않으면, 이는 해당 프로세스가 종료되거나 그 공간이 취소될때까지 그 페이징
공간에 남아 있는다. 쫓겨난 페이지들내에 포함된 주소를 후에 참조하게 되면 이는
페이지 실패들을 야기시키고, 해당 페이지들은 시스템에 의해 개별적으로 메모리로
들어오게 된다. 만일 한 프로세스가 정상적으로 종료되면, 그 프로세스에 대하여
할당되었던 모든 페이징 공간들은 자유롭게 된다. 만일 시스템이 지속적인 페이지들을
중점적으로 읽게 되는 경우에는, "pi" 의 값은 증가하지 않으면서, "po" 의 값이
증가되는 것을 확인할 수 있을 것이다. 이는 스래싱을 나타내지는 않지만, 해당
어플리케이션의 자료사용방식을 확인할 필요가 있다는 경고일수도 있다.

fr
"fr" 은 자유롭게 되는 페이지들의 수를 나타낸다. 이를 자유화율이라 한다. VMM
페이지-교체 코드는 페이지 프레임 테이블(PFT)을 살피게 되는데, 이는 가용한
메모리 프레임들의 자유명세서를 새로 보충하기 위하여 어떤 페이지을 훔칠 것인가를
선택하기 위한 특정 기준을 사용한다. VMM에 의해 훔쳐진 전체 페이지들-작업
(계산적) 페이지과 파일(지속적) 페이지-이 매초당 비율로써 보고된다. 한 페이지가
자유롭게 되었다는 것만으로는, 실제 입출력이 발생하였다는 것을 뜻하지는 않는다.
예를 들면, 한 지속적 저장(파일) 페이지가 수정되기 전까지는, 이는 실제로 디스크에
쓰여지지는 않는다. 즉 입출력이 필요하지 않은 경우에는, 한 페이지를 자유롭게 하기
위하여 최소한의 시스템 자원만이 요청되게 된다.

sr
"sr" 줄에 표시된 수는 페이지-교체 알고리즘에 의해 조회된 페이지들의 수이다.
이를 조회율이라 한다. VMM 페이지-교체 코드는 PFT를 조회하고 자유명세서상의
프레임들의 수가 MAXFREE 값에 이를때까지 계속하여 페이지들을 훔치게 된다.
페이지-교체 코드는 자유명세서의  요건을 만족할 때까지 페이지를 훔치기 전에
PFT내의 많은 항목들을 조회하여야만 한다. 안정적이고 조각화되지 않은 메모리인
경우에는, 조회율과 자유화율이 아마 비슷할 것이다. 여러 프로세스들이 서로 다른
페이지들을 사용하는 시스템상에서는, 이들 페이지들은 매우 활성적이고 또 서로
연관이 없는 경우가 많다. 이러한 경우에는, 조회율은 자유화율을 훨씬 웃도는 경우가
많다.

cy
"cy" 줄에 표시된 수는 페이지 프레임 테이블을 완전히 조회한 정도를 표시한다.
"cy" 의 값은 페이지-교체 코드가 페이지 프레임 테이블을 초당 몇번이나 조회하였는가를 나타낸다. 자유명세서는 PFT 를 완전히 조회하지 않고도 계속 보충될 수 있으며
또한 vmstat 명령을 이용하여 조회되는 값들은 모두 정수이므로, 이 값은 주로 0 인
경우가 일반적이다.

 

[출처] vmstat (AIX)|작성자 Fate

'So on...' 카테고리의 다른 글

부자와 빈자  (0) 2012.12.04
혈액형별 성격  (0) 2011.12.04
[야구] 블로그명 투수만들기(chobagsa baseball)  (0) 2010.02.15
[야구] 투수의 마음가짐  (0) 2010.01.03
[야구] 타자의 스타일에 따른 공략 방법  (1) 2010.01.03