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 diagnosticar y resolver el problema.
Puedes ver estas métricas en la consola Google Cloud y en la consola de Cloud Monitoring.
Información general sobre 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 registra el tiempo real que transcurre, no el tiempo de CPU que usa Spanner.
Estas métricas de latencia no incluyen la latencia que se produce fuera de Spanner, como la latencia de red o la latencia de la capa de aplicación. Para 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 consola deGoogle Cloud y en la consola de Cloud Monitoring. Puede ver métricas de latencia combinadas que incluyan tanto lecturas como escrituras, o bien métricas independientes para lecturas y escrituras.
En función de la latencia de cada solicitud, Spanner agrupa las solicitudes en percentiles. Puede ver las métricas de latencia del percentil 50 y del 99:
Latencia del percentil 50: la latencia máxima, en segundos, del 50% de las solicitudes más rápidas. Por ejemplo, si la latencia del percentil 50 es de 0,5 segundos, Spanner ha procesado el 50% de las solicitudes en menos de 0,5 segundos.
A veces, esta métrica se denomina latencia media.
Latencia del percentil 99: la latencia máxima, en segundos, del 99% de las solicitudes más rápidas. Por ejemplo, si la latencia del percentil 99 es de 2 segundos, Spanner ha procesado el 99% de las solicitudes en menos de 2 segundos.
Latencia y operaciones por segundo
Cuando una instancia procesa un número reducido de solicitudes durante un periodo, las latencias del percentil 50 y 99 durante ese tiempo no son indicadores significativos del rendimiento general de la instancia. En estas condiciones, un número muy pequeño de valores atípicos puede cambiar drásticamente las métricas de latencia.
Por ejemplo, supongamos que una instancia procesa 100 solicitudes en una hora. En este caso, la latencia del percentil 99 de la instancia durante esa hora es el tiempo que se ha tardado en procesar la solicitud más lenta. Una medición de latencia basada en una sola solicitud no es significativa.
Cómo diagnosticar problemas de latencia
En las siguientes secciones se describe cómo diagnosticar varios problemas habituales que podrían provocar que tu aplicación experimente una latencia de extremo a extremo alta.
Para consultar rápidamente las métricas de latencia de una instancia, usa laGoogle Cloud consola. Para examinar las métricas con más detalle y encontrar correlaciones entre la latencia y otras métricas, usa la consola de Cloud Monitoring.
Latencia total alta y latencia de Spanner baja
Si tu aplicación experimenta una latencia superior a la esperada, pero las métricas de latencia de Spanner son significativamente inferiores a la latencia total de extremo a extremo, puede que haya un problema en el código de tu aplicación. Si tu aplicación tiene un problema de rendimiento que provoca que algunas rutas de código sean lentas, la latencia total de extremo a extremo de cada solicitud puede aumentar.
Para comprobar si se produce este problema, compara el rendimiento de tu aplicación para identificar las rutas de código que son más lentas de lo esperado.
También puedes comentar el código que se comunica con Spanner y, a continuación, 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.
Latencia total alta y latencia de Spanner alta
Si tu aplicación experimenta una latencia superior a la esperada y las métricas de latencia de Spanner también son altas, puede deberse a varios motivos:
Tu instancia necesita más capacidad de computación. Si tu instancia no tiene suficientes recursos de CPU y su utilización de CPU supera el máximo recomendado, es posible que Spanner no pueda procesar tus solicitudes de forma rápida y eficiente.
Algunas de tus consultas provocan un uso elevado de la CPU. Si sus consultas no aprovechan las funciones de Spanner que mejoran la eficiencia, como los parámetros de consulta y los índices secundarios, o si incluyen un gran número de uniones u otras operaciones que consumen muchos recursos de la CPU, las consultas pueden usar una gran parte de los recursos de la CPU de su instancia.
Para comprobar si se producen estos problemas, usa la consola de Cloud Monitoring para buscar una correlación entre un uso de CPU elevado y una latencia alta. También puedes consultar las estadísticas de consultas de tu instancia para identificar las consultas que consumen muchos recursos de CPU durante el mismo periodo.
Si observas que el uso de CPU y la latencia son altos al mismo tiempo, toma medidas para solucionar el problema:
Si no has encontrado muchas consultas que consuman muchos recursos de la CPU, añade capacidad de computación a la instancia.
Si añades capacidad de computación, tendrás más recursos de CPU y Spanner podrá gestionar una carga de trabajo mayor.
Si ha encontrado consultas que consumen muchos recursos de CPU, consulte los planes de ejecución de consultas para saber por qué son lentas y, a continuación, actualice sus consultas para que sigan las prácticas recomendadas de SQL para Spanner.
También puede que tengas que revisar el diseño del esquema de la base de datos y actualizarlo para que las consultas sean más eficientes.
Siguientes pasos
- Monitoriza tu instancia con la Google Cloud consola o la consola de Cloud Monitoring.
- Consulta cómo encontrar correlaciones entre la latencia alta y otras métricas.
- Consulta cómo reducir la latencia de lectura siguiendo las prácticas recomendadas de SQL y usando límites de marca de tiempo.
- Consulta información sobre las métricas de latencia en las tablas de estadísticas de consultas, que puedes obtener mediante instrucciones SQL.
- Consulta cómo afecta la configuración de la instancia a la latencia.