Métricas de uso de CPU

En esta página, se describen las métricas de uso de CPU que Cloud Spanner proporciona. Puedes ver estas métricas en Google Cloud Console y en la consola de Cloud Monitoring.

Uso de CPU y prioridad de tareas

Cuando Cloud Spanner mide el uso de CPU, organiza las tareas en las categorías siguientes:

Tareas del usuario Tareas del sistema
Prioridad alta Tareas del usuario de prioridad alta Tareas del sistema de prioridad alta

Tareas que inicia tu aplicación y que Cloud Spanner maneja como una prioridad alta.

Se incluyen la mayoría de las solicitudes de lectura y confirmación. También se incluyen partes del trabajo para escrituras por lotes, pero no lecturas por lotes.

Tareas que Cloud Spanner inicia y maneja como una prioridad alta.

Se incluyen el reabastecimiento de un índice y la división de datos.

Prioridad baja Tareas del usuario de prioridad baja Tareas del sistema de prioridad baja

Tareas que inicia tu aplicación y que no necesitan completarse con la misma celeridad que las tareas de prioridad alta.

Incluye lecturas y escrituras enviadas desde trabajos de Dataflow (incluidos Import / Export).

Tareas que Cloud Spanner inicia y que no necesitan completarse con la misma celeridad que las tareas de prioridad alta.

Incluye la compactación de base de datos, validación de cambio de esquemas y creación de copias de seguridad.

Las tareas de prioridad alta interrumpen de inmediato a las tareas de prioridad baja. Si es necesario, Cloud Spanner detiene todas las tareas de prioridad baja y permite que las tareas de prioridad alta usen hasta el 100% de los recursos de CPU disponibles. Si bien las tareas del sistema de prioridad baja pueden retrasarse a corto plazo, deben ejecutarse en algún momento para lograr un rendimiento óptimo. Por lo tanto, debes aprovisionar tu instancia con nodos suficientes para manejar tareas de prioridad alta y baja.

Si no hay tareas de prioridad alta, Cloud 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 baja pueden generar tareas de prioridad alta, incluidas las tareas del usuario, casi al instante.

Métricas disponibles

Cloud Spanner proporciona las métricas siguientes para el uso de CPU:

  • Promedio móvil de 24 horas: 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.
  • Prioridad alta: El uso de CPU, como un porcentaje de los recursos de CPU de la instancia, para tareas de prioridad alta.
  • Total: El uso de CPU total, como un porcentaje de los recursos de CPU de la instancia.

    En las instancias, puedes ver el uso de CPU total por base de datos o por prioridad de las tareas.

    En bases de datos, puedes ver el uso de CPU total por prioridad de las tareas.

Puedes ver los gráficos de estas métricas en Cloud Console o en la consola de Cloud Monitoring. También puedes usar la consola de Cloud Monitoring a fin de crear alertas para un alto uso de CPU, como se describe a continuación.

En la tabla siguiente, se especifican nuestras recomendaciones sobre el uso máximo de CPU para instancias de una sola región 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 de una sola región) o de una región completa (en instancias de multirregionales).

Métrica Máximo para instancias de una sola región Máximo por región para las instancias multirregionales
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 Cloud Spanner cumpla con los 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.

Reduce el uso de CPU

En esta sección, se explica cómo reducir el uso de CPU de una instancia.

Por lo general, la recomendación es que comiences por agregar nodos a tu instancia. Después de agregar nodos, puedes investigar y abordar las causas principales del uso de CPU elevado.

Agrega nodos

Si excedes los valores máximos recomendados para el uso de CPU, la recomendación es que agregues nodos a tu instancia, de modo que pueda seguir funcionando de manera eficaz. Si deseas automatizar este proceso, puedes crear una aplicación que supervise el uso de CPU y que agregue y quite nodos con el método UpdateInstance, según sea necesario.

Para determinar la cantidad de nodos que necesitas, considera el pico de uso de CPU de prioridad alta, así como el promedio suavizado de las 24 horas. Asigna siempre nodos suficientes para mantener el uso de CPU por debajo de los valores máximos recomendados. Como ya se describió, es posible que debas asignar nodos adicionales 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 nodos suficientes, Cloud 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 Cloud Spanner no puede postergarlas de forma indefinida. Si Cloud 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 Cloud Spanner aumente la prioridad de las tareas del sistema. Este cambio afecta el rendimiento de las tareas del usuario.

Optimiza el rendimiento de las consultas

En algunos casos, tu instancia puede tener un uso de CPU elevado debido a consultas de SQL que no son tan eficientes como podrían ser. Puedes usar las estadísticas de consulta de tu base de datos para identificar las consultas que generan un uso de CPU elevado. Luego, puedes optimizar estas consultas para reducir el uso de CPU según sus planes de consultas.

Próximos pasos