Amazon RDS for MySQL DB 인스턴스에 대한 서버 활동을 보려면 어떻게 해야 합니까?

2분 분량
0

Amazon Relational Database Service(Amazon RDS) DB 인스턴스에서 MySQL을 실행 중인 서버 활동을 보려면 어떻게 해야 합니까?

해결 방법

서버 활동을 사용하여 성능 문제의 원인을 식별할 수 있습니다. InnoDB 스토리지 엔진의 상태를 검토하고, 실행 중인 쿼리를 식별하거나, DB 인스턴스에서 교착 상태를 찾을 수 있습니다.

MySQL DB 인스턴스에서 실행 중인 모든 스레드를 보려면 MySQL PROCESS 서버 관리자 권한이 있어야 합니다. 관리자 권한이 없으면 SHOW PROCESSLIST에 현재 사용 중인 MySQL 계정과 관련된 스레드만 표시됩니다. SHOW ENGINE을 사용하려면 MySQL PROCESS 서버 관리자 권한도 있어야 합니다. 또한 InnoDB 스토리지 엔진의 상태에 대한 정보를 보려면 MYSQL PROCESS 서버 관리자 권한이 필요합니다.

DB 인스턴스에 대한 서버 활동을 보려면 다음 단계를 따릅니다.

1.    MySQL DB 인스턴스에 대해 일반 쿼리 로그와 느린 쿼리 로그를 활성화합니다.

2.    MySQL 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결합니다.

3.    다음 명령을 실행합니다.

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

참고: 각 명령문의 처음 100자 이상을 보려면 FULL 키워드를 사용하세요.

4.    대기 중인 트랜잭션과 그 트랜잭션을 차단 중인 트랜잭션을 확인합니다. 실행 중인 Amazon RDS for MySQL 버전에 따라 다음 명령 중 하나를 실행합니다.

5.6 및 5.7 버전의 경우:

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

8.0 버전의 경우

ON r.trx_id = w.requesting_engine_transaction_id;INNER JOIN information_schema.innodb_trx r
ON b.trx_id = w.blocking_engine_transaction_id
INNER JOIN information_schema.innodb_trx b
FROM performance_schema.data_lock_waits w
b.trx_query blocking_query
b.trx_mysql_thread_id blocking_thread,
b.trx_id blocking_trx_id,
r.trx_query waiting_query,
r.trx_mysql_thread_id waiting_thread,
r.trx_id waiting_trx_id,

참고: 모범 사례는 짧고 연속적인 간격(예: 60초)으로 이러한 출력을 수집하는 것입니다. 여러 출력을 검토하면 엔진 상태를 더 광범위하게 볼 수 있습니다. 이렇게 하면 성능 문제를 해결하는 데 도움이 됩니다.


관련 정보

Amazon RDS 인스턴스의 지표 모니터링