En esta página se describen las métricas de utilización de CPU que proporciona Spanner. Puedes ver estas métricas en la Google Cloud consola y en la consola de Cloud Monitoring.
Uso de CPU y prioridad de las tareas
Spanner mide el uso de la CPU en función de la fuente y la prioridad de la tarea.
Fuente: una tarea puede iniciarla el usuario o el sistema.
Prioridad: la prioridad ayuda a Spanner a determinar qué tareas se deben ejecutar primero. La prioridad de las tareas del sistema está predeterminada y no se puede configurar. Las tareas de usuario se ejecutan con alta prioridad, 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 analíticas, de mantenimiento o por lotes que no tienen SLOs de rendimiento estrictos.
Las tareas de mayor prioridad se ejecutarán antes que las de menor prioridad. Spanner permite que las tareas de alta prioridad utilicen hasta el 100% de los recursos de CPU disponibles, incluso si hay tareas de menor prioridad en competencia. Aunque las tareas del sistema de menor prioridad se pueden retrasar a corto plazo, deben ejecutarse tarde o temprano. Por lo tanto, debes proporcionar a tu instancia la capacidad de computación suficiente para gestionar todas las tareas.
Si no hay tareas de alta prioridad, Spanner utilizará hasta el 100 % de los recursos de CPU disponibles para completar las tareas de menor prioridad más rápido. Los picos en el uso en segundo plano no son señal de un problema. Las tareas de menor prioridad pueden ceder el paso a las tareas de mayor prioridad, incluidas las tareas de usuario, casi al instante.
En la siguiente tabla se muestran ejemplos de cada tarea:
Tareas de los usuarios | Tareas del sistema | |
---|---|---|
Prioridad alta | Incluye solicitudes de datos, como read o executeSql, donde no se especifica ninguna prioridad o PRIORITY_HIGH. | Incluye la división de datos. |
Prioridad media |
Incluye:
|
Incluye:
|
Prioridad baja | Incluye las solicitudes de datos en las que se especifica PRIORITY_LOW. |
Incluye:
|
Métricas disponibles
Spanner proporciona las siguientes métricas de uso de CPU:
Uso de CPU suavizado: promedio continuo del uso total de CPU, como porcentaje de los recursos de CPU de la instancia, para cada base de datos. Cada punto de datos es una media de las 24 horas anteriores. Usa esta métrica para crear alertas y analizar el uso de la CPU durante un periodo prolongado, por ejemplo, 24 horas. Puede ver un gráfico de esta métrica en la Google Cloud consola o en la consola de Cloud Monitoring como Media acumulada de 24 horas.
Uso de CPU por prioridad: el uso de CPU, como porcentaje de los recursos de CPU de la instancia, agrupado por prioridad, tareas iniciadas por el usuario y tareas iniciadas por el sistema. Use esta métrica para crear alertas y analizar el uso de la CPU de forma general. Puedes ver un gráfico de esta métrica en la consola deGoogle Cloud o en la consola de Cloud Monitoring.
Uso de CPU por tipo de operación: el uso de CPU, expresado como porcentaje de los recursos de CPU de la instancia, agrupado por operaciones iniciadas por el usuario, como lecturas, escrituras y confirmaciones. Usa esta métrica para obtener un desglose detallado del uso de la CPU y solucionar problemas, tal como se explica en el artículo Investigar un uso de CPU elevado. Puedes crear un gráfico de esta métrica en la consola de Cloud Monitoring.
También puedes usar la consola de Cloud Monitoring para crear alertas de utilización de CPU, como se describe más adelante.
Alertas de uso elevado de la CPU
En la siguiente tabla se especifican nuestras recomendaciones sobre el uso máximo de CPU para instancias regionales, de dos regiones y multirregionales. Estas cifras sirven para asegurar que tu instancia tenga suficiente capacidad de computación para seguir atendiendo tu tráfico en caso de que se pierda una zona completa (en el caso de las instancias regionales) o una región completa (en el caso de las instancias birregionales y multirregionales).
Métrica | Máximo de instancias regionales | Máximo por región para instancias birregionales y multirregionales |
---|---|---|
Total de prioridad alta | 65 % | 45 % |
Agregación suavizada de 24 horas | 90 % | 90 % |
Para ayudarte a mantenerte por debajo de los máximos recomendados, crea alertas en Cloud Monitoring que monitoricen el uso de la CPU de alta prioridad y el uso medio de la CPU durante 24 horas.
El uso de la CPU puede influir en la latencia de las solicitudes. La sobrecarga de un servidor backend individual provocará latencias de solicitud más altas. Las aplicaciones deben ejecutar pruebas comparativas y una monitorización activa para verificar que Spanner cumple sus requisitos de rendimiento.
Por lo tanto, en el caso de las aplicaciones sensibles al rendimiento, es posible que tengas que reducir aún más la utilización de la CPU mediante las técnicas descritas en la siguiente sección.
Uso de CPU superior al 100%
En algunos casos, la utilización de la 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 la instancia.
Es posible que se utilicen recursos de CPU superiores al 100% para ofrecer un rendimiento mejor y más predecible durante los picos de uso de la CPU, por ejemplo, los que se producen debido a un aumento repentino del tráfico de solicitudes.
No se garantiza ninguna capacidad de CPU superior al 100% y no se debe utilizar para las operaciones normales de la base de datos.
Si una instancia de Spanner se ejecuta cerca o por encima del 100% de utilización de la CPU durante un periodo prolongado, puede que se degrade el rendimiento y la latencia de las operaciones normales. No es recomendable depender de recursos de CPU adicionales para obtener un rendimiento constante.
No se factura a los clientes por este uso adicional de la CPU.
Reducir el uso de CPU
En esta sección se explica cómo reducir el uso de CPU de una instancia.
En general, te recomendamos que aumentes la capacidad de computación de tu instancia como punto de partida. Una vez que hayas aumentado la capacidad de computación, podrás investigar y solucionar las causas principales del uso elevado de la CPU.
Aumentar la capacidad de computación
Si supera los máximos recomendados de utilización de la CPU, le recomendamos que aumente la capacidad de computación de su instancia para que pueda seguir funcionando de forma eficaz. Si quieres automatizar este proceso, puedes crear una aplicación que monitorice el uso de la CPU y, a continuación, aumente o disminuya la capacidad de computación según sea necesario mediante el método UpdateInstance
.
Para determinar la capacidad de computación que necesitas, ten en cuenta la utilización máxima de la CPU de alta prioridad, así como la media suavizada de 24 horas. Asigna siempre suficiente capacidad de computación para que la utilización de la CPU se mantenga por debajo de los máximos recomendados. Como se ha descrito anteriormente, es posible que tengas que asignar capacidad de computación adicional a las aplicaciones sensibles al rendimiento (por ejemplo, para hacer frente a picos de carga de trabajo).
Si no tienes suficiente capacidad de computación, Spanner pospone las tareas por nivel de prioridad. Las tareas del sistema de baja prioridad, como la compactación de bases de datos y la validación de cambios de esquemas, se pueden aplazar para priorizar las tareas de los usuarios. Sin embargo, estas tareas son cruciales para el estado de tu instancia y Spanner no puede aplazarlas indefinidamente. Si Spanner no puede completar sus tareas de sistema de baja prioridad en un periodo determinado (del orden de varias horas a un día) debido a que no tiene suficientes recursos de computación, puede aumentar la prioridad de las tareas del sistema. Este cambio afecta al rendimiento de las tareas de los usuarios.
Investigar más a fondo con herramientas de introspección
Si la métrica Uso de CPU por tipo de operación indica que un tipo de operación concreto está contribuyendo a un uso elevado de la CPU, utiliza las herramientas de introspección de Spanner para seguir investigando. Para obtener más información, consulta Investigar un uso de CPU elevado.
Siguientes pasos
- Monitoriza tu instancia con la Google Cloud consola o la consola de Cloud Monitoring.
- Crea alertas de uso de CPU de Spanner.
- Consulta cómo cambiar la capacidad de computación de una instancia de Spanner.
Consulta cómo encontrar correlaciones entre la latencia alta y otras métricas.
Para saber cómo solucionar problemas de uso elevado de la CPU causados por un tipo de operación concreto, consulta Investigar un uso de CPU elevado.