OS 모니터링 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

OS 모니터링

MySQL 또는 MariaDB용 Amazon RDS의 DB 인스턴스는 CPU, 메모리, 네트워크 및 스토리지와 같은 기본 시스템 리소스를 사용하는 Linux 운영 체제에서 실행됩니다.

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

데이터베이스와 기본 운영 체제의 전체 성능은 시스템 리소스 사용률에 크게 좌우됩니다. 예를 들어, CPU는 데이터베이스 소프트웨어 명령을 실행하고 다른 시스템 리소스를 관리하기 때문에 시스템 성능의 핵심 구성 요소입니다. CPU가 과도하게 사용되는 경우 (즉, 부하가 DB 인스턴스에 프로비저닝된 것보다 더 많은 CPU 전력을 필요로 하는 경우), 이 문제는 데이터베이스의 성능과 안정성에 영향을 미치고 결과적으로 애플리케이션의 안정성에 영향을 미칠 수 있습니다.

데이터베이스 엔진은 메모리를 동적으로 할당하고 비웁니다. RAM에 메모리가 부족하여 현재 작업을 수행할 수 없는 경우 시스템은 디스크에 있는 스왑 메모리에 메모리 페이지를 기록합니다. 디스크가 메모리보다 훨씬 느리기 때문에 SSD NVMe 기술을 기반으로 하는 디스크라도 과도한 메모리 할당은 성능 저하로 이어집니다. 메모리 사용률이 높으면 페이지 파일 크기가 커져 추가 메모리를 지원할 수 있으므로 데이터베이스 응답 지연 시간이 늘어납니다. 메모리 할당이 너무 높아서 RAM과 스왑 메모리 공간이 모두 고갈되면 데이터베이스 서비스를 사용할 수 없게 되고 사용자에게 다음과 같은 오류가 발생할 수 있습니다.[ERROR] mysqld: Out of memory (Needed xyz bytes).

MySQL 및 MariaDB 데이터베이스 관리 시스템은 저장 디스크로 구성된 스토리지 하위 시스템을 활용합니다.온디스크 구조예: 테이블, 인덱스, 바이너리 로그, 리두 로그, 실행 취소 로그 및 이중 쓰기 버퍼 파일 따라서 데이터베이스는 다른 유형의 소프트웨어와 달리 많은 디스크 작업을 수행해야 합니다. 데이터베이스를 최적으로 운영하려면 디스크 I/O 사용률과 디스크 공간 할당을 모니터링하고 조정해야 합니다. 데이터베이스가 디스크에서 지원하는 최대 IOPS 또는 처리량의 한계에 도달하면 데이터베이스 성능이 영향을 받을 수 있습니다. 예를 들어 인덱스 스캔으로 인한 랜덤 액세스가 급증하면 초당 많은 I/O 작업이 발생하여 결국 기본 스토리지의 한계에 부딪힐 수 있습니다. 전체 테이블 스캔은 IOPS 한도에 도달하지 못할 수도 있지만 초당 메가바이트 단위로 측정되는 높은 처리량을 초래할 수 있습니다. 다음과 같은 오류가 발생하기 때문에 디스크 공간 할당을 모니터링하고 경고를 생성하는 것이 중요합니다.OS error code 28: No space left on device데이터베이스를 사용할 수 없게 되거나 손상될 수 있습니다.

Amazon RDS는 DB 인스턴스가 실행되는 운영 체제에 대한 지표를 실시간으로 제공합니다. Amazon RDS는 하나의 OS 지표 세트를 자동으로 다음 위치에 게시합니다.CloudWatch. 이러한 지표는 Amazon RDS 콘솔에서 표시 및 분석할 수 있으며CloudWatch대시보드 및 에서 선택한 지표에 대해 경보를 설정할 수 있습니다.CloudWatch. 예:

  • CPUUtilization— CPU 사용률의 백분율입니다.

  • BinLogDiskUsage— 바이너리 로그가 차지하는 디스크 공간의 양.

  • FreeableMemory— 사용 가능한 랜덤 액세스 메모리의 양. 이것은 의 가치를 나타냅니다.MemAvailable필드 오브/proc/meminfo.

  • ReadIOPS— 초당 평균 디스크 읽기 I/O 작업 수입니다.

  • WriteThroughput— 로컬 스토리지의 초당 디스크에 기록되는 평균 바이트 수입니다.

  • NetworkTransmitThroughput— DB 노드에서 나가는 네트워크 트래픽으로, 모니터링 및 복제에 사용되는 Amazon RDS 트래픽과 데이터베이스 트래픽을 결합합니다.

Amazon RDS에서 게시하는 모든 지표에 대한 전체 참조CloudWatch, 참조아마존CloudWatch아마존 RDS용 지표아마존 RDS 설명서에서 확인할 수 있습니다.

다음 차트는 다음과 같은 예를 보여줍니다.CloudWatchAmazon RDS 콘솔에 표시되는 Amazon RDS에 대한 메트릭입니다.

