컴퓨터활용/유닉스

성능 모니터링 무료 프로그램 nmon

멜번초이 2012. 3. 28. 16:43

최근 프로젝트에서 DISK IO 가 100%로 동작되는 경우가 종종 있었다. 보통 topas 라는 프로그램을 띄워서 상황을 분석하였는데   nmon 이라는 툴을 이용했더니 쉽게 그 원인을 알 수 있었다.  

DISK usage 가 100% 되는 경우는 과도한 로그 출력과 메모리 부족으로 인한 swapping (paging) 이 주요 원인이다. 

아니나 다를까 nmon 을 실행시켜 보니 available memory 가 0.1 % 이고 paging 은 120%을 넘고 있었다. 이것은 메모리의 부족으로 계속 메모리의 내용을 disk 로 swapping 하고 있는 현상인 것이다. 


메모리를 할당 받은  불필요한 process 를 끄거나 메모리를 늘리는 방법을 찾아야 할것이다. 


온튠(OnTune)

시스템모니터링을 전문으로 하는 툴 중에 Ontune 이라는 제품을 우연히 써 볼 수 있는 기회가 있었다.  ontune.co.kr 홈페이지에서 다운로드 받아서 직접 설치해 볼 수 있다.  설치를 위해서는 서버의 root 권한이 있어야 한다. 그래프로 시스템의 상황을 보여주기 때문에 nmon이나 topas 보다 초보자가 보기 쉽도록 되어 있다. 서버를 동시에 여러 대를 운영하는 회사에서는 도움이 많이 되는 툴이다.  온튠시스템은 팀스톤(TeemStone) 이란 회사에서 만든 솔루션이다.


<매니저> 서버별 CPU사용량과 메모리 사용량을 그래프로 보여준다.

<TeemViewer> 각 서버에서 1초 간격으로 전송해 오는 정보를 그래프로 실시간 표시해 준다.


NMON

nmon 에 대한 소개 자료가 있어서 클립핑하였다. 나중에 사용할 때 자세히 보기로 하고 일단 갈무리..

<퍼온 곳 : http://www.ibm.com/developerworks/kr/library/au-analyze_aix/ >

사용자 노트: nmon 툴은 공식적으로 지원이 되지 않습니다. 보증도 되지 않으며 IBM의 지원도 받을 수 없습니다. nmon에 대한 문의 사항은 Performance Tools Forum 사이트(참고자료)에 게시된 답변을 참조하십시오. 정크메일로부터 여러분의 이메일 주소를 보호하려면 USER ID를 먼저 만들어야 합니다. (최대 20초 소요)

다음은 nmon 툴이 실행되는 플랫폼이다.

  • AIX® 4.1.5, 4.2.0 , 4.3.2, 4.3.3 (nmon Version 9a: 본 버전은 기능적으로 안정화 되었고, 추가 개발 계획은 없다.)
  • AIX 5.1, 5.2, 5.3 (nmon Version 10: 본 버전은 SMT와 공유 CPU 마이크로 파티션을 갖춘 AIX 5.3과 POWER5™ 프로세서 기반 머신을 지원한다.)
  • Linux® SUSE SLES 9, Red Hat EL 3 and 4, Debian on pSeries® p5, OpenPower™
  • Linux SUSE, Red Hat, x86 기반 최신 배포판들 (32-bit 모드의 Intel과 AMD)
  • zSeries® 또는 메인프레임 기반 Linux SUSE와 Red Hat

nmon 툴은 6 개월 마다 업데이트 되거나, 새로운 OS가 릴리스 될 때 업데이트 된다. 이메일 리스트에 등록하여 업데이트를 받아보려면 Nigel Griffiths에게 문의하라.

nmon 아웃풋 파일을 로딩하고 수 십 개의 그래프를 자동으로 생성하는 nmon 애널라이저와 함께 사용하라. (참고자료)

머리말

nmon 툴은 AIX와 리눅스 성능 전문가들이 다음과 같은 성능 데이터의 모니터링과 분석에 사용할 수 있도록 고안된 툴이다.

  • CPU 사용
  • 메모리 사용
  • 커널 통계와 실행 큐 정보
  • 디스크 I/O 비율, 트랜스퍼, 읽기/쓰기 비율
  • 파일 시스템의 여유 공간
  • 디스크 어댑터
  • 네트워크 I/O 비율, 트랜스퍼, 읽기/쓰기 비율
  • 페이징 공간과 페이징 비율
  • CPU와 AIX 스팩
  • 탑 프로세서
  • IBM HTTP 웹 캐시(cache)
  • 사용자 정의 디스크 그룹
  • 머신 상세와 리소스
  • 비동기식 I/O -- AIX 전용
  • 워크로드 매니저(WLM) -- AIX 전용
  • IBM TotalStorage® Enterprise Storage Server® (ESS) 디스크 -- AIX 전용
  • 네트워크 파일 시스템(NFS)
  • Dynamic LPAR (DLPAR) 변경 -- AIX 또는 리눅스용 pSeries p5와 OpenPower 전용

