최근 프로젝트에서 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
으로 타이핑 해야 한다.
- 여러분이 루트 사용자이거나, 또는 (루트로서) 다음 명령어를 타이핑 하여 일반 사용자가 /dev/kmem 파일을 읽을 수 있도록 해야 한다.
chmod ugo+r /dev/kmem
- 디스크 통계가 필요하다면 (루트로서) 다음을 실행한다.
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
을 디스플레이 한다.
새로운 기능 | 설명 |
Starting up | 올바른 nmon 버전을 시작하는 "nmon" 이라고 하는 작은 쉘 스크립트가 있다. 이 스크립트와 nmon 바이너리를 $PATH에 놓고 nmon 을 타이핑 한다. 이 버전은 32-비트 모드에서만 컴파일 된다. 32-비트와 64-비트 하드웨어에서 실행된다. 설치와 실행이 더욱 쉬워졌다. |
N = NFS | NFS는 nmon 10의 새로운 기능이다. |
p = Partitions | 공유 CPU 파티션 정보에 관한 것이다. p5/AIX5.3을 위한 기능이다. |
C = CPU | 32-PLUS CPU에서 최대 128 logical CPU를 갖춘 머신용이다. |
c = CPU | POWER5기반 AIX 5.3을 사용하고 있고 공유 CPU 환경일 경우, 물리적 CPU 사용량에 대한 상세를 보여준다. |
S = Subclass | WLM 하위 클래스에 대한 것이다. |
a = Disk adapters | 디스크 어댑터에 대한 상세를 제공한다. |
r = Resources | CPU 속도를 MHz로 나타낸다. |
k = Kernel | 새로운 필드를 제공한다. |
L = Large pages | 큰 페이지 통계를 제공한다. |
D = Disk | 디스크, 디스크 유형 크기, 여유 공간, 볼륨 그룹, 어댑터에 관한 정보를 제공한다. |
n = Network | 네트워크 어댑터 상세, MTU, 에러에 대한 정보를 제공한다. |
m = Memory | 메모리가 어디로 가는지, 시스템(커널)과 프로세스, 활성 가상 메모리에 대한 상세를 제공한다. |
-B | 박스를 제거하는 시작 옵션이다. |
그림 1은 샘플 스크린 아웃풋이다. AIX 5에 대한 오프닝 스크린을 보여주고 있고, 유용한 정보들이 많이 들어있다.
그림 1. AIX 5에 대한 nmon 10의 샘플 아웃풋
그림 2는 CPU(SMT 가 실행되는 4 CPU POWER5 머신), 메모리 사용, 커널 통계, 디스크 통계에 대한 상세를 나타낸다. 주: 논리적 파티션(LPAR)은 할당량의 6배를 사용하고 있다.
그림 2. 상세 CPU
그림 3은 네트워크, NFS 통계, 저널 파일시스템 사용에 대한 상세를 보여준다.
그림 3. 상세 네트워크
POWER5 공유 프로세서 마이크로 파티션 통계에 대한 상세는 그림 4에 나타나있다.
그림 4. 상세 LPAR
그림 5는 리눅스 버전의 nmon
상세를 설명하고 있다. CPU (SMT 가 실행되는 2 CPU POWER5), LPAR 통계, 메모리 사용, 네트워크 통계,
파일 시스템 사용, 디스크 통계를 보여주고 있다. 주: LPAR의 물리적 CPU는 SUSE SLES9 Service Pack 1과
Red Hat EL 4 Update 1에서만 사용할 수 있다.
그림 5. 리눅스 버전의 nmon
그림 6은 머신의 OS 상세, 디스크 통계(상세 모드), 탑 프로세스를 보여준다.
그림 6. 리눅스 버전의 nmon
툴의 다운로드 옵션은 다음과 같다.
- IBM Wiki에서 nmon과 툴 다운로드: http://www-941.haw.ibm.com/collaboration/wiki/display/WikiPtype/nmon.
- nmon 관련 Performance Tools 포럼: http://www-03.ibm.com/systems/p/community/.
교육
- "nmon 애널라이저 -- AIX 성능 리포트를 만들어 내는 무료 툴 (한글)" (한국 developerWorks, 2006년 3월): NMON 아웃풋으로 그래프 만들기
- 성능과 관련한 추가 자료는 아래 IBM Redbook을 참조하라:
- Understanding IBM pSeries Performance and Sizing, SG24-4810-01, 2001년 1월
- Database Performance on AIX in the DB2 UDB and Oracle Environments, SG24-5511, 2003년 1월
- AIX 5L Performance Tools Handbook,SG24-6039, 2003년 8월
- Nigel Griffiths의 다른 기술자료 및 튜토리얼
- "AIX 5 성능 시리즈: CPU 모니터링과 튜닝 (한글)": CPU 병목 현상 제거하고 성능 향상하기
- 토픽별 AIX and UNIX 기술자료 (영문) :
- System administration
- Application development
- Performance
- Porting
- Security
- Tips
- Tools and utilities
- Java™ technology
- Linux
- Open source
- 토픽별 IBM Systems 기술자료 (한글) :
-
AIX and UNIX: developerWorks의 AIX and UNIX 존은 AIX 와 UNIX 애플리케이션 개발 및 시스템 관리에 있어서 개발자들이 필요로 하는 기술자료, 튜토리얼 및 팁을 제공한다.
-
AIX and UNIX 입문 (한글): AIX and UNIX 존에서 AIX and UNIX 입문을 해보라.
-
AIX 5L™ Wiki
-
IBM Virtual Innovation Center for Hardware
-
Safari bookstore
-
developerWorks 기술이벤트와 웹캐스트: 최신 developerWorks 기술 이벤트와 웹 캐스트.
-
Podcasts: IBM 전문가들과의 만남
제품 및 기술 얻기
-
IBM 시험판 소프트웨어: 한국 developerWorks에서 소프트웨어를 다운로드하여 다음 개발 프로젝트에 활용해 보라.
-
nmon: nmon과 해당 툴 다운로드.
토론
-
developerWorks 블로그와 developerWorks 커뮤니티에 참여해보라.
- AIX and UNIX 포럼 참여하기:
- nmon 질문답변: nmon 질문 및 아이디어는 Performance Tools 포럼을 참조하라.
'컴퓨터활용 > 유닉스' 카테고리의 다른 글
디렉토리별 디스크 사용량 조사하여 정리하기 (1) | 2012.04.30 |
---|---|
날짜와 시간을 구하는 쉘 (0) | 2012.04.16 |
특정 프로세스를 찾아서 강제로 죽이는 쉘 (0) | 2012.02.11 |
배치프로그램 실행 쉘 예제 (0) | 2011.04.28 |
Unexpected end of file (0) | 2010.11.12 |