En esta página, se describen las métricas de latencia que proporciona Spanner. Si tu aplicación experimenta una latencia alta, usa estas métricas para ayudarte a diagnosticar y resolver el problema.
Puedes ver estas métricas en la consola de Google Cloud y en la consola de Cloud Monitoring.
Descripción general de las métricas de latencia
Las métricas de latencia de Spanner miden el tiempo que tarda el servicio de Spanner en procesar una solicitud. La métrica abarca la cantidad de tiempo real que transcurrió, no la cantidad de tiempo de CPU que usa Spanner.
Estas métricas de latencia no incluyen la latencia que ocurre fuera de Spanner, como la latencia de red o la latencia dentro de la capa de la aplicación. A fin de medir otros tipos de latencia, puedes usar Cloud Monitoring para instrumentar tu aplicación con métricas personalizadas.
Puedes ver gráficos de métricas de latencia en la la consola de Google Cloud y en la Consola de Cloud Monitoring. Puedes ver métricas de latencia combinadas que incluyen las operaciones de lectura y escritura, o puedes ver métricas individuales para las operaciones de lectura y las de escritura.
En función de la latencia de cada solicitud, Spanner agrupa las solicitudes en percentiles. Puedes ver las métricas de latencia para el percentil 50 y la latencia del percentil 99:
Latencia del percentil 50: La latencia máxima, en segundos, para el 50% más rápido de todas las solicitudes. Por ejemplo, si la latencia del percentil 50 es de 0.5 segundos, Spanner procesó el 50% de las solicitudes en menos de 0.5 segundos.
A veces, esta métrica se denomina latencia mediana.
Latencia del percentil 99: La latencia máxima, en segundos, para el 99% más rápido de las solicitudes. Por ejemplo, si la latencia del percentil 99 es de 2 segundos, Spanner procesó el 99% de las solicitudes en menos de 2 segundos.
Latencia y operaciones por segundo
Cuando una instancia procesa una pequeña cantidad de solicitudes durante un tiempo, las latencias de los percentiles 50 y 99 durante ese momento no son indicadores significativos del rendimiento general de la instancia. En estas condiciones, una cantidad muy pequeña de valores atípicos puede cambiar de forma drástica las métricas de latencia.
Por ejemplo, supongamos que una instancia procesa 100 solicitudes durante una hora. En este caso, la latencia del percentil 99 para la instancia durante esa hora es la cantidad de tiempo que tomó procesar la solicitud más lenta. Una medición de latencia basada en una solicitud única no es significativa.
Cómo diagnosticar problemas de latencia
En las siguientes secciones, se describe cómo diagnosticar varios problemas comunes que podrían provocar que la aplicación experimente una latencia alta de extremo a extremo.
Para dar una mirada rápida a las métricas de latencia de una instancia, usa la consola de Google Cloud. Para examinar las métricas más de cerca y encontrar correlaciones entre la latencia y otras métricas, usa la consola de Cloud Monitoring.
Latencia alta total, latencia baja de Spanner
Si tu aplicación experimenta una latencia mayor que la esperada, pero las métricas de latencia de Spanner son bastante inferiores a la latencia total de extremo a extremo, es posible que haya un problema en el código de la aplicación. Si tu aplicación tiene un problema de rendimiento que hace que algunas rutas de código sean lentas, la latencia total de extremo a extremo de cada solicitud puede aumentar.
A fin de comprobar este problema, compara tu aplicación para identificar rutas de código más lentas de lo esperado.
También puedes comentar el código que se comunica con Spanner medir nuevamente la latencia total. Si la latencia total no cambia mucho es poco probable que Spanner sea la causa de la latencia alta.
Latencia alta total, latencia alta de Spanner
Si tu aplicación experimenta una latencia superior a la esperada y la Las métricas de latencia de Spanner también son altas, por lo que se pueden deber a algunas de las siguientes causas:
Tu instancia necesita más capacidad de procesamiento. Si tu instancia no tiene recursos de CPU suficientes y el uso de CPU supera el máximo recomendado, es posible que Spanner no pueda procesar tus solicitudes con rapidez y de forma eficiente.
Algunas de tus consultas causan un uso de CPU elevado. Si tus consultas no aprovechar las funciones de Spanner que mejoran la eficiencia, como parámetros de consulta e índices secundarios, o si incluyen una gran cantidad de uniones u otras instrucciones de uso intensivo las consultas pueden usar una gran parte de los recursos de la CPU para tu instancia.
Para comprobar estos problemas, usa la consola de Cloud Monitoring a fin de buscar una correlación entre el uso elevado de CPU y la latencia alta. Además, verifica las estadísticas de consulta de tu instancia para identificar las consultas que requieren mucha CPU durante el mismo período.
Si descubres que la latencia y el uso de CPU son altos al mismo tiempo, toma las medidas necesarias para solucionar el problema:
Si no encontraste muchas consultas que requieren mucha CPU, agrega capacidad de procesamiento al .
Agregar capacidad de procesamiento proporciona más recursos de CPU y permite que Spanner maneje una carga de trabajo mayor.
Si encontraste consultas que requieren mucha CPU, revisa la ejecución de la consulta. planes para saber por qué son lentas y, luego, actualizar tus consultas para que sigan las prácticas recomendadas de SQL para Spanner
Es posible que también debas revisar el diseño del esquema de la base de datos y actualizar el esquema para permitir que se realicen consultas más eficientes.
¿Qué sigue?
- Supervisa tu instancia con la consola de Google Cloud o la consola de Cloud Monitoring.
- Obtén más información sobre cómo encontrar correlaciones entre la latencia alta y otras métricas.
- Obtén información sobre cómo reducir la latencia de lectura mediante las prácticas recomendadas de SQL y con vinculaciones de marca de tiempo.
- Obtén más información sobre las métricas de latencia en las tablas de estadísticas de consultas, que puedes recuperar con las instrucciones de SQL.
- Obtén más información sobre cómo la configuración de instancias afecta la latencia.