1. NMON
1) NMON 이란?
- Nigel's performance MONitor
- A free tool to analyze AIX and Linux performance
- nmon is a tool for viewing & collecting system data
* AIX : Closed source / Built in as part of topas
* Linux : Open Source / Download and install from / get the right one for your distribution
cf. 종료 시 다음 record를 저장하고 종료되도록 설정
* AIX : kill -s SIGUSR2 <pid>
Linux : kill -s USR2 <pid>
※ kill -s 시그널명 <pid> kill 할 때 signal 주기 - software interrupts / inter-process communication - interrupts normal flow of process and delivers notification - signals 에 대한 handler 등록 O : that routine is executed 등록 X : process execute the default process handler - signals can be sent with the kill command |
2) 활용
ㄱ. On screen
: console, telnet, putty / every 2 seconds / nmon 치고, 이후 옵션 주기 (옵션은 여러개를 동시에 줄 수 있다)
ex) nmon 엔터 cl
=> 현재 CPU 사용 현황과 long term CPU 모니터링
ㄴ. Save the data to a comma seperated file for analysis and longer term data capture
a. download & install
Linux 의 경우 nmon 을 download 받아서 install 한다. install 위치는 보통 /usr/bin/nmon
b. setting
: crontab 에서 nmon 을 실행하며, 파일저장위치, 파일별 기록 주기(초단위), 기록 횟수 설정 (기록 횟수는 생성되는 nmon 파일 사이즈를 고려해서 설정한다. 보통 12시간 단위로, 하루 당 2개의 파일이 생성되도록 설정한다.)
ex) /usr/bin/nmon -ft -m /home/nmon -s 20 -c 2160
- 파일저장위치 : /home/nmon
- 파일별 기록 주기 : 60초
- 기록 횟수 : 2160 (=2160*20/ (60*60) = 12시간)
* crontab 에서 설정한 시작 시각이 nmon data 기록 시작 시각이 된다. 중복해서 2개의 파일에 기록되지 않도록, crontab 시작 시각을 잘 설정해야 함. 예를 들어 12시간 동안 기록되게 한다면, crontab 설정에서 9,21 * * * * nmon data 생성 shell (9시, 21시에 수행. 9시와 21시는 12시간 차)
c. analyze
- ftp 로 nmon 파일을 local 로 내리고, nmon analyzer를 통해 분석한 결과를 excel 파일로 생성 (nmon analyzer 는 excel macro 파일과 java swing 파일이 있으며, 인터넷에서 무료로 다운로드 가능)
2. Visualvm
1) 사용
어플리케이션에 JMX port 가 열려있을 때, java 관련 사항 모니터링 가능
2) Visualvm프로그램 사용
https://visualvm.java.net/ 에서 무료로 다운로드가 가능하다.
3. Core dump 분석
1) 생성 시기
프로그램에 crash 가 발생하거나, 비정상적으로 종료됐을 때 Core Dump 가 생성된다.
2) 용도
diagnosing, debugging
3) 구성
시스템에서 어떤 프로그램이 구동 중이었고, 또 어떤 환경일 때 프로그램 내 crash 발생 혹은 프로그램 비정상 종료가 됐는지 확인할 수 있는 사항
ㄱ. recorded state of working memory
ㄴ. program state (processor registers) : program counter, stack pointer, memory management information, other processor, operating system flags
4. TCP dump 분석
1) TCP dump 설정
* 기본적으로 TCP dump 파일은 TCP packet이 들어올 때마다 파일에 누적해서 작성을 하기 때문에 계속 프로세스가 떠있어야 하고, 적절한 파일 관리 및 삭제 정책이 있어야 한다.
예시 설정을 가지고 의미를 분석해보고자 한다.
nohup tcpdump -i bond0 -n -nn -C 200 -W 60 -w /root/pcap/호스트명_bond0_ -z root 'host IP 주소 and tcp port port번호' > /dev/null 2>&1 & |
ㄱ. 계속해서 프로세스를 수행하게 하기 위해서 nohup 으로 TCP dump 파일 생성 명령 수행
ㄴ. 파일 삭제 및 관리 정책 설정
옵션 |
의미 |
-C 200 |
파일 사이즈가 200MB가 넘을 경우, 기존 파일을 닫고 새 파일을 연다. |
-W 60 |
총 TCP dump 파일 개수를 60개로 설정. 60개가 넘어갈 경우 맨 처음 만들어진 파일을 overwrite |
-w /root/pcap/호스트명_bond0_ |
w 옵션 뒤의 위치에 숫자 00, 01, 02 ... 등을 붙여 생성 |
-Z root |
root 계정으로 접속했을 때만 접근 가능 |
ㄷ. tcp dump 관련 tcp 정보 설정
옵션 | 의미 |
-i bond0 | listen on interface bond0 : bond0 interface 에 arrive/depart 하는 패킷을 기록한다. 참고로, 서버의 여러 NIC (Network Interface Card)를 묶어 bond로 만든다. bond 는 bandwidth를 증가시키지 위한 목적이다. |
-'host IP주소 and tcp port port번호' | 총 TCP dump 파일 개수를 60개로 설정. 60개가 넘어갈 경우 맨 처음 만들어진 파일을 overwrite |
* 일반적으로 평상 시에는 네트워크 장비(ex. L4 스위치)에서만 TCP dump를 떨어뜨리고, 업무 서버에서는 TCP dump를 떨어뜨리지 않는다. 많이 부하가 발생하고, TCP dump 가 장애를 유발할 수 있기 때문이다. 업무 서버에서는 꼭 필요할 때만 TCP dump를 떨어뜨린다.
ㄹ. 성능 향상
옵션 | 의미 |
- n | address 를 hostname으로 전환하지 않는다. (DNS 조회하지 않음으로 성능 향상) |
- nn | port 와 protocol을 name으로 전환하지 않는다. |
'Programming Practice > Shell & Server Management' 카테고리의 다른 글
조건문 (0) | 2016.02.16 |
---|---|
변수 기본 (0) | 2016.02.16 |
find 한 결과를 배열에 담아서 사용하기 (0) | 2016.01.30 |
특정 로그 파일에서 체크 시점 이전 5분 동안 특정 문구 개수 조회 (0) | 2016.01.10 |
파일 관리 (0) | 2015.10.25 |