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 cuánto tiempo tarda el servicio de Spanner en procesar una solicitud. La métrica captura la cantidad real de tiempo que transcurre, 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 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 los gráficos de las métricas de latencia en 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.

Según 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 consultar rápidamente 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.

Alta latencia total, baja latencia de Spanner

Si tu aplicación experimenta una latencia más alta de lo esperado, pero las métricas de latencia de Spanner son significativamente más bajas que 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 y, luego, volver a medir la latencia total. Si la latencia total no cambia mucho, es poco probable que Spanner sea la causa de la latencia alta.

Alta latencia total, alta latencia de Spanner

Si tu aplicación experimenta una latencia que es más alta de lo esperado y las métricas de latencia de Spanner también son altas, es probable que se deba a algunas de las siguientes causas:

  • Tu instancia necesita más capacidad de procesamiento. Si tu instancia no tiene suficientes recursos de CPU y su uso de CPU supera el máximo recomendado, es posible que Spanner no pueda procesar tus solicitudes con rapidez y eficiencia.

  • Algunas de tus consultas causan un uso de CPU elevado. Si tus consultas no aprovechan las funciones de Spanner que mejoran la eficiencia, como los parámetros de consulta y los índices secundarios, o si incluyen una gran cantidad de uniones o de otras operaciones de uso intensivo de CPU, las consultas pueden usar una gran parte de los recursos de 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:

¿Qué sigue?