CloudWatchAmazon RDS 콘솔에 표시된 Amazon RDS에 대한 지표

다음 차트는 다음과 같은 유사한 메트릭을 보여줍니다.CloudWatch계기판.

CloudWatch에 표시된 Amazon RDS에 대한 지표CloudWatch콘솔

다른 OS 지표 집합은 다음에 의해 수집됩니다.향상된 모니터링아마존 RDS용. 이 도구를 사용하면 실시간 시스템 지표 및 OS 프로세스 정보를 제공하여 MariaDB용 Amazon RDS 및 MySQL DB 인스턴스용 Amazon RDS의 상태를 보다 심층적으로 파악할 수 있습니다. 당신이향상된 모니터링 활성화이 도구는 DB 인스턴스에서 원하는 세분성을 설정하면 운영 체제 지표 및 프로세스 정보를 수집하며, 사용자는 이를 보고 보고 분석할 수 있습니다.아마존 RDS 콘솔, 다음 화면과 같습니다.

향상된 모니터링을 통해 수집된 OS 지표

향상된 모니터링에서 제공하는 몇 가지 주요 지표는 다음과 같습니다.

  • cpuUtilization.total— 사용 중인 CPU의 총 비율입니다.

  • cpuUtilization.user— 사용자 프로그램에서 사용 중인 CPU의 비율입니다.

  • memory.active— 할당된 메모리의 양 (KB 단위).

  • memory.cached— 파일 시스템 기반 I/O를 캐싱하는 데 사용되는 메모리의 양입니다.

  • loadAverageMinute.one— 마지막 1분 동안 CPU 시간을 요청한 프로세스 수입니다.

전체 지표 목록은 을 참조하십시오.향상된 모니터링의 OS 지표아마존 RDS 설명서에서 확인할 수 있습니다.

Amazon RDS 콘솔의 OS 프로세스 목록은 DB 인스턴스에서 실행 중인 각 프로세스에 대한 세부 정보를 제공합니다. 목록은 세 개의 섹션으로 구성되어 있습니다.

  • OS 프로세스‒ 이 섹션은 모든 커널 및 시스템 프로세스를 집계하여 요약한 것입니다. 이러한 프로세스는 일반적으로 데이터베이스 성능에 미치는 영향이 미미합니다.

  • RDS 프로세스— 이 섹션은 다음 항목의 요약을 나타냅니다.AWSAmazon RDS DB 인스턴스를 지원하는 데 필요한 프로세스입니다. 예를 들어, 여기에는 Amazon RDS 관리 에이전트, 모니터링 및 진단 프로세스 및 유사한 프로세스가 포함됩니다.

  • RDS 하위 프로세스— 이 섹션은 DB 인스턴스를 지원하는 Amazon RDS 프로세스를 요약한 것입니다. 이 경우에는mysqld프로세스 및 스레드. 더mysqld스레드는 부모 아래에 중첩되어 나타납니다.mysqld프로세스.

다음 화면 그림은 Amazon RDS 콘솔의 OS 프로세스 목록을 보여줍니다.

아마존 RDS 콘솔의 OS 프로세스 목록

Amazon RDS는 향상된 모니터링의 지표를 사용자에게 제공합니다.CloudWatch로그 계정. Amazon RDS 콘솔에 표시되는 모니터링 데이터는 다음에서 검색됩니다.CloudWatch로그. 당신도 할 수 있습니다DB 인스턴스의 메트릭을 로그 스트림으로 검색...에서CloudWatch로그. 이러한 지표는 JSON 형식으로 저장됩니다. 에서 향상된 모니터링 JSON 출력을 사용할 수 있습니다.CloudWatch선택한 모니터링 시스템에 로그인합니다.

그래프를 표시하려면CloudWatch대시보드 및 측정 단위가 정의된 임계값을 위반할 경우 작업을 시작하는 경보 생성 시 측정 단위 필터를 생성해야 합니다.CloudWatch...에서CloudWatch로그. 자세한 지침은 다음을 참조하십시오.AWS re:POST 기사향상된 모니터링을 필터링하는 방법CloudWatchAmazon RDS에 대한 자동화된 사용자 지정 지표를 생성하기 위한 로그입니다.

다음 예는 사용자 지정 지표를 보여줍니다.CPU.User에서Custom/RDS네임스페이스. 이 사용자 지정 지표는 필터링하여 생성됩니다.cpuUtilization.user향상된 모니터링 지표 출처CloudWatch로그.

CPU. 사용자 지정 지표

에서 메트릭을 사용할 수 있는 경우CloudWatch저장소에서 표시하고 분석할 수 있습니다.CloudWatch대시보드를 사용하여 추가 수학 및 쿼리 작업을 적용하고 이 특정 지표를 모니터링하고 관찰된 값이 정의된 경보 조건과 일치하지 않을 경우 경보를 생성하도록 경보를 설정합니다.