Directrices operativas para instancias de MySQL

En esta página se explican las configuraciones controladas por el usuario que causan que una instancia de Segunda generación de Cloud SQL para MySQL deje de estar cubierta por el acuerdo de nivel de servicio de Cloud SQL.

Introducción

Cloud SQL intenta que tengas todo el control posible sobre la configuración de las instancias. Esto incluye algunas configuraciones que aumentan el riesgo de periodos inactivos de las instancias, según la carga y otros parámetros de configuración. Si la instancia deja de funcionar y Cloud SQL determina que no cumplía con los límites operativos descritos en esta página, el acuerdo de nivel de servicio de Cloud SQL no cubrirá ese periodo de inactividad.

La finalidad de esta lista de límites operativos es informarte sobre qué configuraciones presentan estos riesgos, cómo puedes pasarte a una de estas configuraciones sin darte cuenta, así como maneras de reducir los riesgos cuando el entorno empresarial te obliga a usar una de estas configuraciones.

Configuraciones excluidas

Las configuraciones que quedan excluidas se clasifican en las categorías siguientes:

  • Requisitos generales de configuración
  • Valores de marcas de base de datos
  • Restricciones de recursos

Requisitos generales de configuración

El acuerdo de nivel de servicio cubre solo las instancias de Cloud SQL for MySQL configuradas para alta disponibilidad con al menos una CPU dedicada. Las instancias de PostgreSQL, las instancias de núcleos compartidos y las instancias de zona única.

Valores de marcas de base de datos

Cloud SQL proporciona la capacidad de configurar la instancia mediante marcas de base de datos. Se pueden definir algunas de estas marcas de maneras que pueden poner en riesgo la estabilidad, la instancia o la durabilidad de sus datos.

En la tabla siguiente se indican las marcas con valores que provocan exclusiones del acuerdo de nivel de servicio:

Marca Descripción Configuración excluida Posibles impactos Mitigación
general_log Habilita el registro general de MySQL. Activado, con la marca log_output en TABLE Reinicios lentos. Establecer la marca log_output en FILE
slow_query_log Habilita el registro de consultas lento de MySQL. Activado, con la marca log_output en TABLE Reinicios lentos. Establecer la marca log_output en FILE
max_heap_table_size Determina el tamaño de la tabla de memoria. Mayor que el valor predeterminado. Interrupción de la instancia por quedarse sin memoria (error OOM). Conservar la configuración predeterminada.
temp_table_size Determina el tamaño de la tabla temporal. Mayor que el valor predeterminado. Interrupción de la instancia por quedarse sin memoria (error OOM). Conservar la configuración predeterminada o planificar con cuidado la carga de trabajo para evitar superar la capacidad de la instancia.
query_cache_size y query_cache_type Juntas, estas marcas determinan el tamaño de la caché de consulta. Mayor que el valor predeterminado. Interrupción de la instancia por quedarse sin memoria (error OOM). Conservar la configuración predeterminada o planificar con cuidado la carga de trabajo para evitar superar la capacidad de la instancia.

Restricciones de recursos

Deben evitarse las siguientes restricciones de recursos para conservar la cobertura del acuerdo de nivel de servicio:

Restricción Descripción Detección Solución Prevención
Espacio de almacenamiento lleno Si tu instancia se queda sin almacenamiento y no se habilita el aumento automático de este, la instancia se desconecta y el acuerdo de nivel de servicio no cubre esta interrupción. Puedes ver la cantidad de almacenamiento que la instancia utiliza en la página de detalles de la instancia en la consola de GCP. Más información

Para supervisar el uso del almacenamiento y recibir alertas cuando se llegue a un umbral determinado, configura una alerta de Stackdriver. Más información

Aumente la capacidad de almacenamiento de la instancia. Ten en cuenta que se puede aumentar la capacidad de almacenamiento, pero no disminuirla. Habilite el aumento automático del almacenamiento de la instancia. Más información
CPU sobrecargada Si el uso de la CPU supera el 98% durante 6 horas, está claro que el tamaño de la instancia no es el adecuado para la carga de trabajo y, por tanto, el acuerdo de nivel de servicio no cubre esta situación. Puedes ver el porcentaje de CPU disponible que la instancia utiliza en la página de detalles de la instancia en la consola de GCP. Más información

Para supervisar el uso de la CPU y recibir alertas cuando se llegue a un umbral determinado, configura una alerta de Stackdriver. Más información

Aumenta el número de CPU de la instancia. Ten en cuenta que cambiar el nivel requiere reiniciar la instancia.

Si la instancia ya tiene el número máximo de CPU, tendrás que fragmentar la base de datos en varias instancias.

Supervisa el uso de CPU y auméntalo cuando sea necesario. Ten en cuenta que cambiar el nivel requiere un reinicio.
Retraso de replicación exagerado El periodo inactivo de conmutación por error provocado por un retraso de replicación mayor de 1200 segundos no está cubierto en el acuerdo de nivel de servicio de la instancia. Puedes supervisar el intervalo de replicación mediante la métrica Seconds Behind Master en la réplica de conmutación por error. Limita la carga entrante en el maestro o fragmenta la base de datos. Crea una alerta para el retraso de replicación y actúa según sea necesario. Más información
Demasiadas tablas de base de datos Si tienes 10 000 o más tablas de bases de datos en una sola instancia, podría provocar que la instancia no respondiera o no pudiera realizar operaciones de mantenimiento y el acuerdo de nivel de servicio no cubre esta situación. Para ver cuántas tablas hay en tu instancia: SELECT COUNT(*) FROM information_schema.tables; Para ver cuántas tablas hay en cada base de datos: SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA; Reduce el número de tablas a menos de 10 000.

Si no puedes reducir de inmediato el número de tablas, puedes reducir la probabilidad de que un recuento elevado de tabla impacte a la instancia mediante el establecimiento de la marca innodb_file_per_table en OFF; sin embargo, esta medida no supone que la instancia cumpla el acuerdo de nivel de servicio.

Si tu arquitectura de datos necesita muchas tablas, divide los datos en varias instancias.