Solución de problemas de memoria insuficiente de bases de datos Aurora MySQL - Amazon Aurora

Solución de problemas de memoria insuficiente de bases de datos Aurora MySQL

El parámetro de nivel de instancia aurora_oom_response de Aurora MySQL puede permitir que la instancia de base de datos monitoricela memoria del sistema y calcule la memoria consumida por diferentes declaraciones y conexiones. Si el sistema funciona con poca memoria, puede realizar una lista de acciones para intentar liberar dicha memoria. Lo hace en un intento de evitar un reinicio de la base de datos debido a problemas de falta de memoria (OOM). El parámetro de nivel de instancia toma una cadena de acciones separadas por comas que una instancia de base de datos realiza cuando el nivel de memoria es bajo. El parámetro aurora_oom_response se admite en las versiones 2 y 3 de Aurora MySQL.

Se pueden usar los siguientes valores y combinaciones de ellos para el parámetro aurora_oom_response. La existencia de una cadena vacía significa que no se ha tomado ninguna acción y desactiva de forma efectiva la característica, lo que hace que la base de datos sea propensa a que se reinicie debido a OOM.

  • decline: rechaza nuevas consultas una vez que la instancia de base de datos tiene poca memoria.

  • kill_connect: cierra las conexiones de bases de datos que consumen una gran cantidad de memoria y finaliza las transacciones actuales y las instrucciones del lenguaje de definición de datos (DDL). Esta respuesta no se admite en la versión 2 de Aurora MySQL.

    Para obtener más información, consulte KILL statement en la documentación de MySQL.

  • kill_query: finaliza las consultas en orden descendente de consumo de memoria hasta que la memoria de la instancia esté por encima del umbral bajo. Las instrucciones DDL no finalizan.

    Para obtener más información, consulte KILL statement en la documentación de MySQL.

  • print: solo imprime las consultas que consumen una gran cantidad de memoria.

  • tune: ajusta las cachés de tablas internas para liberar memoria en el sistema. Aurora MySQL reduce la memoria utilizada para cachés, por ejemplo, table_open_cache y table_definition_cache, en condiciones de poca memoria. Finalmente, Aurora MySQL restablece su uso de memoria a la normalidad cuando el sistema deja de tener poca memoria.

    Para obtener más información, consulte table_open_cache y table_definition_cache en la documentación de MySQL.

  • tune_buffer_pool: reduce el tamaño del grupo de búferes para liberar parte de la memoria y ponerla a disposición del servidor de base de datos para procesar las conexiones. Este respuestas se admite para la versión 3.06 y versiones posteriores de Aurora MySQL.

    Debe emparejar tune_buffer_pool con kill_query o kill_connect en el valor del parámetro aurora_oom_response. De lo contrario, no se redimensionará el grupo de búferes, ni siquiera si incluye tune_buffer_pool en el valor del parámetro.

En las versiones de Aurora MySQL anteriores a la 3.06, para las clases de instancias de base de datos con una memoria inferior o igual a 4 GiB, cuando a la instancia le falta memoria, las acciones predeterminadas incluyen print, tune, decline y kill_query. Para las clases de instancia de base de datos con memoria superior a 4 GiB, el valor del parámetro está vacío de manera predeterminada (deshabilitado).

En la versión 3.06 y posteriores de Aurora MySQL, para las clases de instancias de base de datos con una memoria inferior o igual a 4 GiB, Aurora MySQL también cierra las conexiones que consumen más memoria (kill_connect). Para las clases de instancia de base de datos con memoria superior a 4 GiB, el valor del parámetro es print de forma predeterminada.

En la versión 3.09 de Aurora MySQL y posteriores, para las clases de instancia de base de datos con memoria superior a 4 GiB, el valor del parámetro es print,decline,kill_connect de forma predeterminada.

Si se encuentra con frecuencia con problemas de falta de memoria, puede monitorear el uso de la memoria mediante tablas de resumen de memoria cuando performance_schema está habilitado.

Para ver las métricas de Amazon CloudWatch relacionadas con la OOM, consulte Métricas de nivel de instancia para Amazon Aurora. Para ver las variables de estado globales relacionadas con la OOM, consulte Variables de estado globales de Aurora MySQL.