Métricas de latência

Nesta página, descrevemos as métricas de latência que o Cloud Spanner oferece. Caso seu aplicativo apresente alta latência, use essas métricas para ajudá-lo a diagnosticar e resolver o problema.

Você já pode visualizar essas métricas no Console do Google Cloud Platform e no console do Stackdriver Monitoring.

Visão geral das métricas de latência

As métricas de latência do Cloud Spanner medem o tempo necessário para o serviço do Cloud Spanner processar uma solicitação. A métrica captura a quantidade real de tempo decorrido, não a quantidade de tempo de CPU que o Cloud Spanner utilizou.

Essas métricas de latência não incluem a latência que ocorre fora do Cloud Spanner, como a de rede e aquela dentro da camada do aplicativo. Para medir outros tipos de latência, use o Stackdriver Monitoring para instrumentar seu aplicativo com métricas personalizadas.

É possível visualizar gráficos das métricas de latência no Console do GCP e no console do Stackdriver Monitoring. Também é possível visualizar métricas de latência combinadas que incluem leituras e gravações, ou visualizar métricas distintas para leituras e gravações.

Com base na latência de cada solicitação, o Cloud Spanner agrupa as solicitações em percentis. É possível visualizar as métricas de latência do 50º percentil e do 99º percentil:

  • Latência do 50º percentil: a latência máxima, em segundos, das solicitações mais rápidas. Nesse caso, o número de solicitações consideradas é 50%. Por exemplo, se a latência do 50º percentil for 0,5 segundo, o Cloud Spanner processou 50% das solicitações em menos de 0,5 segundo.

    Algumas vezes, essa métrica é chamada de latência mediana.

  • Latência do 99º percentil: a latência máxima, em segundos, das solicitações mais rápidas. Nesse caso, o número de solicitações consideradas é 99%. Por exemplo, se a latência do 99º percentil for de dois segundos, então o Cloud Spanner processou 99% das solicitações em menos de dois segundos.

Latência e operações por segundo

Quando uma instância processa um pequeno número de solicitações durante determinado período, as latências do 50º e do 99º percentis durante esse período não são indicadores significativos do desempenho geral da instância. Nessas condições, um número muito pequeno de outliers pode alterar drasticamente as métricas de latência.

Por exemplo, suponha que uma instância processe 100 solicitações durante uma hora. Nesse caso, a latência do 99º percentil da instância durante essa hora é a quantidade de tempo necessária para processar a solicitação mais lenta. Uma medição de latência baseada em uma única solicitação não é significativa.

Como diagnosticar problemas de latência

As seções a seguir descrevem como diagnosticar vários problemas comuns capazes de levar seu aplicativo a alta latência de ponta a ponta.

Para visualizar rapidamente as métricas de latência de uma instância, use o Console do GCP. Para examinar as métricas mais de perto e encontrar correlações entre a latência e outras métricas, use o console do Stackdriver Monitoring.

Alta latência total, baixa latência do Cloud Spanner

Caso seu aplicativo apresente latência acima do esperado, mas as métricas de latência do Cloud Spanner sejam significativamente inferiores à latência total de ponta a ponta, pode haver um problema no código do aplicativo. Caso seu aplicativo tenha um problema de desempenho que cause lentidão em alguns caminhos do código, a latência total de ponta a ponta para cada solicitação pode aumentar.

Para verificar esse problema, faça um benchmark de seu aplicativo para identificar os caminhos do código que estão mais lentos do que o esperado.

Também é possível comentar o código que se comunica com o Cloud Spanner e, em seguida, medir a latência total novamente. Se a latência total não mudar muito, então é improvável que o Cloud Spanner seja a causa da alta latência.

Alta latência total, alta latência do Cloud Spanner

Caso seu aplicativo apresente latência acima do esperado e as métricas de latência do Cloud Spanner também estejam altas, há algumas causas prováveis:

  • Sua instância precisa de mais nós. Caso sua instância não tenha recursos de CPU suficientes e a utilização de CPU dela exceda o máximo recomendado, pode não ser possível processar suas solicitações de maneira rápida e eficiente pelo Cloud Spanner.

  • Algumas de suas consultas causam alta utilização da CPU. Caso suas consultas não se beneficiem dos recursos do Cloud Spanner que melhoram a eficiência, como parâmetros de consulta e índices secundários, ou se incluírem um grande número de mesclagens ou outras operações que exigem muito consumo de CPU, as consultas podem usar uma grande parte dos recursos de CPU da sua instância.

Para verificar esses problemas, use o console do Stackdriver Monitoring para procurar uma correlação entre a alta utilização de CPU e a alta latência. Verifique também as estatísticas de consultas da sua instância para identificar se há consultas que exigem muito consumo de CPU durante o mesmo período.

Se você descobrir que a utilização de CPU e a latência estão altas ao mesmo tempo, faça algo para solucionar o problema:

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Spanner