SAR를 이용한 시스템 모니터

조회 수 44722 추천 수 0 2010.09.03 02:49:48
cubebridge *.64.48.56

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
10시 48분 04초     all      0.00      0.00      0.12      0.12      0.00     99.75
10시 48분 05초     all      0.00      0.00      0.00      0.00      0.00    100.00

 

- 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
10시 48분 53초      0.00      0.00      0.00      0.00      0.00
10시 48분 54초      2.00      0.00      2.00      0.00     88.00

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
10시 55분 13초      0.00      0.00     33.66      0.00    101.98      0.00      0.00      0.00      0.00
10시 55분 14초      0.00     44.00     38.00      0.00    103.00      0.00      0.00      0.00      0.00

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
10시 59분 22초      0.00    840.00
10시 59분 23초      0.00    820.00

 

- 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초    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 01분 14초   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11시 01분 14초       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11시 01분 15초    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 01분 15초   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

- 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
11시 12분 28초        lo      2.00      2.00      0.10      0.10      0.00      0.00      0.00
11시 12분 28초      eth0     69.00      0.00      6.98      0.00      0.00      0.00      0.00
11시 12분 28초      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 12분 28초      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00


* 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
11시 40분 45초        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 40분 45초      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 40분 45초      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11시 40분 45초      sit0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

* 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
11시 41분 21초       553        26         6         0         0         0
11시 41분 22초       553        26         6         0         0         0

 

- 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
12시 08분 02초         0       940      0.00      0.00      0.00
12시 08분 03초         0       940      0.00      0.00      0.00

 

- 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
12시 17분 51초     97632   7938036     98.79    223724   6253484   9696204     79.92
12시 17분 52초     97632   7938036     98.79    223724   6253484   9696204     79.92

 

- 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
14시 16분 34초      0.00      0.00      0.00
14시 16분 35초      0.00      0.00      0.00

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
14시 56분 37초   4096372       192      0.00         0      0.00
14시 56분 38초   4096372       192      0.00         0      0.00

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
16시 48분 37초    106773      4080    109732         6
16시 48분 38초    106773      4080    109732         6

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
17시 08분 37초      0.00   1032.00
17시 08분 38초      0.00   1066.00

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
17시 08분 59초      0.00      0.00
17시 09분 00초      0.00      0.00

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
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A

- 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.jpg
- Ksar UI를 통해서 sar의 결과 값을 그래프 형식으로 보는 것이 가능하며, 여러 창을 열어 비교하는 것도 가능하다.


활용방법
- 최상단의 메뉴는 kar전체에 대한 메뉴. 이 메뉴의 file메뉴를 통하여 비교대상이 되는 새창을 열수 있다.
- window메뉴를 이용하여 창의 배열 형태를 설정할 수 있다.
- 내부 창의 메뉴는 해당 sar결과에 대한 메뉴로써, Data메뉴의 “load from textfile…”을 이용하여 추출한 sar파일을 그래프로 만들어 볼 수 있다.
- 그래프의 각 좌표의 값은 sar에서 보여주는 결과값에 대한 정리이므로 sar결과에 대한 내용을 참고할 것.