다른 명령
새 문서: = NMON = == NMON 개요 == # Nigel's Monitor # AIX /Linux 성능 분석용 모니터링 툴 ---- == 설치 == # 우분투 리눅스 #:<source lang=shell>apt-get install nmon </source> # 실행 #:<source lang=shell>nmon</source> # 종료 #:<source lang=shell>Q 또는 Ctrl + C</source> ---- == 분석 방법 == # nmon 로그 기록 <source lang=shell> -f: 파일로 기록 -s 초 : 몇초 단위로 데이터 캡쳐 할것인지 -c 숫자: 명령으로 작성해야하는 캡쳐... |
편집 요약 없음 |
||
35번째 줄: | 35번째 줄: | ||
* 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여 저장한 nmon 데이터를 넣어 주면 된다. | * 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여 저장한 nmon 데이터를 넣어 주면 된다. | ||
== nmon 항목 설명 == | |||
1. CPU | |||
. %sys + %user 가 80% 이상이면 병목으로 판단 | |||
- sys : kernel 부분이 수행되는 영역, 프로세스 스케줄링, I/O, drive, network과 관련 | |||
- wait : 디스크 I/O 작업이 끝날 때가지 기다리는 idle time | |||
- user : 사용자 프로세스, application, database등 | |||
- idle | |||
. 모니터링 명령어 | |||
# sar 1 5 : 1초 5회 평균 CPU 사용율 | |||
# sar -P ALL 1 5 : 각 Processor 별 사용율 | |||
# sar -q 1 5 : 시스템에서 사용한 평균 queue 및 process 표시 | |||
- runq-sz : 수행되고 있는 kernel thread의 평균 수 | |||
- %runocc : queue 가 실행된 시간의 백분율 | |||
- swpq-sz : wait 상태인 kernel thread의 평균 수 | |||
- swpocc : swap 상태인 시간의 백분율 | |||
# vmstat 1 5 : cpu 및 memory 사용율 | |||
- r : 수행중인 kernel thread 수 | |||
- b : swap에 대기중인 kernel thread 수 | |||
# ps aux | |||
- %CPU : 프로세스가 수행된 후 사용한 CPU 시간을 전체 경과시간으로 나눈 백분율 | |||
- %MEM : 프로세스가 수행될 때 사용한 실 메모리 백분율 | |||
- SZ : 프로세스의 data 영역을 위해 할당된 virtual page size로 1Kbyte 단위 | |||
- RSS : 프로세스의 실 메모리 크기 1Kbyte 단위 | |||
2. Memory | |||
. paging space In/Out이 10 이상이거나 page fault가 1000번 이상 발행하면 병목으로 판단 | |||
. memory 부족인지 user application이나 file cache에 의한 것인지 고려 | |||
- free : file cache나 프로세스가 사용하고 있지 않는 영역 | |||
- fie cache : 사용 가능한 메모리를 파일 작업시 I/O 성능 향상을 위해 cache로 사용 | |||
- paging(4KB) : 실 메모리가 부족한 경우 발생, 실 메모리에서 사용되지 않았던 영역을 디스크로 옮기고 | |||
그 부분을 free 영역으로 전환하여 process를 처리 | |||
- page fault : kernel이 필요한 data나 process의 페이지를 실 메모리에서 찾지 못하는 횟수 | |||
- page In : 필요한 page만큼 virtual memory manager(VMM)에 의해 paging space에서 read하는 초당 횟수 | |||
page out 값에 따라 발생하는 real I/O 값 | |||
- page Out : 실 메모리 free 영역 확보를 위해 VMM이 paging space에서 read out하는 초당 회수 | |||
page in 값에 따라 발생하는 real I/O 값 | |||
- page space In : paging 영역에서만 발생하는 page read | |||
- page space out : paging 영역에서만 발생하는 page out | |||
. 모니터링 명령어 | |||
# vmstat 1 5 | |||
- avm : 프로세스가 수행되는 동안 paging 공간에 할당된 active virtual page | |||
- fre : VMM이 필요시 사용할 수 있는 memory free list | |||
- re : page input/output list | |||
- pi : paging space에서 read in 된 page | |||
- po : paging space에서 read out 된 page | |||
- fr : paged freed(page replacement) | |||
- sr : page-replacement 알고리즘에 따라 page 찾기 | |||
- cy : page-replacement 알고리즘에 따른 clock cycle | |||
# svmon -G | |||
- memory : 실 메모리 사용 통계 | |||
. size | |||
. inuse : 프로세스나 file cache로 사용되는 메모리 | |||
. free | |||
. pin : pinned 영역에서 사용되는 메모리 | |||
. virtual : virtual 영역에 할당된 메모리 | |||
- pg sapce : paging 영역의 사용 통계 | |||
. size | |||
. inuse | |||
- pin : pinned 영역의 사용 통계 | |||
. work : working(프로세스) 메모리 중 pinned 영역에서 사용되는 메모리 | |||
. pers : persistent(file cache) 메모리 중 pinned 영역에서 사용되는 메모리 | |||
. clnt : client(NFS, cd) 메모리 중 pinned 영역에서 사용되는 메모리 | |||
- in use : 실 메모리 사용 통계 | |||
. work | |||
. pers | |||
. clnt | |||
3. DISK I/O | |||
. %iowait가 40% 이상이거나 사용자 application에 의해 특정 disk의 %tm_act가 70%를 초과하는 경우 병목으로 판단 | |||
- read : 초당 read 하는 데이터 크기 1Kbyte 단위 | |||
- write | |||
- busy% : 디스크에 작업한 시간을 경과 시간으로 나눈 백분율 | |||
. 모니터링 명령어 | |||
# iostat | |||
- %tm_act : 물리적 디스크에서 작업한 시간의 백분율 | |||
일반적으로 40%를 초과하게 되면 I/O를 완료하는 시간이 길어져 응답시간이 증가 | |||
- Kbps : 초당 디스크에 이동된 데이터 양 Kbype 단위 | |||
- tps : 초당 디바이스 드라이브 단계에서 해당 물리적 디스크로 I/O를 요청하는 횟수 | |||
- Kb_read : 물리적 디스크에 read한 양 Kbyte 단위 | |||
- Kb_wrtn : 물리적 디스크에 write한 양 Kbypte 단위 | |||
4. Network Traffic | |||
. network bandwidth의 30% 이상을 사용하는 경우 병목으로 판단 | |||
- read | |||
- write | |||
. 모니터링 명령어 | |||
# netstat -m | |||
# netstat -v | |||
# netstat -ni | |||
5. topas 명령어를 이용한 모니터링 | |||
1) CPU | |||
. Kernel : CPU의 현재 사용량, 70이 넘어가면 점검 필요 | |||
. User : 각 프로세스들이 사용하는 CPU 사용량 | |||
. Wait : 처리 대기중인 프로세스의 양(10미만) | |||
. Idle : | |||
2) Memory | |||
. Real,MB : 메모리의 실제 크기(MByte) | |||
. %Comp : 현재 메모리 사용율이며, 높을수록 좋다 | |||
. %Noncomp : file cache로 할당된 영역 | |||
. %Client : aix의 file system을 위한 영역 | |||
3) Paging Space | |||
. Size,MB : Paging Memory로 할당된 크기 | |||
. %Used : 사용중인 양, 낮을수록 좋다 | |||
. %Free | |||
6. nmon을 이용한 모니터링 | |||
nmon을 실행한 다음에 cmd라고 치면 cpu memory disk 정보가 나온다. | |||
#./nmon | |||
cmd | |||
[[category:unix]] | |||
[[category:nmon]] | [[category:nmon]] |
2025년 5월 26일 (월) 13:18 판
NMON
NMON 개요
- Nigel's Monitor
- AIX /Linux 성능 분석용 모니터링 툴
설치
- 우분투 리눅스
apt-get install nmon
- 실행
nmon
- 종료
Q 또는 Ctrl + C
분석 방법
- nmon 로그 기록
-f: 파일로 기록 -s 초 : 몇초 단위로 데이터 캡쳐 할것인지 -c 숫자: 명령으로 작성해야하는 캡쳐 갯수 지정 (기본 : 10000000) -m 디렉토리 : 저장할 경로
- 예시) 10초 간격으로 20번 수집해서 /home/dbcafe 에 저장 하기
mkdir /home/dbcafe nmon -f -s 10 -c 20 -m /home/dbcafe
분석 리포트
nmon Analyzer 에서 최신 파일(엑셀) 다운로드
- 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여 저장한 nmon 데이터를 넣어 주면 된다.
nmon 항목 설명
1. CPU
. %sys + %user 가 80% 이상이면 병목으로 판단
- sys : kernel 부분이 수행되는 영역, 프로세스 스케줄링, I/O, drive, network과 관련 - wait : 디스크 I/O 작업이 끝날 때가지 기다리는 idle time - user : 사용자 프로세스, application, database등 - idle
. 모니터링 명령어
# sar 1 5 : 1초 5회 평균 CPU 사용율 # sar -P ALL 1 5 : 각 Processor 별 사용율 # sar -q 1 5 : 시스템에서 사용한 평균 queue 및 process 표시 - runq-sz : 수행되고 있는 kernel thread의 평균 수 - %runocc : queue 가 실행된 시간의 백분율 - swpq-sz : wait 상태인 kernel thread의 평균 수 - swpocc : swap 상태인 시간의 백분율 # vmstat 1 5 : cpu 및 memory 사용율 - r : 수행중인 kernel thread 수 - b : swap에 대기중인 kernel thread 수 # ps aux - %CPU : 프로세스가 수행된 후 사용한 CPU 시간을 전체 경과시간으로 나눈 백분율 - %MEM : 프로세스가 수행될 때 사용한 실 메모리 백분율 - SZ : 프로세스의 data 영역을 위해 할당된 virtual page size로 1Kbyte 단위 - RSS : 프로세스의 실 메모리 크기 1Kbyte 단위
2. Memory
. paging space In/Out이 10 이상이거나 page fault가 1000번 이상 발행하면 병목으로 판단 . memory 부족인지 user application이나 file cache에 의한 것인지 고려
- free : file cache나 프로세스가 사용하고 있지 않는 영역 - fie cache : 사용 가능한 메모리를 파일 작업시 I/O 성능 향상을 위해 cache로 사용 - paging(4KB) : 실 메모리가 부족한 경우 발생, 실 메모리에서 사용되지 않았던 영역을 디스크로 옮기고 그 부분을 free 영역으로 전환하여 process를 처리 - page fault : kernel이 필요한 data나 process의 페이지를 실 메모리에서 찾지 못하는 횟수 - page In : 필요한 page만큼 virtual memory manager(VMM)에 의해 paging space에서 read하는 초당 횟수 page out 값에 따라 발생하는 real I/O 값 - page Out : 실 메모리 free 영역 확보를 위해 VMM이 paging space에서 read out하는 초당 회수 page in 값에 따라 발생하는 real I/O 값 - page space In : paging 영역에서만 발생하는 page read - page space out : paging 영역에서만 발생하는 page out
. 모니터링 명령어
# vmstat 1 5 - avm : 프로세스가 수행되는 동안 paging 공간에 할당된 active virtual page - fre : VMM이 필요시 사용할 수 있는 memory free list - re : page input/output list - pi : paging space에서 read in 된 page - po : paging space에서 read out 된 page - fr : paged freed(page replacement) - sr : page-replacement 알고리즘에 따라 page 찾기 - cy : page-replacement 알고리즘에 따른 clock cycle # svmon -G - memory : 실 메모리 사용 통계 . size . inuse : 프로세스나 file cache로 사용되는 메모리 . free . pin : pinned 영역에서 사용되는 메모리 . virtual : virtual 영역에 할당된 메모리 - pg sapce : paging 영역의 사용 통계 . size . inuse - pin : pinned 영역의 사용 통계 . work : working(프로세스) 메모리 중 pinned 영역에서 사용되는 메모리 . pers : persistent(file cache) 메모리 중 pinned 영역에서 사용되는 메모리 . clnt : client(NFS, cd) 메모리 중 pinned 영역에서 사용되는 메모리 - in use : 실 메모리 사용 통계 . work . pers . clnt
3. DISK I/O
. %iowait가 40% 이상이거나 사용자 application에 의해 특정 disk의 %tm_act가 70%를 초과하는 경우 병목으로 판단
- read : 초당 read 하는 데이터 크기 1Kbyte 단위 - write - busy% : 디스크에 작업한 시간을 경과 시간으로 나눈 백분율
. 모니터링 명령어
# iostat - %tm_act : 물리적 디스크에서 작업한 시간의 백분율 일반적으로 40%를 초과하게 되면 I/O를 완료하는 시간이 길어져 응답시간이 증가 - Kbps : 초당 디스크에 이동된 데이터 양 Kbype 단위 - tps : 초당 디바이스 드라이브 단계에서 해당 물리적 디스크로 I/O를 요청하는 횟수 - Kb_read : 물리적 디스크에 read한 양 Kbyte 단위 - Kb_wrtn : 물리적 디스크에 write한 양 Kbypte 단위
4. Network Traffic
. network bandwidth의 30% 이상을 사용하는 경우 병목으로 판단
- read - write
. 모니터링 명령어
# netstat -m # netstat -v # netstat -ni
5. topas 명령어를 이용한 모니터링
1) CPU
. Kernel : CPU의 현재 사용량, 70이 넘어가면 점검 필요 . User : 각 프로세스들이 사용하는 CPU 사용량 . Wait : 처리 대기중인 프로세스의 양(10미만) . Idle :
2) Memory
. Real,MB : 메모리의 실제 크기(MByte) . %Comp : 현재 메모리 사용율이며, 높을수록 좋다 . %Noncomp : file cache로 할당된 영역 . %Client : aix의 file system을 위한 영역
3) Paging Space . Size,MB : Paging Memory로 할당된 크기 . %Used : 사용중인 양, 낮을수록 좋다 . %Free
6. nmon을 이용한 모니터링
nmon을 실행한 다음에 cmd라고 치면 cpu memory disk 정보가 나온다.
- ./nmon
cmd