En esta página, se describen las métricas de uso de CPU que proporciona Spanner. Puedes ver estas métricas en la consola de Google Cloud y en la consola de Cloud Monitoring.
Uso de CPU y prioridad de tareas
Spanner mide el uso de CPU según el origen y la prioridad de la tarea.
Fuente: el usuario o el sistema pueden iniciar una tarea.
Prioridad: La prioridad ayuda a Spanner a determinar qué tareas deben ejecutarse primero. La prioridad de las tareas del sistema es predeterminada y no se puede configurar. Las tareas de usuario se ejecutan con prioridad alta, a menos que se especifique lo contrario. Muchas solicitudes de datos, como read y executeSql, te permiten especificar una prioridad más baja para la solicitud. Esto puede ser útil, por ejemplo, cuando ejecutas consultas por lotes, de mantenimiento o analíticas que no tienen SLO de rendimiento estrictos.
En general, las tareas de prioridad más alta se ejecutarán antes que las de prioridad más baja. Spanner permite que las tareas de prioridad alta usen hasta el 100% de los recursos de CPU disponibles, incluso si hay tareas de prioridad más baja que compiten entre sí. Si bien las tareas del sistema de prioridad más baja pueden retrasarse a corto plazo, deben ejecutarse en algún momento. Por lo tanto, debes aprovisionar tu instancia con suficiente capacidad de procesamiento para controlar todas las tareas.
Si no hay tareas de prioridad alta, Spanner usará hasta el 100% de los recursos de CPU disponibles para completar las tareas de prioridad baja a mayor velocidad. Los picos del uso en segundo plano no indican un problema. Las tareas de prioridad más baja pueden generar tareas de prioridad más alta, incluidas las tareas del usuario, casi al instante.
En la siguiente tabla, se muestran ejemplos de cada tarea:
Tareas del usuario | Tareas del sistema | |
---|---|---|
Prioridad alta | Incluye solicitudes de datos, como read o executeSql, donde no hay especificada una prioridad ni PRIORIDAD_ALTA. | Incluye la división de datos. |
Prioridad media |
Incluye lo siguiente:
|
Incluye lo siguiente:
|
Prioridad baja | Incluye solicitudes de datos en las que se especifica PRIORIDAD BAJA. |
Incluye lo siguiente:
|
Métricas disponibles
Spanner proporciona las siguientes métricas para el uso de CPU:
Uso de CPU suavizado: Un promedio móvil del uso de CPU total, como un porcentaje de los recursos de CPU de la instancia, para cada base de datos. Cada dato es un promedio de las 24 horas anteriores. Usa esta métrica para crear alertas y analizar el uso de la CPU durante un período prolongado, por ejemplo, 24 horas. Puedes ver un gráfico de esta métrica en la consola de Google Cloud o en la consola de Cloud Monitoring como Promedio móvil de 24 horas.
Uso de CPU por prioridad: El uso de CPU, como un porcentaje de los recursos de CPU de la instancia, agrupados por prioridad, tareas iniciadas por el usuario y tareas iniciadas por el sistema Usa esta métrica para crear alertas y analizar el uso de la CPU a un nivel alto. Puedes ver un gráfico de esta métrica en la consola de Google Cloud o en la consola de Cloud Monitoring.
Uso de CPU por tipo de operación: El uso de CPU, como un porcentaje de los recursos de CPU de la instancia, agrupados por operaciones iniciadas por el usuario, como lecturas, escrituras y confirmaciones Usa esta métrica para obtener un desglose detallado del uso de CPU y solucionar problemas, como se explica en Cómo investigar el uso alto de CPU. Puedes crear un gráfico para esta métrica en la consola de Cloud Monitoring.
También puedes usar la consola de Cloud Monitoring para crear alertas para el uso de CPU, como se describe más adelante.
Alertas para uso de CPU elevado
En la siguiente tabla, se especifican nuestras recomendaciones sobre el uso máximo de CPU para instancias regionales, birregionales y multirregionales. Estos números garantizan que tu instancia tenga suficiente capacidad de procesamiento para seguir entregando tu tráfico ante la pérdida de una zona completa (en instancias regionales) o de una región completa (en instancias birregionales y multirregionales).
Métrica | Máximo para instancias regionales | Máximo por región para instancias de varias regiones y doble región |
---|---|---|
Total de prioridad alta | 65% | 45% |
Agregación suavizada de 24 horas | 90% | 90% |
Para ayudarte a mantenerte por debajo de los valores máximos recomendados, crea alertas en Cloud Monitoring que realicen un seguimiento del uso de CPU de prioridad alta y del uso de CPU promedio durante las 24 horas.
El uso de CPU puede tener un impacto en las latencias de solicitud. La sobrecarga de un servidor de backend individual activará latencias de solicitud mayores. Las aplicaciones deben ejecutar comparativas y una supervisión activa para verificar que Spanner cumpla con sus requisitos de rendimiento.
Por lo tanto, para aplicaciones cuyo rendimiento puede verse afectado, es posible que debas reducir aún más el uso de CPU mediante las técnicas que se describen en la sección siguiente.
Uso de CPU superior al 100%
En algunos casos, el uso de CPU de una instancia de Spanner puede superar el 100%. Esto significa que la instancia está usando más recursos de CPU que la cantidad configurada para ella.
Los recursos de CPU superiores al 100% se pueden usar para proporcionar un rendimiento mejor y más predecible durante los aumentos repentinos del uso de la CPU, por ejemplo, causados por un aumento repentino del tráfico de solicitudes.
NO se garantiza ninguna capacidad de CPU superior al 100% y no se debe confiar en ella para las operaciones normales de la base de datos.
Ejecutar una instancia de Spanner con un uso de CPU cercano al 100% o superior durante un período prolongado puede generar un riesgo de degradación del rendimiento y la latencia del funcionamiento normal. Los recursos de CPU adicionales no son un mecanismo seguro en el que confiar para obtener un rendimiento coherente.
No se les factura a los clientes por este uso adicional de la CPU.
Reduce el uso de CPU
En esta sección, se explica cómo reducir el uso de CPU de una instancia.
En general, recomendamos que aumentes la capacidad de procesamiento de la instancia como punto de partida. Después de aumentar la capacidad de procesamiento, puedes investigar y abordar las causas principales del uso de CPU elevado.
Aumento de la capacidad de procesamiento
Si excedes los valores máximos recomendados para el uso de CPU, la recomendación de aumentar la capacidad de procesamiento de tu instancia puede seguir funcionando de manera eficaz. Si deseas automatizar este proceso, puedes crear una aplicación que supervise el uso de CPU y que aumente o disminuya la capacidad de procesamiento según sea necesario mediante el método UpdateInstance
.
Para determinar cuánta capacidad de procesamiento necesitas, considera el pico de uso de CPU de prioridad alta, así como el promedio suavizado de las 24 horas. Asigna siempre capacidad de procesamiento suficiente para mantener el uso de CPU por debajo de los valores máximos recomendados. Como ya se describió, es posible que debas asignar capacidad de cómputo adicional para las aplicaciones cuyo rendimiento pueda verse afectado (por ejemplo, con el fin de que se adapten a los picos de cargas de trabajo).
Si no tienes suficiente capacidad de procesamiento, Spanner pospone tareas según el nivel de prioridad. Las tareas del sistema de prioridad baja, como la compactación de bases de datos y la validación de cambios de esquemas, pueden postergarse a favor de las tareas del usuario. Sin embargo, estas tareas son fundamentales para el estado de tu instancia, y Spanner no puede postergarlas de forma indefinida. Si Spanner no puede completar las tareas del sistema de prioridad baja en un período determinado (de varias horas a un día) debido a la falta de recursos de procesamiento, es posible que Spanner aumente la prioridad de las tareas del sistema. Este cambio afecta el rendimiento de las tareas del usuario.
Investigación más detallada con herramientas de introspección
Si la métrica Uso de CPU por tipo de operación indica que un tipo de operación en particular contribuye a un uso alto de CPU, usa las herramientas de introspección de Spanner para solucionar los problemas. Para obtener más información, consulta Investigación del uso alto de CPU.
¿Qué sigue?
- Supervisa tu instancia con la consola de Google Cloud o la consola de Cloud Monitoring.
- Crea alertas para el uso de CPU de Spanner.
- Descubre cómo cambiar la capacidad de procesamiento de una instancia de Spanner.
Obtén más información sobre cómo encontrar correlaciones entre la latencia alta y otras métricas.
Para obtener información sobre cómo solucionar problemas de uso de CPU elevado causado por un tipo de operación en particular, consulta Investigación del uso de CPU elevado.