nmon 아웃풋에서 그래프를 만들어내고, 웹 사이트에 디스플레이 될 수 있는 .gif 파일을 생성하는 새로운 툴이 포함된다.

자세한 내용은 README 파일을 참조하라.

툴의 효용성

nmon 툴은 모든 중요한 성능 튜닝 정보를 하나의 스크린에 나타내고 이를 동적으로 업데이트 한다. 이 툴은 모든 Dumb Screen, 텔넷 세션, Dial-up Line에서 작동한다. 게다가, 많은 CPU 사이클을 소비하지 않으며, 일반적으로 2% 미만이다. 새로운 머신에서는 CPU 사용도는 1% 미만이다.

데이터가 스크린에 디스플레이 되고 2초 마다 한 번씩 업데이트 된다. 하지만, 이 시간 간격을 더 길거나 짧게 쉽게 변경할 수 있다. 창을 늘리고 X Windows, VNC, PuTTY 등에 데이터를 디스플레이 하면, nmon 툴은 많은 양의 정보를 한 공간에 출력할 수 있다.

nmon 툴은 향후 분석을 위해 같은 데이터를 텍스트 파일로 캡쳐하고 그래프로 만들 수 있다.

툴 설치하기

본 툴은 독립형 바이너리 파일로서(AIX나 리눅스 버전 마다 다른 파일임), 설치에 5초 정도 소요되며, 타이핑이 빠르다면 더욱 빠르게 할 수 있다. 설치는 간단하다.

  • nmonXXX.tar.Z 파일을 머신에 복사한다. FTP를 사용하고 있다면 바이너리 모드를 사용하라.
    주: XXX는 버전을 나타낸다.
  • uncompress nmonXX.tar.Z를 실행하여 파일 압축을 푼다.
  • tar xvf nmonXX.tar를 실행하여 파일을 추출한다.
  • README 파일을 읽는다.
  • nmon 툴을 시작하려면 nmon을 타이핑 한다.
  • 루트(root) 사용자라면 ./nmon으로 타이핑 해야 한다.

AIX 4 전용 nmon 9 사용에 대한 추가 노트

  1. 여러분이 루트 사용자이거나, 또는 (루트로서) 다음 명령어를 타이핑 하여 일반 사용자가 /dev/kmem 파일을 읽을 수 있도록 해야 한다.
    chmod ugo+r /dev/kmem

  2. 디스크 통계가 필요하다면 (루트로서) 다음을 실행한다.
    chdev -l sys0 -a iostat=true 

툴을 대화식으로 실행하는 방법

툴을 대화식으로 실행하려면, 파일의 앞부분을 읽어보라. 그런 다음, 툴을 시작하고 one-key 명령어를 사용하여 원하는 데이터를 본다. 예를 들어, CPU, Memory, Disk 통계를 보려면 nmon을 시작하고 다음을 타이핑 한다.

cmd

대화식으로 실행하면서 도움말 정보 얻는 방법

h 키를 누른다.

추가 도움말 정보

추가 도움말 정보가 필요하다면 다음과 같이 한다.

  • nmon -? 명령어는 간략한 상세를 보여준다.
  • nmon -h 명령어는 전체적인 상세 내용을 보여준다.
  • README 파일을 읽는다.

향후 분석과 그래프를 위해 데이터를 파일로 캡쳐하는 방법

-f 플래그와 함께 nmon을 실행한다. nmon -h를 사용하여 상세를 볼 수 있다. 예를 들어, 30초 마다 데이터 스냅샷을 찍으면서 한 시간 동안 nmon을 실행하려면,

nmon -f -s 30 -c 120
nmon -fT -s 30 -c 120

두 번째 행은 탑 프로세스들도 캡쳐한다. 이 두 가지 모두 다음과 같은 현재 디렉토리에 아웃풋 파일을 만든다.

<hostname>_date_time.nmon

이 파일은 comma-separated values (CVS) 포맷으로 되어있으며, 스프레드시트로 직접 반입될 수 있다. Lotus® 1-2-3를 사용하고 있다면, 이 파일은 정렬되어야 한다. (Excel 버전의 nmon 애널라이저의 경우는 이렇게 할 필요가 없다.) AIX에서는 다음과 같은 예를 따른다.

sort -A mymachine_311201_1030.nmon > xxx.csv

