336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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환경에서 내용을 확인한다.