RDS for MySQL의 글로벌 상태 기록 관리
작은 정보
데이터베이스 성능을 분석하고자 Amazon RDS의 성능 개선 도우미를 사용할 수도 있습니다. 자세한 내용은 성능 개선 도우미를 통한 Amazon RDS 모니터링 단원을 참조하십시오.
MySQL은 작업 관련 정보를 알 수 있는 다수의 상태 변수를 유지하고 있습니다. 이 변수 값은 DB 인스턴스에서 잠금 또는 메모리 문제를 파악하는 데 효과적입니다. DB 인스턴스를 마지막으로 시작한 때부터 계속해서 누적되기 때문입니다. 대부분 상태 변수는 FLUSH STATUS
명령을 사용해 0으로 재설정할 수 있습니다.
Amazon RDS는 시간이 지나면서 이 변수 값의 스냅샷을 캡처하거나, 마지막 스냅샷 이후 모든 변경 사항과 함께 변수 값을 테이블에 기록하는 등 시간 경과에 따른 상태 변수 값을 모니터링할 수 있는 프로시저를 지원합니다. 이러한 인프라를 전역적 상태 이력(GoSH)이라고 부릅니다. GoSH는 버전 5.5.23부터 모든 MySQL DB 인스턴스에 설치되기 시작했지만 기본적으로 비활성화되어 있습니다.
GoSH를 활성화하려면 먼저 파라미터 event_scheduler
를 ON
으로 설정하여 DB 파라미터 그룹의 이벤트 스케줄러를 활성화해야 합니다. 또한 MySQL 5.7을 실행하는 MySQL DB 인스턴스의 경우 show_compatibility_56
파라미터를 1
에 설정해야 합니다. DB 파라미터 그룹의 생성 및 변경에 대한 자세한 내용은 Amazon RDS의 파라미터 그룹 단원을 참조하십시오. 이 파라미터를 활성화할 때 생기는 부작용에 관한 내용은 MySQL 5.7 참조 설명서에 나온 show_compatibility_56
그런 다음 아래 표의 프로시저에 따라 GoSH를 활성화 및 구성할 수 있습니다. 먼저 MySQL DB 인스턴스에 연결한 후 다음과 같이 해당 명령을 실행합니다. 자세한 내용은 MySQL DB 인스턴스에 연결 단원을 참조하십시오. 각 절차에 대해 다음 명령을 실행하고 procedure-name
을 바꿉니다.
CALL
procedure-name
;
다음 표에는 이전 명령에서 procedure-name
에 사용할 수 있는 모든 절차가 나열되어 있습니다.
프로시저 | 설명 |
---|---|
|
|
|
스냅샷 캡처 주기(분)를 지정합니다. 기본 값은 5입니다. |
|
스냅샷을 비활성화합니다. |
|
필요할 경우에만 스냅샷을 캡처합니다. |
|
|
|
테이블 로테이션 주기(일)를 지정합니다. 기본 값은 7입니다. |
|
테이블 로테이션을 비활성화합니다. |
|
필요에 따라 |
GoSH가 활성화되어 있을 때는 쓰기가 가능한 테이블에 쿼리를 요청할 수 있습니다. 예를 들어 Innodb 버퍼 풀의 적중률에 대한 쿼리를 요청하려면 다음과 같이 쿼리를 실행합니다.
select a.collection_end, a.collection_start, (( a.variable_Delta-b.variable_delta)/a.variable_delta)*100 as "HitRatio" from mysql.rds_global_status_history as a join mysql.rds_global_status_history as b on a.collection_end = b.collection_end where a. variable_name = 'Innodb_buffer_pool_read_requests' and b.variable_name = 'Innodb_buffer_pool_reads'