Serach

2013년 10월 10일 목요일

리눅스 모니터링 Nmon

nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴

nmon은 하나의 스크린에 많은 정보를 나타냅니다. IBM은 공식적으로 이 툴을 지원하지 않고 여러분 스스로 위험 부담을 안고 이 툴을 사용해야 하지만, 풍부한 성능 관련 통계를 얻을 수 있습니다.

사용자 노트: nmon 툴은 공식적으로 지원이 되지 않습니다. 보증도 되지 않으며 IBM의 지원도 받을 수 없습니다.  다음은 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 툴은 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 파일을 생성하는 새로운 툴이 포함된다.

nmon 툴은 모든 중요한 성능 튜닝 정보를 하나의 스크린에 나타내고 이를 동적으로 업데이트 한다. 이 툴은 모든 Dumb Screen, 텔넷 세션, Dial-up Line에서 작동한다. 게다가, 많은 CPU 사이클을 소비하지 않으며, 일반적으로 2% 미만이다. 새로운 머신에서는 CPU 사용도는 1% 미만이다.
데이터가 스크린에 디스플레이 되고 2초 마다 한 번씩 업데이트 된다. 하지만, 이 시간 간격을 더 길거나 짧게 쉽게 변경할 수 있다. 창을 늘리고 X Windows, VNC, PuTTY 등에 데이터를 디스플레이 하면, nmon 툴은 많은 양의 정보를 한 공간에 출력할 수 있다.
nmon 툴은 향후 분석을 위해 같은 데이터를 텍스트 파일로 캡쳐하고 그래프로 만들 수 있다.

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

  1. 여러분이 루트 사용자이거나, 또는 (루트로서) 다음 명령어를 타이핑 하여 일반 사용자가 /dev/kmem 파일을 읽을 수 있도록 해야 한다.
    chmod ugo+r /dev/kmem
  2. 디스크 통계가 필요하다면 (루트로서) 다음을 실행한다.
툴을 대화식으로 실행하려면, 파일의 앞부분을 읽어보라. 그런 다음, 툴을 시작하고 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을 디스플레이 한다.


새로운 기능설명
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박스를 제거하는 시작 옵션이다.







nmon analyzer 로 리포트 만들기.


 > sudo apt-get install python-numpy python-matplotlib

> git clone git://github.com/madmaze/pyNmonAnalyzer.git


 $> ./pyNmonAnalyzer.py -h
usage: pyNmonAnalyzer.py [-h] [-x] [-d] [-o OUTDIR] [-c] [-b] [-r CONFFNAME]
                         input_file

nmonParser converts Nmon monitor files into time-sorted CSV/Spreadsheets for
easier analysis, without the use of the MS Excel Macro. Also included is an
option to build an HTML report with graphs, which is configured through
report.config.

positional arguments:
  input_file            Input NMON file

optional arguments:
  -h, --help            show this help message and exit
  -x, --overwrite       overwrite existing results (Default: False)
  -d, --debug           debug? (Default: False)
  -o OUTDIR, --output OUTDIR
                        Output dir for CSV (Default: ./data/)
  -c, --csv             CSV output? (Default: False)
  -b, --buildReport     report output? (Default: False)
  -r CONFFNAME, --reportConfig CONFFNAME
                        Report config file, if none exists: we will write the
                        default config file out (Default: ./report.config)
There are 2 main options of using this tool
1. Turn the nmon file into a set of separate CSV file
2. Generate an HTML report with matplotlib graphs
The following command does both:
$> ./pyNmonAnalyzer.py -c -b test.nmon
This will create a directory called ./data in which you will find a folder of CSV files("./data/csv/"), a folder of PNG graphs("./data/img/") and an HTML report ("./data/report.html").
By default the HTML report will include graphs for CPU, Disk Busy, Memory utilization and Network transfers. This is all defined in a self explanitory configuration file, "report.config". At the moment this is not yet very flexible as CPU and MEM are not configurable besides on or off, but one of the next steps will be to refine the plotting approach and to expose more flexibility with which graphs plot which data points.

댓글 없음:

댓글 쓰기