반응형
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 의 사용양



- swapping의 통계를 출력합니다.

[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 된 수



반응형

'연구개발 > Linux' 카테고리의 다른 글

vmstat 명령어  (0) 2014.07.08
[ubuntu] system benchmarking tool  (0) 2014.07.07
sar를 이용하여 서버의 현재 부하상태를 알아보기  (0) 2014.07.07
Linux 성능 모니터링  (0) 2014.07.07
netstat  (0) 2014.07.04

+ Recent posts