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
ytable_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
conkill_query
okill_connect
en el valor del parámetroaurora_oom_response
. De lo contrario, no se redimensionará el grupo de búferes, ni siquiera si incluyetune_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 memoriaperformance_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.