SAR을 구성하고 사용하여 Amazon EC2 Linux 인스턴스의 성능 지표를 모니터링하려면 어떻게 해야 합니까?

6분 분량
0

시스템 활동 리포터(SAR)를 구성하고 SAR 명령을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스 성능 지표를 모니터링하려고 합니다.

간략한 설명

SAR 모니터링 도구를 사용하여 CPU, 메모리 및 I/O 사용량에 대한 성능 데이터를 수집하고 과거 지표를 수집하도록 SAR을 구성합니다.

참고: SAR은 sysstat 패키지의 일부이지만 최신 Linux 배포판에서는 기본적으로 이 도구를 사용하지 못할 수 있습니다. 자세한 내용은 Amazon Linux, RHEL, CentOS 또는 Ubuntu를 구동하는 EC2 인스턴스를 위한 ATOP 모니터링 및 SAR 모니터링 도구를 구성하려면 어떻게 해야 합니까?를 참조하십시오.

해결 방법

구성 파일 보기 및 편집

구성 파일에는 SAR 활동을 제어하는 몇 가지 기본값이 포함되어 있습니다. 이러한 값을 검토하거나 편집하려면 /etc/sysconfig/sysstat 구성 파일을 여십시오.

  • HISTORY=28 - 이 파라미터는 SAR이 성능 로그 파일을 보관하는 기간(일)을 결정합니다. 기본값은 28일입니다.
  • COMPRESSAFTER=31 - 이 파라미터는 SAR이 파일을 압축하기 전에 대기하는 기간(일)을 결정합니다. 기본값은 31일입니다.
    참고: 로그 파일을 28일보다 오래 보관하도록 구성 파일을 설정한 경우 SAR은 각 달의 파일을 별도의 디렉터리에 보관합니다.
  • SA_DIR=/var/log/sa - 이 파라미터는 SAR이 로그 파일을 저장하는 위치를 결정합니다.
  • ZIP="bzip2" - 이 파라미터는 압축된 로그 파일을 포함할 기본 zip 파일을 결정합니다. 파일을 31일 이상 보관하는 경우 압축을 활성화해야 합니다.

시스템 활동 데이터 수집기(sadc) 작업은 데이터 수집을 수행합니다. 자세한 내용은 Archlinux 웹 사이트에서 SADC(8)를 참조하십시오. 수집된 데이터는 텍스트 형식으로 /var/log/sa/ 디렉터리의 sar## 파일에 저장됩니다.

sadc 작업은 다음과 같은 구성 요소로 구성됩니다.

  • sa1 - 일일 시스템 활동 데이터 파일에 바이너리 데이터를 수집하고 저장합니다.
  • sa2 - /var/log/sa 디렉터리에 일일 보고서를 작성합니다.

/var/log/sa/ 디렉터리에는 다음과 같은 두 가지 유형의 파일이 들어 있습니다.

  • sa## - 시스템 활동 바이너리 데이터 파일.
  • sar## - 시스템 활동 텍스트 파일.

**참고:**sasar 파일 이름의 해시태그 문자는 해당 월의 날짜를 나타냅니다. 자세한 내용은 Archlinux 웹 사이트에서 Files를 참조하십시오.

파티션 및 파일 시스템 통계와 같이 디스크 통계 이외의 데이터도 수집할 수 있습니다.

sadc 작업이 수집하는 데이터를 변경하려면 다음 단계를 완료하십시오.

  1. vi 텍스트 편집기를 사용하여 /etc/sysconfig/sysstat 파일에 액세스하려면 다음 명령을 실행합니다.

    vi /etc/sysconfig/sysstat
  2. SADC_OPTIONS-S Disk에서 -S XALL로 변경하려면 다음 명령을 실행합니다.

    SADC_OPTIONS=" -S XALL"

데이터 수집 간격 설정

Amazon Linux 1 및 Amazon Linux 2

SAR 유틸리티가 데이터를 생성하기 위해 crontab에서 실행하는 스크립트를 보려면 다음 명령을 실행합니다.

cat /etc/cron.d/sysstat

cron은 기본적으로 10분마다 실행되기 때문에 SAR은 10분마다 데이터를 생성합니다. SAR이 더 짧거나 더 긴 간격으로 데이터를 생성하도록 하려면 이 시간 값을 편집하십시오. 다음 예제 명령은 10분마다 데이터가 생성되도록 설정된 crontab 파일을 보여줍니다.

*/10 * * * * root /usr/lib64/sa/sa1 1 1

1분에 한 번 또는 5분마다 실행되도록 cron을 변경하는 것이 모범 사례입니다. 시간 값을 더 짧은 간격으로 변경하면 관찰 가능한 스파이크가 발생하는 경우가 나타날 수 있습니다.

간격을 변경하려면 다음 단계를 완료하십시오.

  1. /etc/cron.d/sysstat 파일에 액세스하려면 다음 명령을 실행합니다.

    vim /etc/cron.d/sysstat
  2. 시간을 10분에서 5분으로 변경하려면 다음 명령을 실행합니다.

    @reboot /usr/lib64/sa/sa1 --boot
    */5 * * * * root /usr/lib64/sa/sa1 1 1

    참고: 위의 예제 명령에서 @reboot 줄은 OS가 재부팅될 때 카운터를 재설정합니다.

Amazon Linux 2023

단위 파일을 편집하고 드롭인 파일 /etc/systemd/system/sysstat-collect.timer.d/override.conf를 생성하려면 다음 명령을 실행합니다.

# systemctl edit sysstat-collect.timer

