¿Cómo puedo ver la actividad del servidor de una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que está ejecutando MySQL?
Resolución
Puede utilizar la actividad del servidor para ayudar a identificar el origen de los problemas de rendimiento. Puede revisar el estado del motor de almacenamiento InnoDB, identificar las consultas en ejecución o encontrar interbloqueos en la instancia de base de datos.
Debe tener privilegios de administración del servidor PROCESS de MySQL para ver todos los subprocesos que se ejecutan en una instancia de base de datos MySQL. Si no tiene privilegios de administrador, SHOW PROCESSLIST muestra solo los hilos asociados a la cuenta de MySQL que está utilizando. También debe tener privilegios de administrador del servidor PROCESS de MySQL para usar SHOW ENGINE. Además, necesita privilegios de administrador del servidor MYSQL PROCESS para ver información sobre el estado del motor de almacenamiento InnoDB.
Para ver la actividad del servidor de una instancia de base de datos, siga estos pasos:
1. Active los registros de consultas generales y lentas de su instancia de base de datos MySQL.
2. Conéctese a la instancia de base de datos que ejecuta el motor de base de datos MySQL.
3. Ejecute estos comandos:
SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G
Nota: Para ver más de los 100 primeros caracteres de cada instrucción, utilice la palabra clave FULL.
4. Compruebe qué transacciones están en espera y qué transacciones bloquean las transacciones que están en espera. Ejecute uno de estos comandos según la versión de Amazon RDS para MySQL que esté ejecutando:
Para las versiones 5.6 y 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;
Para la versión 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,
Nota: Se recomienda recopilar estos resultados en intervalos cortos y consecutivos (por ejemplo, 60 segundos). La revisión de múltiples salidas puede proporcionar una visión más amplia del estado del motor. Esto le ayuda a solucionar problemas de rendimiento.
Información relacionada
Supervisión de métricas en una instancia de Amazon RDS