|
|
46번째 줄: |
46번째 줄: |
|
| |
|
| | | |
|
| |
| . 모니터링 명령어
| |
| # 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]] |
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