Saltar al contenido

¿Cómo soluciono el uso excesivo de la CPU y el bajo rendimiento de las consultas después de actualizar mi instancia de base de datos de Aurora compatible con MySQL o Amazon RDS para MySQL?

4 minutos de lectura
0

Se realizó una actualización importante de la versión de mi Amazon Relational Database Service (Amazon RDS) para MySQL o una instancia de base de datos de Amazon Aurora compatible con MySQL. Ahora, el rendimiento de las consultas es lento y hay un uso elevado de la CPU.

Resolución

Requisitos previos:

Para evitar problemas de diagnóstico erróneo, estructura correctamente el flujo de trabajo de solución de problemas y utiliza las herramientas y los servicios de AWS. Para obtener más información, consulta los siguientes artículos:

Comprobar si hay problemas específicos de la actualización

Al actualizar una instancia, por ejemplo, de Aurora compatible con MySQL 5.7 a Aurora compatible con MySQL 8.0, la actualización puede eliminar ciertas características de la instancia.

Si tu instancia usa características obsoletas, es posible que tengas problemas con el rendimiento de la instancia. Para comprobar si la versión de tu instancia utiliza características obsoletas que afectan a tu carga de trabajo, consulta las Notas de la versión de la edición de Amazon Aurora compatible con MySQL. O consulta las MySQL 8.0 Release notes (Notas de la versión 8.0 de MySQL) en el sitio web de MySQL.

En el siguiente ejemplo, actualiza un clúster de la versión 5.7 de Aurora compatible con MySQL a la versión 8.0 de Aurora compatible con MySQL. Tras la actualización, la CPU de la instancia de escritura se duplica, aunque las consultas, los planes de ejecución y los patrones de carga de trabajo sean los mismos.

Para solucionar este problema, puedes revisar las métricas de tu clúster de Aurora compatible con MySQL o Amazon RDS para MySQL. En función del problema, compara las métricas relacionadas del clúster de la versión anterior con las de la versión actualizada.

Ejemplo de métricas de Aurora compatible con MySQL versión 5.7:

SHOW GLOBAL STATUS LIKE 'Qcache%';

Ejemplo de métricas de Aurora compatible con MySQL versión 8.0:

`mysql> SHOW STATUS LIKE 'Qcache%';`  
`+-------------------------+--------+`  
`| Variable_name | Value |`  
`+-------------------------+--------+`  
`| Qcache_free_blocks | 36 |`  
`| Qcache_free_memory | 138488 |`  
`| Qcache_hits | 79570 |`  
`| Qcache_inserts | 27087 |`  
`| Qcache_lowmem_prunes | 3114 |`  
`| Qcache_not_cached | 22989 |`  
`| Qcache_queries_in_cache | 415 |`  
`| Qcache_total_blocks | 912 |`  
`+-------------------------+--------+`

En este ejemplo, la versión 8.0 de Aurora compatible con MySQL eliminó una característica que servía consultas desde la caché para evitar ejecuciones completas. Sin esta característica, Aurora MySQL ejecuta por completo todas las consultas y duplica la carga de trabajo.

Si ves picos en la CPU de la instancia, revisa las siguientes métricas:

  • Consultas
  • Com_select
  • Innodb_rows_read

Para resolver problemas con estas métricas, completa las siguientes tareas:

Pasos de solución de problemas adicionales

Puedes comparar la versión anterior de los planes de ejecución con los planes de ejecución de la versión actualizada para solucionar mejor los problemas. Para comparar la configuración de los grupos de parámetros, utiliza la consulta EXPLAIN FORMAT=JSON. Las configuraciones críticas, como innodb_buffer_pool_size, deben ser las mismas en ambas versiones. Para obtener más información, consulta Configuring InnoDB Buffer Pool Size (Configuración del tamaño del grupo de búferes de InnoDB) y EXPLAIN Statement (Instrucción EXPLAIN) en el sitio web de MySQL.

Se recomienda utilizar la característica de clonación de Aurora para probar las actualizaciones en un entorno provisional. Puedes usar herramientas como Sysbench para simular cargas de trabajo en el entorno de preparación. A continuación, utiliza las herramientas de AWS, como AWS Database Insights y la supervisión mejorada, para supervisar las métricas clave.

OFICIAL DE AWSActualizada hace 9 meses