본문으로 건너뛰기

sar 명령어를 이용한 시스템 모니터링

💡 요약 정리

  • sar 명령어는 시스템 활동 모니터링 도구로, CPU, 메모리, I/O 등 다양한 항목을 확인할 수 있습니다.
  • sysstat 패키지를 설치하여 사용하며, 10분 간격 데이터 수집 방식입니다.
  • 다양한 옵션과 조합을 통해 실시간 또는 특정 시점의 리소스 사용 상태를 확인할 수 있습니다.

1. 설치 환경

  • CentOS 5.x x64bit (CentOS 6.x 환경도 동일합니다.)

2. sar 명령어란?

  • sar 명령어는 솔라리스, 유닉스, 리눅스 등에서 유용하게 쓰는 시스템 모니터링 프로그램입니다.
  • 모니터링 대상이 상당히 넓은 편이며 기본값은 CPU 활동에 대한 통계를 출력합니다.
  • 각종 활동에 대한 통계를 다른 프로그램을 이용하여 파일로 저장하고 통계치를 리포팅 하는 기능을 제공합니다.
  • sadc에서 생성한 daily activity 파일을 읽어서 보고서를 작성하기도 하고 시스템의 활동 상황을 수집할 수도 있습니다.

3. sar 명령어로 모니터링 가능한 항목

  • I/O 전송량
  • 페이징
  • 프로세스 생성 숫자
  • 블락 디바이스 활동
  • 인터럽트
  • 네트워크 통계
  • run 큐 및 시스템 부하 평균
  • 메모리와 스왑 공간 활용 통계
  • 메모리 통계
  • CPU 이용도
  • 특정 프로세스에 대한 CPU 이용도
  • inode, 파일, 기타 커널 테이블에 대한 상태
  • 시스템 스위칭 활동(context switch)
  • 스와핑 통계
  • 특정 프로세스 통계
  • 특정 프로세스의 자식 프로세스 통계
  • TTY 디바이스 활동

4. 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 명령어를 바로 실행하면 아래와 같은 에러 메시지가 나옵니다.
[root@localhost /dev]# sar
-bash: /usr/bin/sar: No such file or directory
  • 이는 정상입니다. sar 패키지는 10분 간격으로 데이터를 수집하기 때문에 설치 직후에는 데이터가 없어 발생하는 에러입니다.

5. 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
... 생략 ...
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: I/O wait 상태로 있었던 CPU 대기율

실시간 정보 보기

3초 간격으로 10개의 데이터 값을 출력

[root@localhost ]# sar 3 10

버퍼의 액티비티 측정

I/O 와 transfer의 통계를 백분율로 출력

[root@localhost ]# sar -b
  • tps: 디스크에서 발생한 초당 전송량
  • rtps: 초당 읽기 요청 횟수
  • bread/s: 초당 읽은 데이터의 총합
  • bwrtn/s: 초당 쓰여진 데이터의 총합

페이징 통계 출력

[root@localhost ]# sar -B
  • pgpgin/s: 초당 paged in된 page의 수
  • pgpgout/s: 초당 paged out된 page의 수

새로 생성된 프로세스 수 출력

[root@localhost ]# sar -c
  • proc/s: 초당 생성된 프로세스 수

지정된 시간까지의 정보 출력

[root@localhost ]# sar -e 03:00:00

특정 날짜의 sar 정보 출력

[root@localhost ]# sar -f /var/spool/sa/sa26
  • sar는 매 10분마다 기록된 내용을 /var/log/sa/saXX 파일에 저장합니다.

실행 대기 큐(load average) 출력

[root@localhost ]# sar -q
  • runq-sz: 실행대기큐에 있는 프로세스 수
  • plist-sz: 총 프로세스 수
  • ldavg-1/5/15: 1분, 5분, 15분전 평균 작업 부하

메모리, 스왑 공간 이용 통계

[root@localhost ]# sar -r
  • kbmemfree: 사용 가능한 총 메모리 양
  • kbmemused: 사용 중인 총 메모리 양
  • %memused: 메모리 사용률
  • kbbuffers: 커널의 buffer 메모리 사용량
  • kbcached: cache data 사용량
  • kbswpfree / kbswpused / %swpused

메모리 통계

[root@localhost ]# sar -R
  • frmpg/s: 초당 자유롭게 된 memory page 수
  • bufpg/s: 초당 buffer에 더해진 memory page 수

커널 테이블/파일 inode 상태 출력

[root@localhost ]# sar -v
  • dentunusd: Directory cache에서 사용중 아닌 entry
  • file-nr: file 핸들 사용량
  • inode-nr: inode 핸들 사용량

swapping 통계 출력

[root@localhost ]# sar -W
  • pswpin/s: 초당 swap in된 수
  • pswpout/s: 초당 swap out된 수

참고자료

http://blog.naver.com/luckan7/10037958551