sar를 활용해서 시스템 모니터링을 해보자!
1. sar(Systecm Activity Reporter 이하 sar) 란?
- sar 는 리눅스에서 유용하게 쓰는 시스템 모니터링 프로그램입니다.
- 모니터링 대상이 상당히 넓은 편이며 기본값은 CPU 활동에 대한 통계를 출력합니다.
- 각종 활동에 대한 통계를 다른프로그램을 이용하여 파일로 저장하고 통계치를 리포팅 하는 기능을 제공합니다.
- sadc에서 생성한 daily activity 파일을 읽어서 보고서를 작성하기도 하고 시스템의 활동 상황을 수집 할 수도 있습니다.
2. sar 명령어로 모니터링 가능한 항목
- I/O 전송량
- 페이징
- 프로세스 생성 숫자
- 블락 디바이스 활동
- 인터럽트
- 네트워크 통계
- run 큐 및 시스템 부하 평균
- 메모리와 스왑 공간 활용 통계
- 메모리 통계
- CPU 이용도
- 특정 프로세스에 대한 CPU 이용도
- inode, 파일, 기타 커널 테이블에 대한 상태
- 시스템 스위칭 활동(context switch)
- 스와핑 통계
- 특정 프로세스 통계
- 특정 프로세스의 자식 프로세스 통계
- TTY 디바이스 활동
3. 설치
sar 툴은 sysstat 패키지를 설치하면 포함되어 있습니다
sysstat 이란?
리눅스 성능 측정 도구 패키지입니다. 해당 패키지에는 아래와 같은 성능 분석 툴을 제공합니다. sar을 사용하기 위해선 sysstat 설치해야 합니다.
sysstat 패키지는 다음을 포함하고 있습니다.
- sar : cpu, memory, network, diks io 등 지표를 수치화하며 파일로 저장.
- iostat : disk io에 지표 측정
- mpstat : cpu 지표 측정
- tapestat : tape 드라이버의 IO 지표 측정
- pidstat : 특정 프로세스의 CPU 및 스레드 정보 지표 측정
- cifsiostat : cifs 파일 시스템 지표 측정
설치 명령어
일반적으로 패키지 매니저를 통해서 쉽게 설치가 가능합니다.
$ sudo apt-get install sysstat
4. 실행
여러가지 sar를 활용한 명령어가 있지만, 간단하게 실시간으로 메모리와 CPU 사용을 확인하는 명령어를 작성해봅니다.
# -u는 CPU 사용율을 확인 합니다.
# 공통적으로 1의 뜻은 1초마다 갱신을 3은 3회를 의미 합니다.
$ sar -u 1 3
Linux 5.10.63-v8+ (raspberrypi) 2021년 12월 10일 _aarch64_ (4 CPU)
11시 09분 25초 CPU %user %nice %system %iowait %steal %idle
11시 09분 26초 all 2.27 0.00 1.01 0.00 0.00 96.73
11시 09분 27초 all 1.75 0.00 0.75 0.00 0.00 97.49
11시 09분 28초 all 2.24 0.00 0.75 0.00 0.00 97.01
평균값: all 2.09 0.00 0.83 0.00 0.00 97.08
# -q는 Load Average를 확인 합니다. 실행 큐에 쌓여 있는 프로세스 수, 시스템 상의 프로세스 사이즈, Load Average 등을 참조 할 수 있습니다.
$ sar -q 1 3
Linux 5.10.63-v8+ (raspberrypi) 2021년 12월 10일 _aarch64_ (4 CPU)
11시 10분 07초 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11시 10분 08초 0 697 0.00 0.00 0.00 0
11시 10분 09초 0 697 0.00 0.00 0.00 0
11시 10분 10초 0 697 0.00 0.00 0.00 0
평균값: 0 697 0.00 0.00 0.00 0
# -r은 메모리 사용 현황 확인
$ sar -r 1 3
Linux 5.10.63-v8+ (raspberrypi) 2021년 12월 10일 _aarch64_ (4 CPU)
11시 12분 54초 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
11시 12분 55초 1494172 4980124 2479504 31.72 452392 2869548 8294984 104.75 1814580 3887664 8
11시 12분 56초 1493668 4979620 2479484 31.72 452392 2870064 8295500 104.75 1814580 3887660 8
11시 12분 57초 1493668 4979620 2479480 31.72 452392 2870060 8295496 104.75 1814580 3887660 8
평균값: 1493836 4979788 2479489 31.72 452392 2869891 8295327 104.75 1814580 3887661 8
# -W은 스왑 발생상황 확인
$ sar -W 1 3
Linux 5.10.63-v8+ (raspberrypi) 2021년 12월 10일 _aarch64_ (4 CPU)
11시 13분 06초 pswpin/s pswpout/s
11시 13분 07초 0.00 0.00
11시 13분 08초 0.00 0.00
11시 13분 09초 0.00 0.00
평균값: 0.00 0.00
더 많은 옵션은 아래 참고자료를 확인해주세요. :)