Usa métricas para diagnosticar la latencia

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 la Servicio de Spanner para procesar una solicitud. La métrica captura la tasa real la cantidad de tiempo transcurrido, no la cantidad de tiempo de CPU que la API usa.

Estas métricas de latencia no incluyen la latencia que ocurre fuera de Spanner, como la latencia de red o la latencia dentro de tu aplicación por la capa de prealimentació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.

Spanner agrupa las solicitudes en función de la latencia de cada solicitud 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, y, luego, 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 consultar las métricas de latencia de una instancia, usa el 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 superior a la esperada, pero la las métricas de latencia de Spanner son significativamente más bajas que el 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 mayor que la esperada y la Las métricas de latencia de Spanner también son altas, por lo que se pueden deber a las siguientes causas:

  • Tu instancia necesita más capacidad de procesamiento. Si tu instancia no tiene suficientes recursos de CPU y su uso supera la recomendación máximo, es posible que Spanner no pueda procesar tus solicitudes de forma rápida y 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 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:

¿Qué sigue?