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

더 많은 옵션은 아래 참고자료를 확인해주세요. :)

참고 자료

Posted by lahuman

댓글을 달아 주세요