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 수