sar 명령어를 이용한 시스템 모니터링
- CentOS 5.x x64bit (CentOS 6.x 환경도 동일 합니다)
1. sar 명령어란?
- sar 명령어는 솔라리스,유닉스,리눅스 등에서 유용하게 쓰는 시스템 모니터링 프로그램이다.
- 모니터링 대상이 상당히 넓은 편이며 기본값은 CPU 활동에 대한 통계를 출력한다.
- 각종 활동에 대한 통계를 다른프로그램을 이용하여 파일로 저장하고 통계치를 리포팅 하는 기능을 제공한다.
- sadc에서 생성한 daily activity 파일을 읽어서 보고서를 작성하기도 하고 시스템의 활동 상황을 수집 할 수도 있다.
2. sar 명령어로 모니터링 가능한 항목
- I/O 전송량
- 페이징
- 프로세스 생성 숫자
- 블락 디바이스 활동
- 인터럽트
- 네트워크 통계
- run 큐 및 시스템 부하 평균
- 메모리와 스왑 공간 활용 통계
- 메모리 통계
- CPU 이용도
- 특정 프로세스에 대한 CPU 이용도
- inode, 파일, 기타 커널 테이블에 대한 상태
- 시스템 스위칭 활동(context switch)
- 스와핑 통계
- 특정 프로세스 통계
- 특정 프로세스의 자식 프로세스 통계
- TTY 디바이스 활동
3. sar 패키지 설치
- sysstat 패키지가 설치되어 있는지 먼저 확인 해 봅니다
[root@localhost ~]# rpm -qa | grep sysstat |
- 패키지가 설치되어 있지 않을 경우 아래 명령어로 설치 합니다.
[root@localhost ~]# yum install sysstat Loaded plugins: fastestmirror Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package sysstat.i386 0:7.0.2-3.el5_5.1 set to be erased --> Finished Dependency ResolutionDependencies Resolved ======================================================================== Package Arch Version Repository Size
Removing: sysstat i386 7.0.2-3.el5_5.1 installed 383 k Transaction Summary ========================================================================= Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : sysstat 1/1 Removed: sysstat.i386 0:7.0.2-3.el5_5.1 Complete! [root@localhost ~]# |
- 패키지 설치 후 sar 명령어를 바로 실행하면 아래와 같은 에러 메시지가 나게 됩니다.- 이는 정상으로, sar 패키지는 10분 간격으로 데이터를 수집하기 때문에 설치 직후 데이터가 없어서 나오는 에러입니다.
[root@localhost /dev]# sar -bash: /usr/bin/sar: No such file or directory |
4. sar 명령어 활용하기
- 기본정보 보기. 기본적으로 sar 명령어를 입력하였을 경우 보여지는 값은 CPU사용 정보입니다.
[root@localhost ]# sar Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.07 0.00 0.12 0.01 0.00 99.80 12:20:01 AM all 0.06 0.00 0.08 0.00 0.00 99.85 12:30:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 12:40:01 AM all 0.03 0.00 0.01 0.00 0.00 99.97 12:50:01 AM all 0.03 0.00 0.01 0.00 0.00 99.95 01:00:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 01:10:01 AM all 0.03 0.00 0.01 0.00 0.00 99.96
. . .
03:40:01 PM all 0.04 0.00 0.04 0.00 0.00 99.92 03:50:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 04:00:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 04:10:01 PM all 0.05 0.00 0.08 0.01 0.00 99.87 04:20:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 04:30:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 04:40:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 04:50:01 PM all 0.05 0.00 0.08 0.01 0.00 99.87 05:00:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 05:10:01 PM all 0.05 0.00 0.07 0.01 0.00 99.87 Average: all 0.04 0.00 0.02 0.00 0.00 99.95
[root@localhost ]# |
* %user : user mode 에서 작동한 CPU 가동률
* %sys : kernel mode에서 작동한 CPU 가동률
* %idle : idle 상태로 있었던 CPU 대기율
* %iowait : io wait 상태로 있었던 CPU 대기율
- 실시간 정보 보기
. sar [간격] [인터벌] 형식으로 입력합니다. 3초간격으로 10개의 데이터 값을 출력 해 줍니다.[root@localhost ]# sar 3 10 Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 05:30:30 PM CPU %user %nice %system %iowait %steal %idle 05:30:33 PM all 0.04 0.00 0.08 0.00 0.00 99.88 05:30:36 PM all 0.00 0.00 0.04 0.00 0.00 99.96 05:30:39 PM all 0.17 0.00 0.12 0.00 0.00 99.71 05:30:42 PM all 0.00 0.00 0.08 0.00 0.00 99.92 05:30:45 PM all 0.04 0.00 0.04 0.00 0.00 99.92 05:30:48 PM all 0.00 0.00 0.00 0.00 0.00 100.00 05:30:51 PM all 0.04 0.00 0.12 0.04 0.00 99.79 05:30:54 PM all 0.00 0.00 0.08 0.00 0.00 99.92 05:30:57 PM all 0.04 0.00 0.04 0.00 0.00 99.92 05:31:00 PM all 0.08 0.00 0.00 0.00 0.00 99.92 Average: all 0.04 0.00 0.06 0.00 0.00 99.89 [root@localhost ]# |
- 버퍼의 액티비티 측정. I/O와 transfer의 통계를 백분율로 출력합니다.
[root@localhost ]# sar -b Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM tps rtps wtps bread/s bwrtn/s 12:10:01 AM 13.37 0.00 13.37 0.00 364.55 12:20:01 AM 6.74 0.00 6.74 0.00 212.55 12:30:01 AM 1.33 0.00 1.33 0.00 23.10 12:40:01 AM 1.32 0.00 1.32 0.00 22.78 12:50:01 AM 1.62 0.00 1.62 0.00 42.19
. .
04:40:01 PM 10.13 0.00 10.13 0.00 241.91 04:50:01 PM 10.55 0.00 10.54 0.03 247.47 05:00:01 PM 10.73 0.00 10.73 0.00 252.55 05:10:01 PM 10.88 0.00 10.88 0.00 255.02 05:20:01 PM 10.44 0.00 10.44 0.00 246.23 05:30:01 PM 9.78 0.00 9.78 0.00 233.15 Average: 2.35 0.00 2.35 0.00 53.96 [root@localhost ]# |
* tps : 디스크에서 발생되어진 초당 전송량. 즉 디스크에 요청한 I/O양.
* rtps : 디스크로부터 발생된 초당 읽기 총 요청 횟수
* bread/s : 드라이브 안의 블럭에서 초당 읽은 데이터의 총합.
* bwrtn/s : 드라이브 안의 블럭에서 초당 쓰여진 데이터의 총합.
[root@localhost ]# sar -B Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s 12:10:01 AM 0.00 91.14 476.48 0.00 12:20:01 AM 0.00 53.14 335.81 0.00 12:30:01 AM 0.00 5.77 16.33 0.00 12:40:01 AM 0.00 5.69 16.40 0.00 12:50:01 AM 0.00 10.55 55.39 0.00 01:00:01 AM 0.00 3.93 14.25 0.00 01:10:01 AM 0.00 4.60 18.94 0.00 . .
04:40:01 PM 0.00 60.48 252.60 0.00 04:50:01 PM 0.01 61.87 270.12 0.00 05:00:01 PM 0.00 63.14 261.50 0.00 05:10:01 PM 0.00 63.76 268.29 0.00 05:20:01 PM 0.00 61.56 267.27 0.00 05:30:01 PM 0.00 58.29 247.77 0.00 05:40:01 PM 0.00 57.33 244.90 0.00 Average: 0.00 13.90 60.67 0.00 [root@localhost ]# |
* pgpgin/s : 디스크로부터 초당 paged in 된 page의 총 수
* pgpgout/s : 디스크로부터 초당 paged out 된 page의 총 수
[root@localhost ]# sar -c Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM proc/s 12:10:01 AM 0.73 12:20:01 AM 0.51 12:30:01 AM 0.03 12:40:01 AM 0.04 12:50:01 AM 0.09 . .
04:40:01 PM 0.39 04:50:01 PM 0.44 05:00:01 PM 0.39 05:10:01 PM 0.43 05:20:01 PM 0.44 05:30:01 PM 0.38 05:40:01 PM 0.38 Average: 0.10 [root@localhost ]# |
[root@localhost ]# sar -e 03:00:00 Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.07 0.00 0.12 0.01 0.00 99.80 12:20:01 AM all 0.06 0.00 0.08 0.00 0.00 99.85 12:30:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 12:40:01 AM all 0.03 0.00 0.01 0.00 0.00 99.97 12:50:01 AM all 0.03 0.00 0.01 0.00 0.00 99.95 01:00:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 01:10:01 AM all 0.03 0.00 0.01 0.00 0.00 99.96 01:20:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 01:30:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 01:40:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 01:50:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 02:00:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 02:10:01 AM all 0.03 0.00 0.01 0.00 0.00 99.97 02:20:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 02:30:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 02:40:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 02:50:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 Average: all 0.03 0.00 0.02 0.00 0.00 99.95 [root@localhost ]# |
- 특정 날짜의 sar 정보를 출력합니다. sar -f /var/spool/sa26 (26일자 sar 정보를 출력합니다)
[root@localhost ]# sar -f /var/spool/sa/sa26 Linux 2.6.18-308.1.1.el5 (localhost) 12/26/2012 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.03 0.00 0.01 0.00 0.00 99.97 12:20:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 12:30:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 12:40:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 12:50:01 AM all 0.03 0.00 0.00 0.00 0.00 99.97 . .
11:10:01 PM all 0.03 0.00 0.01 0.00 0.00 99.96 11:20:01 PM all 0.03 0.00 0.00 0.00 0.00 99.97 11:30:01 PM all 0.03 0.00 0.00 0.00 0.00 99.97 11:40:01 PM all 0.03 0.00 0.01 0.00 0.00 99.96 11:50:01 PM all 0.03 0.00 0.00 0.00 0.00 99.97 Average: all 0.03 0.00 0.01 0.00 0.00 99.96 [root@localhost ]# |
* sar는 매 10분마다 시스템모니터링 결과를 /var/lgo/sa/saxx 파일에 바이너리 형태로 기록합니다.
- 실행 대기 큐에 있는 프로세스를 보여줍니다. 시스템의 load avarage를 나타냅니다.
[root@localhost ]# sar -q Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:10:01 AM 0 169 0.00 0.00 0.00 12:20:01 AM 0 167 0.00 0.00 0.00 12:30:01 AM 0 167 0.00 0.00 0.00 12:40:01 AM 0 167 0.00 0.00 0.00 12:50:01 AM 0 167 0.00 0.00 0.00 01:00:01 AM 0 167 0.00 0.00 0.00 01:10:01 AM 0 167 0.00 0.00 0.00 01:20:01 AM 0 167 0.00 0.00 0.00 . .
05:00:01 PM 0 172 0.00 0.00 0.00 05:10:01 PM 0 172 0.04 0.01 0.00 05:20:01 PM 0 172 0.00 0.00 0.00 05:30:01 PM 0 174 0.00 0.00 0.00 05:40:01 PM 0 174 0.03 0.01 0.00 05:50:01 PM 0 174 0.00 0.00 0.00 06:00:01 PM 0 174 0.00 0.00 0.00 Average: 0 169 0.00 0.00 0.00[root@localhost ]# |
* runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 순으로 보여주며 각 프로세스 대기 시간과 전체 프로세스 수,
그리고 1분전, 5분전 평균 작업 부하 정보를 보여 줍니다.
- 메모리, 스왑 공간의 이용 통계를 출력합니다.
[root@localhost ]# sar -r Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 12:10:01 AM 2008372 2015032 50.08 428460 1342904 1959756 164 0.01 140 12:20:01 AM 2009032 2014372 50.07 428460 1343020 1959756 164 0.01 140 12:30:01 AM 2009404 2014000 50.06 428464 1343084 1959756 164 0.01 140 12:40:01 AM 2008784 2014620 50.07 428476 1343128 1959756 164 0.01 140 12:50:01 AM 2009032 2014372 50.07 428476 1343148 1959756 164 0.01 140 01:00:01 AM 2007916 2015488 50.09 428476 1343152 1959756 164 0.01 140 01:10:01 AM 2007800 2015604 50.10 428476 1343160 1959756 164 0.01 140 . .
05:00:01 PM 2000908 2022496 50.27 428712 1348464 1959756 164 0.01 140 05:10:01 PM 2001900 2021504 50.24 428728 1348716 1959756 164 0.01 140 05:20:01 PM 2001024 2022380 50.27 428748 1348908 1959756 164 0.01 140 05:30:01 PM 2001280 2022124 50.26 428752 1349072 1959756 164 0.01 140 05:40:01 PM 1999536 2023868 50.30 428752 1349228 1959756 164 0.01 140 05:50:01 PM 1999536 2023868 50.30 428752 1349400 1959756 164 0.01 140 06:00:01 PM 1999908 2023496 50.29 428752 1349568 1959756 164 0.01 140 Average: 2006274 2017130 50.13 428562 1344557 1959756 164 0.01 140 [root@localhost ]# |
* kbmemfree : 사용가능한 총 메모리의 양(k/bytes)
* kbmemused : 사용중인 총 메모리의 양(k/bytes), 커널에서 사용중인 메모리는 제외
* %memused : 사용된 메모리의 %양
* kbmemshrd : 시스템에서 공유메모리로 사용된 총 메모리의 양(k/bytes)
* kbbuffers : 커널에서 buffer 메모리로 총 사용된 메모리의 양(k/bytes)
* kbcached : 커널에서 cache data로 사용된 총 메모리의 양(k/bytes)
* kbswpfree : 사용가능한 스왑 공간의 양(k/bytes)
* kbswpused : 사용된 스왑 공간의 양(k/bytes)
* %swpused : 사용된 스왑 공간의 %양
[root@localhost ]# sar -R Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM frmpg/s bufpg/s campg/s 12:10:01 AM 0.05 0.02 0.03 12:20:02 AM -0.20 0.01 0.00 12:30:01 AM 0.10 0.02 0.00 12:40:01 AM -0.05 0.01 0.00 12:50:01 AM 0.00 0.01 0.00 . .
10:20:01 AM -0.05 0.02 0.00 10:30:01 AM 0.05 0.01 0.00 10:40:01 AM -0.10 0.01 0.00 10:50:01 AM -1.47 0.05 0.24 Average: -1.62 0.66 0.67 [root@localhost ]# |
* frmpg/s : 시스템에서 초당 자유로워진 memory pages의 양. 페이지의 크기는 시스템 아키텍쳐에 따라 달라지며 보통 4K,8K이다
* bufpg/s : 시스템에서 초당 buffer에 추가적으로 더해진 memory pages의 양
- 커널테이블 & 파일에서 inode의 상태를 출력합니다
[root@localhost ]# sar -v Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM dentunusd file-nr inode-nr pty-nr 12:10:01 AM 10089 4448 13566 1 12:20:02 AM 10089 4448 13566 1 12:30:01 AM 10089 4448 13566 1 12:40:01 AM 10089 4448 13566 1 12:50:01 AM 10089 4448 13566 1 . .
10:20:01 AM 62914 4480 63754 1 10:30:01 AM 62914 4480 63753 1 10:40:01 AM 62914 4480 63754 1 10:50:01 AM 63029 4640 63850 2 11:00:01 AM 63043 4608 63855 2 Average: 45275 4479 47023 1 [root@localhost ]# |
* dentunusd : Directory cache 에서 사용되고있지 않은 cache entries
* file-nr : file handles 의 사용양
* inode-nr : inode handles 의 사용양
[root@localhost ]# sar -W Linux 2.6.18-308.1.1.el5 (localhost) 01/03/2013 12:00:01 AM pswpin/s pswpout/s 12:10:01 AM 0.00 0.00 12:20:02 AM 0.00 0.00 12:30:01 AM 0.00 0.00 12:40:01 AM 0.00 0.00 12:50:01 AM 0.00 0.00
. .
11:20:01 AM 0.00 0.00 11:30:01 AM 0.00 0.00 11:40:01 AM 0.00 0.00 11:50:01 AM 0.00 0.00 12:00:01 PM 0.00 0.00 12:10:01 PM 0.00 0.00 Average: 0.00 0.00 [root@localhost ]# |
* pswpin/s : 초당 swap in 된 수* pswout/s : 초당 swap out 된 수