Use os painéis de insights do sistema e as tabelas de estatísticas integradas para identificar transações que causam altas latências no Spanner Omni. Para garantir a consistência de várias transações simultâneas, o Spanner Omni usa bloqueios para controlar o acesso aos dados. A disputa de bloqueio ocorre quando muitas transações exigem acesso frequente ao mesmo bloqueio, resultando em latências altas.
As operações do Spanner Omni adquirem bloqueios quando fazem parte de uma transação de leitura/gravação. As transações somente leitura não adquirem bloqueios.
Para identificar transações que causam alta latência, siga estas etapas:
Verifique se há um aumento nas latências usando insights do sistema.
Identifique problemas de contenção de bloqueio usando a métrica de tempo de espera de bloqueio.
Antes de começar
Se ainda não tiver feito isso, baixe e instale o console do Spanner Omni. Para mais informações, consulte Downloads do Spanner Omni e Iniciar o console do Spanner Omni.
Verificar um aumento nas latências usando insights do sistema
O Spanner Omni não usa o Cloud Monitoring. Em vez disso, use o painel de insights do sistema no console do Spanner Omni ou no Grafana. Para verificar picos de latência no console do Spanner Omni, faça o seguinte:
No console do Spanner Omni, clique em Insights do sistema no painel de navegação.
No painel Insights do sistema, verifique os gráficos de latência para o seguinte:
Latência da solicitação (
P50,P90,P99)Latência da transação (
P50,P90,P99)
Verifique o 99º percentil (
P99) das operações de gravação nos gráficos de latência. Se você observar um aumento na latência sem um aumento correspondente no uso da CPU ou em erros, é provável que a latência seja causada por problemas de disputa de bloqueio.
Verificar problemas de contenção de bloqueio
Para verificar se as latências altas são causadas por disputa de bloqueio, use a métrica de tempo de espera de bloqueio disponível no painel Insights do sistema.
Verificar o tempo de espera de bloqueio alto
Verifique se há um tempo de espera de bloqueio alto no painel de insights do sistema do console Spanner Omni:
Localize o gráfico Tempo de espera de bloqueio, que mostra o tempo total de espera de bloqueio para conflitos de bloqueio do banco de dados selecionado em um intervalo de 5 minutos.
Verifique se essa métrica mostra um aumento que se correlaciona com o pico de latência observado.
Analisar os dados de espera de bloqueio usando tabelas do sistema
Depois de confirmar que a contenção de bloqueios é a causa das altas latências, use as tabelas de estatísticas do sistema para analisar os dados de espera de bloqueio e identificar as transações que estão causando a contenção. Você pode usar a CLI do Spanner Omni para consultar tabelas de estatísticas na documentação do Spanner.
Para mais detalhes sobre as tabelas de estatísticas de bloqueio, consulte Estatísticas de bloqueio na documentação do Spanner.
Identificar transações conflitantes
Para identificar as transações específicas que estão contribuindo para altas latências, examine as estatísticas de transação do seu banco de dados. Foque nas transações com alta latência média. Otimize o formato da transação para reduzir as latências. Considere aplicar as práticas recomendadas para reduzir a disputa por bloqueios na documentação do Spanner.
Para mais detalhes sobre as tabelas de estatísticas de transação, consulte Estatísticas de transação na documentação do Spanner.