Use métricas para diagnosticar a latência

Esta página descreve as métricas de latência que o Spanner fornece. Se a sua aplicação tiver uma latência elevada, use estas métricas para ajudar a diagnosticar e resolver o problema.

Pode ver estas métricas na Google Cloud consola e na consola do Cloud Monitoring.

Vista geral das métricas de latência

As métricas de latência do Spanner medem o tempo que o serviço do Spanner demora a processar um pedido. A métrica capta o tempo real decorrido e não o tempo de CPU usado pelo Spanner.

Estas métricas de latência não incluem a latência que ocorre fora do Spanner, como a latência de rede ou a latência na camada de aplicação. Para medir outros tipos de latência, pode usar o Cloud Monitoring para instrumentar a sua aplicação com métricas personalizadas.

Pode ver gráficos de métricas de latência na Google Cloud consola e na consola do Cloud Monitoring. Pode ver métricas de latência combinadas que incluem leituras e escritas, ou pode ver métricas separadas para leituras e escritas.

Com base na latência de cada pedido, o Spanner agrupa os pedidos em percentis. Pode ver as métricas de latência para a latência do 50.º percentil e do 99.º percentil:

  • Latência do 50.º percentil: a latência máxima, em segundos, para os 50% mais rápidos de todos os pedidos. Por exemplo, se a latência do percentil 50 for de 0,5 segundos, o Spanner processou 50% dos pedidos em menos de 0,5 segundos.

    Por vezes, esta métrica é denominada latência mediana.

  • Latência do percentil 99: a latência máxima, em segundos, para os 99% mais rápidos dos pedidos. Por exemplo, se a latência do percentil 99 for de 2 segundos, o Spanner processou 99% dos pedidos em menos de 2 segundos.

Latência e operações por segundo

Quando uma instância processa um pequeno número de pedidos durante um período, as latências do 50.º e 99.º percentil durante esse período não são indicadores significativos do desempenho geral da instância. Nestes casos, um número muito pequeno de valores atípicos pode alterar drasticamente as métricas de latência.

Por exemplo, suponhamos que uma instância processa 100 pedidos durante uma hora. Neste caso, a latência do percentil 99 para a instância durante essa hora é a quantidade de tempo que demorou a processar o pedido mais lento. Uma medição de latência baseada num único pedido não é significativa.

Como diagnosticar problemas de latência

As secções seguintes descrevem como diagnosticar vários problemas comuns que podem causar uma latência integral elevada na sua aplicação.

Para ver rapidamente as métricas de latência de uma instância, use a Google Cloud consola. Para examinar as métricas mais detalhadamente e encontrar correlações entre a latência e outras métricas, use a consola do Cloud Monitoring.

Latência total elevada, latência do Spanner baixa

Se a sua aplicação tiver uma latência superior à esperada, mas as métricas de latência do Spanner forem significativamente inferiores à latência total de ponta a ponta, pode haver um problema no código da aplicação. Se a sua aplicação tiver um problema de desempenho que faça com que alguns caminhos de código sejam lentos, a latência total de ponta a ponta para cada pedido pode aumentar.

Para verificar se existe este problema, teste o desempenho da sua aplicação para identificar caminhos de código que sejam mais lentos do que o esperado.

Também pode comentar o código que comunica com o Spanner e, em seguida, medir novamente a latência total. Se a latência total não se alterar muito, é pouco provável que o Spanner seja a causa da latência elevada.

Latência total elevada, latência do Spanner elevada

Se a sua aplicação tiver uma latência superior à esperada e as métricas de latência do Spanner também forem elevadas, existem algumas causas prováveis:

  • A sua instância precisa de mais capacidade de computação. Se a sua instância não tiver recursos de CPU suficientes e a utilização da CPU exceder o máximo recomendado, o Spanner pode não conseguir processar os seus pedidos de forma rápida e eficiente.

  • Algumas das suas consultas causam uma elevada utilização da CPU. Se as suas consultas não tirarem partido das funcionalidades do Spanner que melhoram a eficiência, como parâmetros de consulta e índices secundários, ou se incluírem um grande número de junções ou outras operações com utilização intensiva da CPU, as consultas podem usar uma grande parte dos recursos da CPU para a sua instância.

Para verificar se existem estes problemas, use a consola do Cloud Monitoring para procurar uma correlação entre a utilização elevada da CPU e a latência elevada. Além disso, verifique as estatísticas de consultas da sua instância para identificar consultas com utilização intensiva da CPU durante o mesmo período.

Se verificar que a utilização da CPU e a latência são elevadas ao mesmo tempo, tome medidas para resolver o problema:

O que se segue?