SAR(System Activity Reporter)를 이용한 시스템 모니터
Sar란?
시스템 관리 툴
설치방법
Sysstat을 다운로드(http://sebastien.godard.pagesperso-orange.fr/download.html) 받아 설치.
sar에서 확인할 수 있는 사항
- I/O 전송량 - 페이징- 프로세스 생성 숫자
- 블락 디바이스 활동
- 인터럽트 - 네트워크 통계
- run 큐 및 시스템 부하 평균
- 메모리와 스왑 공간 활용 통계
- 메모리 통계
- CPU 이용도
- 특정 프로세스에 대한 CPU 이용도
- inode, 파일, 기타 커널 테이블에 대한 상태
- 시스템 스위칭 활동(context switch)
- 스와핑 통계 - 특정 프로세스 통계
- 특정 프로세스의 자식 프로세스 통계
- TTY 디바이스 활동
사용옵션 정리
- sar명령어에 옵션을 주지 않고 수행했을 경우 -u옵션이 default로 적용된다.
- sar -A: 모든 관련정보를 출력한다.
- Shell> sar
%user : 사용자 레벨(application level) 에서 실행중일때의 CPU 사용률 (%)
%nice : 사용자 레벨(appliaction level) 에서 nice 가중치를 준 CPU 사용률(%)
%system : 시스템레벨(kernel) 에서 실행중일때의 CPU 사용률(%)
%iowait : system이 I/O요청을 처리하지 못한 상태에서의 CPU의 idle 상태인 시간의 비율(%)
%steal : virtual processer에 의한 작업이 진행되는 동안 virtual CPU에 의해 뜻하지 않는 대기시간이 생기는 시간의 비율(%)
%idle : CPU가 쉬고있는 시간의 %
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
10시 48분 03초 CPU %user %nice %system %iowait %steal %idle |
- Shell> sar 5 2 → 5초 간격으로 2회 수행
- Shell> sar -b → 버퍼의 activity를 점검하여 I/O와 transfer의 통계를 출력한다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
10시 48분 52초 tps rtps wtps bread/s bwrtn/s |
tps: 물리적 디스크에서 발생한 초당 전송량이며, 여기서의 전송은 물리적 디스크에 요청한 I/O이다.
rtps: 물리적 디스크로부터 발생된 초당 읽기의 총 요청 횟수
bread/s: 드라이브 안의 블럭에서 초당 읽은 데이터의 총합.
bwrth/s: 드라이브 안의 블록에서 초당 쓰여진 데이터의 총합
- Shell> sar -B → 페이징 통계를 출력
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
10시 55분 12초 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff |
pgpgin/s: 디스크로부터 초당 paged in된 page의 총 수
papgout/s: 디스크에 초당 paged out 된 page의 총 수
- Shell> sar -w → 새롭게 만들어져 활동하고 있는 프로세스를 출력한다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
10시 59분 21초 proc/s cswch/s |
- Shell> sar -d
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
11시 01분 13초 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 11시 01분 14초 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util |
- Shell> sar -i interval → 출력할 데이터의 간격(초단위)
- Shell> sar -n DEV | EDEV | SOCK
* DEV: network device의 결과로부터의 통계
IFACE: Network Interface 이름
rxpck/s: 초당 받은 패킷수
txpck/s: 초당 전송한 패킷수
rxbyt/s: 초당 받은 bytes
txbyt/s: 초당 전송한 bytes
rxcmp/s: 압축된 패킷을 초당 받은 수
txcmp/s: 압축된 패킷을 초당 전송한 수
rxmcst/s: 초당 받은 다중 패킷 수
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 13일 _x86_64_ (8 CPU)
11시 12분 27초 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s |
* EDEV: network device의 에러통계
IFACE: Network Interface 이름
rxerr/s: 초당 불량 패킷을 받은 수
txerr/s: 패킷전송중 초당 발생한 에러 수
coll/s: 패킷전송중 초당 발생한 충돌 수
rxdrop/s: 리눅스 buffer 의 부족으로 패킷을 받는도중 초당 drop 된 패킷 수
txdrop/s: 리눅스 buffer 의 부족으로 전송중 초당 drop 된 패킷 수
txcarr/s: 패킷전송도중 초당 발생한 carrier-error 수
rxfram/s: 패킷을 받는도중 초당 발생한 frame alignment 에러 수
rxfifo/s: 패킷을 받는 도중 초당 발생한 FIFO overrun 에러 수
txfifo/s: 전송된 패킷중 초당 발생한 FIFO overrun 에러 수
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
11시 40분 44초 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s |
* SOCK: socket의 통계
totsck: 총 사용된 socket 수
tcpsck: 현재 사용중인 TCP sockets 수
udpsck: 현재 사용중이 UDP sockets 수
rawsck: 현재 사용중인 RAW sockets 수
ip-frag: 현재 사용중인 IP fragments 수
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
11시 41분 20초 totsck tcpsck udpsck rawsck ip-frag tcp-tw |
- Shell> sar -o filename → 수행한 결과를 binary형태로 filename에 기록한 이름으로 저장된다.
- Shell> sar -f filename → -o옵션을 이용하여 binary형태로 기록한 파일을 읽는 방법이다.
- Shell> sar -q → 실행 대기 중인 프로세스를 점검. 시스템의 load average를 나타낸다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
12시 08분 01초 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 |
- Shell> sar -r → 가용메모리 점검 및 메모리 공간의 통계를 출력한다.
kbmemfree : 사용가능한 총 메모리의 양(kbytes)
kbmemused : 사용중인 총 메모리의 양(kbytes), 커널에서 사용중인 메모리는 제외
%memused : 사용된 메모리의 %
kbbuffers : 커널에서 buffer 메모리로 총 사용된 메모리의 양 (kbytes)
kbcached : 커널에서 cache data 로 사용된 총 메모리의 양(kbytes)
kbcommit : 현재 작업을 위해 필요한 메모리의 총량(kbytes),메모리 부족이 발생하지 않기 위한 RAM/swap 사용량의 추정치
%commit : 현재 작업을 위해 필요한 메모리 총량의 %, kernel은 보통 메모리를 overcommits하므로 일반적으로 100%를 넘을 것이다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
12시 17분 50초 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit |
- Shell> sar -R → 메모리 통계
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
14시 16분 33초 frmpg/s bufpg/s campg/s |
frmpg/s : 시스템에서 초당 자유로워진 memory pages 의 양 페이지의 크기는 시스템 아키텍쳐에따라 달라지며 보통 4K / 8K 이다.
bufpg/s : 시스템에서 초당 buffer 에 추가적으로 더해진 memory pages 의 양
campg/s : 시스템에서 초당 system에 의해 cache된 memory pages 의 양
- Shell> sar -S → 스왑 점검 및 공간의 통계를 출력한다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
14시 56분 36초 kbswpfree kbswpused %swpused kbswpcad %swpcad |
kbswpfree : 사용가능한 스왑공간의 양(kbytes)
kbswpused : 사용된 스왑공간의 양(kbytes)
%swpused : 사용된 스왑공간의 %
kbswpcad : cache된 스왑의 총량(kbytes)
%swpcad : 사용중은 스왑의 총량 중 cache된 스왑공간의 %
- Shell> sar -v → 커널테이블 & 파일에서 inode의 상태를 출력한다.
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
16시 48분 36초 dentunusd file-nr inode-nr pty-nr |
dentunusd : Directory cache 에서 사용되고있지 않은 cache entries
file-nr : file handles 의 수
inode-nr : inode handles 의 수
pty-nr : pty handles 의 수
- Shell> sar -w → 작업 생성과 시스템 switching활동 현황 출력
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
17시 08분 36초 proc/s cswch/s |
proc/s : 초당 생성된 작업의 총 수
cswch/s : 초당 context switching의 총 수
- Shell> sar -W → swapping의 통계 출력
Linux 2.6.18-128.el5 (newTest2) 2010년 08월 16일 _x86_64_ (8 CPU)
17시 08분 58초 pswpin/s pswpout/s |
pswpin/s : 초당 swap in 된 수
pswpout/s : 초당 swap out 된 수
sar설정하기
- 아래의 내용과 같이 cron.d에 등록한다.
- Shell> cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes |
- sa1은 매 10분마다 시스템 모니터링한 결과를 /var/log/sa/saXX파일에 바이너리 형태로 기록한다. XX는 기록하는 날짜이다.
- sa2 -A는 23시 53분에 바이너리 파일을 읽어서 사람들이 볼 수 있도록 보고서를 만든다. /var/log/sa/sarXX 형태로 기록된다. sa1에서 5 3이라고 해놓으면 매 10분마다 실행을 하면서 5초동안 3번을 기록한다는 뜻이다.
- sar를 이용하여 각 결과 값을 위에 설명한 옵션을 이용하여 확인하면 된다.
kSar란?
GUI형태로 sar결과 값을 볼 수 있는 툴
설치방법
Sorurceforge에서 다운로드 받아 설치(http://sourceforge.net/projects/ksar/files/).
sar결과 값 추출 방법
- “위의 sar설정하기”에 따라 설정을 완료할 경우 매일 23시 53분에 ksar를 이용하여 내용을 볼수 있는 파일이 생성되나 특정 시간 동안에 작업을 진행하기 위해서는 아래와 같은 절차를 따르는 것이 필요하다.
1. /usr/local/lib/sa/sa1 1 360명령어를 이용하여 sa로그를 남김(예, sa23)
2. 남긴 sa23을 ksar에서 확인할 수 있는 text파일로 변경
3. 변경방법: shell>LC_ALL=C sar -A -f /var/log/sa/sa23 > ForKsar.txt
4. ForKsar.txt파일을 Ksar의 내부 창 Data에서 선택하여 아래의 UI환경에서 내용을 확인한다.
Ksar UI
- Ksar UI를 통해서 sar의 결과 값을 그래프 형식으로 보는 것이 가능하며, 여러 창을 열어 비교하는 것도 가능하다.
활용방법
- 최상단의 메뉴는 kar전체에 대한 메뉴. 이 메뉴의 file메뉴를 통하여 비교대상이 되는 새창을 열수 있다.
- window메뉴를 이용하여 창의 배열 형태를 설정할 수 있다.
- 내부 창의 메뉴는 해당 sar결과에 대한 메뉴로써, Data메뉴의 “load from textfile…”을 이용하여 추출한 sar파일을 그래프로 만들어 볼 수 있다.
- 그래프의 각 좌표의 값은 sar에서 보여주는 결과값에 대한 정리이므로 sar결과에 대한 내용을 참고할 것.
'IT소식 > IT 공부' 카테고리의 다른 글
실무에서 유용한 스크립트 - 2 (1188) | 2016.01.20 |
---|---|
[펌] 리눅스 서버 체크 (1136) | 2016.01.13 |
리눅스 한글 설정 하기 (1198) | 2015.12.31 |
Netstat 사용 시 TCP 연결상태 의미 (867) | 2015.12.30 |
실무에서 유용한 스크립트 - 1 (1011) | 2015.12.30 |