항목을 추가하려면 다음 명령을 실행합니다.

### Editing /etc/systemd/system/sysstat-collect.timer.d/override.conf
### Anything between here and the comment below will become the new contents of the file

[Unit]
Description=Run system activity accounting tool every 1 minute

[Timer]
OnCalendar=
OnCalendar=*:00/1

### Lines below this comment will be discarded

이전 명령에서 빈 "OnCalendar=" 줄은 이전 설정을 제거한 다음 새 설정을 만듭니다.

변경 사항을 다시 로드하려면 다음 systemctl daemon-reload 명령을 실행합니다.

# systemctl daemon-reload

타이머의 상태를 확인하려면 다음 명령을 실행합니다.

# systemctl status sysstat-collect.timer
sysstat-collect.timer - Run system activity accounting tool every 1 minute
     Loaded: loaded (/usr/lib/systemd/system/sysstat-collect.timer; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/sysstat-collect.timer.d
             └─override.conf
     Active: active (running) since Thu 2023-07-20 08:49:55 UTC; 18s ago
      Until: Thu 2023-07-20 08:49:55 UTC; 18s ago
    Trigger: n/a
   Triggers: ● sysstat-collect.service

성능 보고서 생성

CPU 사용량 보고서

CPU 사용량 데이터 보고서를 생성하려면 sar 명령을 사용합니다. 다음 예제 명령은 2초마다 5번씩 사용량 데이터 보고서를 생성합니다.

sar 2 5 -P 0

참고: 위 명령에서 -P는 개별 CPU 또는 코어를 나타냅니다. 통계를 생성하려는 CPU 또는 코어를 나타내는 숫자를 입력합니다. 예를 들어 1, 2 또는 3입니다. 또는 모든 CPU의 통계를 표시하려면 -P ALL 명령을 사용합니다.

메모리 통계 보고서

메모리 통계 보고서를 생성하려면 -r 옵션을 사용합니다. 다음 예제 명령은 2초마다 5번씩 메모리 통계를 생성합니다.

sar -r 2 5

블록 디바이스 통계 보고서

블록 디바이스 통계 보고서를 생성하려면 -d 옵션을 사용합니다. 다음 예제 명령은 2초마다 5번씩 블록 디바이스 통계를 생성합니다. 다음 예제에서 -p 옵션은 /dev에 표시되는 디바이스 이름을 표시합니다.

sar -d -p 2 5

네트워크 통계 보고서

네트워크 통계 보고서를 생성하려면 -n 옵션을 사용합니다. 다음 예제 명령은 특정 엔터티에 대한 통계를 생성합니다.

sar -n TCP 2 5
sar -n UDP 2 5
sar -n ALL 2 5

참고: 위의 명령은 TCP, UDP, NFS(네트워크 파일 시스템) 또는 모두에 대한 통계를 생성할 수 있습니다.

최신 로그 파일 읽기

/var/log의 최신 로그 파일에서 세부 정보를 추출하려면 sar 명령을 실행합니다. 다음 명령은 -f 옵션을 사용하여 전체 파일을 읽습니다.

sar -f /var/log/sa

특정 날짜의 로그 세부 정보 추출

로그 파일은 매일 저장됩니다. 특정 날짜의 세부 정보를 추출하려면 해당 날짜의 관련 sa 파일에 -f 옵션을 사용합니다. 다음 명령은 해당 월의 12일에 생성된 데이터를 포함한 로그 파일의 모든 데이터를 표시합니다.

sar -f /var/log/sa/sa12

로그 파일에서 특정 통계 읽기

메모리 통계

모든 메모리 통계를 읽으려면 -r 옵션을 사용합니다. 다음 예제 명령은 해당 월의 12일에 생성된 로그 파일의 모든 메모리 통계를 표시합니다.

sar -f /var/log/sa/sa12 -r

I/O 활동

결합된 모든 I/O 작업을 표시하려면 -b 옵션을 사용합니다. 다음 예제 명령은 해당 월의 12일에 생성된 로그 파일의 모든 I/O 활동을 표시합니다.

sar -f /var/log/sa/sa12 -b

블록 디바이스 통계

블록 디바이스 통계를 표시하려면 -dp 옵션을 사용합니다. 다음 예제 명령은 해당 월의 12일에 생성된 로그 파일의 블록 디바이스 통계를 표시합니다.

sar -f /var/log/sa/sa12 -dp

네트워크 통계

네트워크 통계를 표시하려면 -n 옵션을 사용합니다. 다음 예제 명령은 해당 월의 12일에 생성된 로그 파일의 모든 네트워크 통계를 표시합니다.

sar -f /var/log/sa/sa12 -n ALL

CPU 통계

CPU 통계를 표시하려면 -P 옵션을 사용합니다. 다음 예제 명령은 CPU 0에 대한 CPU 통계를 표시합니다.

sar -f /var/log/sa/sa12 -P 0

특정 기간의 통계 보기

시작 시간과 종료 시간을 선택하려면 -s-e 옵션을 사용합니다. 시간은 24시간 형식으로 입력해야 합니다. 기본 종료 시간은 18:00입니다. 다음 예제 명령은 해당 월의 30일 오전 2시에서 오후 5시 사이에 생성된 로그 파일의 블록 디바이스 통계를 표시합니다.

sar -f /var/log/sa/sa30 -dp -s 02:00:00 -e 05:00:00

관련 정보

Linux 웹 사이트의 sar(1) -Linux 매뉴얼 페이지

AWS 공식
AWS 공식업데이트됨 8달 전