강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
시스템 모니터링 툴 sar
조회 : 31,877  


[SAR(System Activity Reporter)를 이용한 시스템 모니터]


[시스템 환경]

Cpu : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz

Ram : 1G

Hdd : 10G

아키텍쳐: 64bit

KVM 가상화 환경.



1. 서론


sar명령어는 지금 현재의 시스템 상황보다는 이전의 로그를 바탕으로 어떤 시기에 어떤 일들이 있었는가를 측정하여 시스템의 장기적인 부하량을 예측하고 대처할 수 있도록 해 주는 프로그램이다.   쉽게 말해서 시스템의 모니터링 툴 중에 하나 이다.


2. 본론


그러면 sar 의 주요 기능을 한번 살펴보도록 하겠다.


sar에서 확인할 수 있는 사항

- I/O 전송량 - 페이징- 프로세스 생성 숫자

- 블락 디바이스 활동

- 인터럽트 - 네트워크 통계

- run 큐 및 시스템 부하 평균

- 메모리와 스왑 공간 활용 통계

- 메모리 통계

- CPU 이용도

- 특정 프로세스에 대한 CPU 이용도

- inode, 파일, 기타 커널 테이블에 대한 상태

- 시스템 스위칭 활동(context switch)

- 스와핑 통계 - 특정 프로세스 통계

- 특정 프로세스의 자식 프로세스 통계

- TTY 디바이스 활동


생각보다 많은 것들을 확인 할수 있는 좋은 툴이다.



[설치]


그럼 sar 설치는 어떻게 하면 될까?


간단히 yum install sysstate 명령을 이용해서  설치하면 간편하게 설치가 완료!!

아니면 아래 사이트에서도 다운로드 받아 설치가 가능하다.

다운로드(http://sebastien.godard.pagesperso-orange.fr/download.html) 받아 설치.



사용옵션 정리

- 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가 쉬고있는 시간의 %



[명령어 살펴보기]


sar 5 2




5초 간격으로 2회 수행.



sar -b


버퍼의 activity를 점검하여 I/O와 transfer의 통계를 출력한다.



[위에 표시된 숫자의 의미는 아래를 참조.]

tps: 물리적 디스크에서 발생한 초당 전송량이며, 여기서의 전송은 물리적 디스크에 요청한 I/O이다.

rtps: 물리적 디스크로부터 발생된 초당 읽기의 총 요청 횟수

bread/s: 드라이브 안의 블럭에서 초당 읽은 데이터의 총합.

bwrth/s: 드라이브 안의 블록에서 초당 쓰여진 데이터의 총합



sar -B


페이징 통계를 출력.



[위에 표시된 숫자의 의미는 아래를 참조.]

pgpgin/s: 디스크로부터 초당 paged in된 page의 총 수

papgout/s: 디스크에 초당 paged out 된 page의 총 수



sar -w


새롭게 만들어져 활동하고 있는 프로세스를 출력한다.




sar -d


* DEV: network device의 결과로부터의 통계

 IFACE: Network Interface 이름

 rxpck/s: 초당 받은 패킷수

 txpck/s: 초당 전송한 패킷수

 rxbyt/s: 초당 받은 bytes

 txbyt/s: 초당 전송한 bytes

 rxcmp/s: 압축된 패킷을 초당 받은 수

 txcmp/s: 압축된 패킷을 초당 전송한 수

 rxmcst/s: 초당 받은 다중 패킷 수






sar -r


가용메모리 점검 및 메모리 공간의 통계를 출력한다.



kbmemfree : 사용가능한 총 메모리의 양(kbytes)

kbmemused : 사용중인 총 메모리의 양(kbytes), 커널에서 사용중인 메모리는 제외

%memused : 사용된 메모리의 %

kbbuffers : 커널에서 buffer 메모리로 총 사용된 메모리의 양 (kbytes)

kbcached : 커널에서 cache data 로 사용된 총 메모리의 양(kbytes)

kbcommit : 현재 작업을 위해 필요한 메모리의 총량(kbytes),메모리 부족이 발생하지 않기 위한 RAM/swap 사용량의 추정치  

%commit : 현재 작업을 위해 필요한 메모리 총량의 %, kernel은 보통 메모리를 overcommits하므로 일반적으로 100%를 넘을 것이다.








sar -R


메모리 통계.


frmpg/s : 시스템에서 초당 자유로워진 memory pages 의 양 페이지의 크기는 시스템 아키텍쳐에따라 달라지며 보통 4K / 8K 이다.

bufpg/s : 시스템에서 초당 buffer 에 추가적으로 더해진 memory pages 의 양  

campg/s : 시스템에서 초당 system에 의해 cache된 memory pages 의 양





[그외의 명령어 정리]


sar -S → 스왑 점검 및 공간의 통계를 출력한다.

sar -v → 커널테이블 & 파일에서 inode의 상태를 출력한다.

sar -w → 작업 생성과 시스템 switching활동 현황 출력

sar -W → swapping의 통계 출력 



[sar 설정하기]


- sa1은 매 10분마다 시스템 모니터링한 결과를 /var/log/sa/saXX파일에 바이너리 형태로 기록한다. XX는 기록하는 날짜이다.

- sa2 -A는 23시 53분에 바이너리 파일을 읽어서 사람들이 볼 수 있도록 보고서를 만든다. /var/log/sa/sarXX 형태로 기록된다. sa1에서 5 3이라고 해놓으면 매 10분마다 실행을 하면서 5초동안 3번을 기록한다는 뜻이다.

- sar를 이용하여 각 결과 값을 위에 설명한 옵션을 이용하여 확인하면 된다.


3. 마무리


지금까지 sar 에 대해서 살펴보았다. 시스템 관리를 하다보면, 부하가 언제부터 진행이 되었고, 현재 시스템에서 어떠한 곳에 부하가 많이 발생하는지 체크할수 있는 프로그램으로 좋을것 같다.

사용법도 어렵지 않고, 가볍게 사용할수 있으며,  각 프로세스의 사용률을 % 단위로 알수 있어서 좋은 점수를 주고 싶다.




작성자 : 서비님

dslee골벵이linux.co.kr




[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1842


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
서비님