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_cacheytable_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_poolconkill_queryokill_connecten el valor del parámetroaurora_oom_response. De lo contrario, no se redimensionará el grupo de búferes, ni siquiera si incluyetune_buffer_poolen 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.