시간을 절약할 수 있는 방법:

  • nmon 데이터 캡쳐 파일을 스프레드시트로 로딩하려면, CVS 데이터 파일(.csv)용 스프레드시트 문서를 확인한다. 많은 스프레드시트는 이를 수행하는 반입 함수를 로딩 또는 제공하는 파일들 중 하나로서 이 데이터를 허용한다. 많은 스프레드시트들은 고정된 수의 칼럼과 행을 갖고 있다. 이러한 문제를 해결하려면 최대 300 스냅샷을 수집할 것을 권한다.
  • 데이터를 파일로 캡쳐할 때, nmon은 쉘에서 연결을 해제하여, 여러분이 로그아웃을 하더라도 계속 실행되는지를 확인한다. 다시 말해서, 백그라운드에서 여전히 실행되더라도 nmon이 충돌하는 것처럼 보일 수 있다는 의미이다. 프로세스가 여전히 실행되는지를 확인하려면, 다음을 타이핑 한다.
    ps ?ef | grep nmon

  • 특정 OS에서 어떤 버전의 nmon이 실행되는지를 알고 싶다면 README 파일을 읽어보라.
  • AIX 5용 nmon Version 10은 더 이상 /dev/kmem을 사용하지 않고, 오직 공용 API만 사용한다. 따라서, /dev/kmem에 대한 권한을 변경할 필요가 없고 32-비트와 64-비트 버전의 nmon을 가질 필요가 없다.
  • AIX 5.1, 5.2, 5.3의 경우, nmon 10을 사용하라.
  • AIX의 경우, ML03에 대해서 AIX 5.1에 lslpp -Lcq bos.?p 코어 덤프를 리포트 하지 말라. WLM 통계는 AIX 5.2 ML5로 업그레이드 된 후에 소실된다. AIX 버그이기 때문이다. 이러한 문제는 nmon Version 10을 사용하여 해결한다.
  • Microsoft® Windows® Telnet을 사용하지 말고 80 x 25 캐릭터 보다 큰 윈도우를 사용하라. 많은 개발자들은 VNC와 PuTTY를 사용하여 Windows 머신에서 nmon을 디스플레이 한다.

AIX Version 10의 새로운 nmon 기능들

새로운 기능 설명
Starting up올바른 nmon 버전을 시작하는 "nmon"이라고 하는 작은 쉘 스크립트가 있다. 이 스크립트와 nmon 바이너리를 $PATH에 놓고 nmon을 타이핑 한다. 이 버전은 32-비트 모드에서만 컴파일 된다. 32-비트와 64-비트 하드웨어에서 실행된다. 설치와 실행이 더욱 쉬워졌다.
N = NFSNFS는 nmon 10의 새로운 기능이다.
p = Partitions공유 CPU 파티션 정보에 관한 것이다. p5/AIX5.3을 위한 기능이다.
C = CPU32-PLUS CPU에서 최대 128 logical CPU를 갖춘 머신용이다.
c = CPUPOWER5기반 AIX 5.3을 사용하고 있고 공유 CPU 환경일 경우, 물리적 CPU 사용량에 대한 상세를 보여준다.
S = SubclassWLM 하위 클래스에 대한 것이다.
a = Disk adapters디스크 어댑터에 대한 상세를 제공한다.
r = ResourcesCPU 속도를 MHz로 나타낸다.
k = Kernel새로운 필드를 제공한다.
L = Large pages큰 페이지 통계를 제공한다.
D = Disk디스크, 디스크 유형 크기, 여유 공간, 볼륨 그룹, 어댑터에 관한 정보를 제공한다.
n = Network네트워크 어댑터 상세, MTU, 에러에 대한 정보를 제공한다.
m = Memory메모리가 어디로 가는지, 시스템(커널)과 프로세스, 활성 가상 메모리에 대한 상세를 제공한다.
-B박스를 제거하는 시작 옵션이다.

AIX 5에 대한 nmon 10의 아웃풋 샘플

그림 1은 샘플 스크린 아웃풋이다. AIX 5에 대한 오프닝 스크린을 보여주고 있고, 유용한 정보들이 많이 들어있다.


그림 1. AIX 5에 대한 nmon 10의 샘플 아웃풋
시작

그림 2는 CPU(SMT 가 실행되는 4 CPU POWER5 머신), 메모리 사용, 커널 통계, 디스크 통계에 대한 상세를 나타낸다. 주: 논리적 파티션(LPAR)은 할당량의 6배를 사용하고 있다.


그림 2. 상세 CPU
CPU

그림 3은 네트워크, NFS 통계, 저널 파일시스템 사용에 대한 상세를 보여준다.


그림 3. 상세 네트워크
네트워크

POWER5 공유 프로세서 마이크로 파티션 통계에 대한 상세는 그림 4에 나타나있다.


그림 4. 상세 LPAR
LPAR

그림 5는 리눅스 버전의 nmon 상세를 설명하고 있다. CPU (SMT 가 실행되는 2 CPU POWER5), LPAR 통계, 메모리 사용, 네트워크 통계, 파일 시스템 사용, 디스크 통계를 보여주고 있다. 주: LPAR의 물리적 CPU는 SUSE SLES9 Service Pack 1과 Red Hat EL 4 Update 1에서만 사용할 수 있다.


그림 5. 리눅스 버전의 nmon
nmon_리눅스1

그림 6은 머신의 OS 상세, 디스크 통계(상세 모드), 탑 프로세스를 보여준다.


그림 6. 리눅스 버전의 nmon
nmon_리눅스2

툴 다운로드 방법

툴의 다운로드 옵션은 다음과 같다.


참고자료

교육

제품 및 기술 얻기

  • IBM 시험판 소프트웨어: 한국 developerWorks에서 소프트웨어를 다운로드하여 다음 개발 프로젝트에 활용해 보라.

  • nmon: nmon과 해당 툴 다운로드.

토론