Identificar transações que podem causar altas latências

Esta página descreve como usar os insights de bloqueio e Insights sobre transações para identificar transações que levam a latências diferentes.

Visão geral

Para garantir a consistência de várias transações simultâneas, O Spanner usa bloqueios para controlar acesso aos dados. A contenção de bloqueio ocorre quando muitas transações exigem acesso frequente ao mesmo bloqueio, levando a altas latências. Sem um interface visual, pode ser tedioso identificar as transações problemáticas que levam a muitos problemas de contenção de bloqueio.

As operações do Spanner adquirem bloqueios quando fazem parte de um read-write. As transações somente leitura não adquirem bloqueios.

O Spanner ajuda a identificar transações que levam a altas latências orientando você pelas seguintes etapas:

  1. Verifique se há um pico nas latências usando o Spanner Monitoring.
  2. Verifique se há problemas de contenção de bloqueio usando os insights de bloqueio.
  3. Identifique transações problemáticas usando os insights de transações.

Preços

Não há custo extra para os insights de bloqueio ou de transação.

Configurações de região

Os insights de bloqueio e de transações estão disponíveis no com configurações regionais e multirregionais.

Retenção de dados

A retenção máxima dos dados mostrados no A duração dos painéis de bloqueio e insights de transações é de 30 dias. Para gráficos, os dados são recuperados de SPANNER_SYS.* tabela, que tem uma retenção máxima período de 30 dias.

Para mais informações sobre essas tabelas e retenção de dados, consulte Estatísticas de bloqueio e Estatísticas de transações.

Funções exigidas

Você vai precisar de diferentes papéis e permissões do IAM, dependendo se se você for um usuário do IAM ou um usuário de controle de acesso refinado.

Usuário do Identity and Access Management (IAM)

Para ter as permissões necessárias para acessar a página "Insights de bloqueio e transação", peça ao administrador para conceder a você os seguintes papéis do IAM na instância:

As seguintes permissões do papel Leitor de banco de dados do Cloud Spanner (roles/spanner.databaseReader) são necessárias para acessar a página "Insights de bloqueio e transação":

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

Usuário de controle de acesso granular

Se você é um usuário de controle de acesso refinado, certifique-se de:

  • Tenha o Leitor do Cloud Spanner(roles/spanner.viewer)
  • Têm apenas privilégios de controle de acesso refinados e recebem a permissão spanner_sys_reader função do sistema ou uma das funções de membro dele.
  • Selecione as funções de spanner_sys_reader ou participantes como sua função atual do sistema na página de visão geral do banco de dados.
.

Para mais informações, consulte Sobre controle de acesso detalhado e Papéis refinados do sistema de controle de acesso.

Verificar se há um pico nas latências usando o Spanner Monitoring

É possível usar o Cloud Monitoring para definir alertas para métricas que excedam os limites especificados para todas as solicitações.

Se você receber um alerta que indique um pico nas latências de um você poderá confirmá-la no Spanner Painel do Monitoring, que mostra gráficos para várias métricas importantes. O gráfico de Latência ajuda a conferir latências nos percentis 50 e 99.

Para confirmar um pico nas latências de gravação no 99o percentil, siga estas etapas:

  1. No console do Google Cloud, acesse a página Instâncias do Spanner.

    Acessar "Instâncias do Spanner"

  2. Clique no nome da instância.

    O console do Google Cloud exibe uma visão geral da instância.

  3. Clique em Monitoramento no menu de navegação.

    O console do Google Cloud exibe gráficos de dados para o instância.

  4. No gráfico Latência, defina a Função como Write e o Percentil como 99th.

  5. Verifique se o gráfico atualizado mostra picos.

Um gráfico mostrando latências de gravação no 99o percentil

Se você observar que a utilização da CPU não está aumentando, e os erros atingem operações por segundo, é provável que os picos de latência se devam ao bloqueio contenções.

Verificar se há problemas de contenção de bloqueio usando os insights de bloqueio

O "Painel de insights de bloqueio" mostra o tempo de espera ou de um banco de dados selecionado. Ele ajuda a confirmar se há devido a contenções de bloqueio.

Verificar se o tempo de espera de bloqueio é alto

Para verificar se o tempo de espera de bloqueio é alto, siga estas etapas:

  1. Clique em Bloquear insights no menu de navegação.

    O console do Google Cloud mostra a Espera de bloqueio total. gráfico que mostra o tempo de espera de bloqueio de cada banco de dados na instância.

    Os dados mostrados são para 1 hour por padrão, como o seletor de tempo na no canto superior direito do painel "Bloquear insights". Para acessar os dados Para um intervalo maior, selecione outra opção, como 1 day.

    Para mais informações, consulte Como trabalhar com gráficos.

  2. No seletor Bancos de dados na parte superior, selecione o banco de dados que mostra. o maior tempo de espera de bloqueio.

    O gráfico Espera de bloqueio total é atualizado para mostrar apenas os dados do banco de dados selecionado.

    Além disso, outro gráfico, Espera de bloqueio por intervalo de linhas, exibe gráficos para tempo de espera de bloqueio por intervalos de linhas.

  3. Clique no gráfico e arraste horizontalmente para expandir a hora em que há uma latência pico está visível.

O painel "Bloquear insights"

analisar os dados de espera de bloqueio

A tabela Lock Insights mostra as seguintes colunas da SPANNER_SYS.LOCK_STATS tabelas do sistema:

  • Chave de início do intervalo de linhas: a chave de linha em que ocorreu o conflito de bloqueio. Quando o conflito envolver um intervalo de linhas, o valor representará a chave inicial do o intervalo. Um sinal de adição (+) indica um intervalo.
  • Espera de bloqueio: o tempo total de espera de bloqueio representado visualmente em uma barra horizontal. De padrão, a tabela usa essa coluna para classificações e mostra a chave de início do intervalo de linhas com o tempo de espera de bloqueio mais alto no topo.
  • Espera de bloqueio (segundos): o tempo de espera de bloqueio cumulativo dos conflitos registrados. para todas as colunas no intervalo de chave de linha, em segundos.
  • Espera de bloqueio (%): o tempo de espera dos conflitos de bloqueio registrados para todos colunas no intervalo chave de linha como porcentagem do tempo total de espera de bloqueio para todos dos intervalos de chave de linha no banco de dados.
.

Para correlacionar os dados do gráfico Espera de bloqueio por intervalo de linhas com os dados do da tabela, selecione uma linha. A linha relacionada aparece destacada. Inversamente, selecione a caixa de seleção para uma linha na tabela para ver a linha relacionada no gráfico.

A tabela "Bloquear insights"

Para filtrar os dados na tabela, faça o seguinte:

  1. Clique na caixa de texto ao lado de Filtrar.

  2. Selecione uma propriedade, escolha um operador e especifique um valor.

A tabela mostra os dados que correspondem ao filtro.

Ver exemplos de solicitações de bloqueio

O painel Amostras de solicitações de bloqueio mostra detalhes sobre o exemplo de bloqueio solicitações de transações concorrentes.

Para acessar um exemplo de informações de solicitação de bloqueio referente a uma chave de início de intervalo de linhas, clique em o link relacionado na tabela.

A tabela mostra as seguintes colunas de informações:

  • Nome da coluna de amostra: a coluna que encontrou o bloqueio conflito no intervalo de chave de linha.
  • Modo de bloqueio: o modo de bloqueio solicitado.
  • Visualizar transações: um link para a página Insights da transação, que mostra as transações que podem estar disputando bloqueios.

Página de detalhes dos insights do bloqueio

Identifique transações concorrentes usando insights de transações

O painel "Insights sobre transações" mostra a latência das transações uma instância ou um banco de dados selecionado. Ele pode ajudar você a identificar as transações que podem estar levando a altas latências devido a contenções de bloqueio.

Conferir as latências das transações

Para visualizar a latência das transações, siga estas etapas:

  1. Clique em Insights da transação no painel de navegação à esquerda.

  2. No seletor Bancos de dados na parte superior, selecione o banco de dados que mostra. o maior tempo de espera de bloqueio.

    Como alternativa, no painel "Bloquear insights", clique em Ver transações para filtrar transações que leem ou gravam em um endereço coluna de amostra.

    Os dados mostrados são para 1 hour por padrão, como o seletor de tempo na no canto superior direito do painel "Insights da transação".

O painel mostra os seguintes gráficos:

  • O gráfico Latência média (todas as transações) mostra a latência de todas transações na instância.

  • O gráfico Latência média (por transação) mostra a latência para cada transação para o banco de dados selecionado.

Painel de insights de transações

Analisar os dados da transação

É possível visualizar e analisar dados de cada transação na tabela abaixo do gráficos. A tabela mostra dados de métricas do SPANNER_SYS.TXN_STATS nas tabelas a seguir:

  • Impressão digital: o hash da tag de transação, se houver. Caso contrário, o hash é calculado com base nas operações envolvidas na transação. O valor é Um link que leva à página "Detalhes da transação".
  • Tag de transação: a tag de transação opcional para a transação. Dados estatísticos de várias transações com a mesma tag. string é agrupada em uma única linha, com o rótulo TRANSACTION_TAG correspondente ao string da tag.
  • Tabelas afetadas: as tabelas afetadas pela transação.
  • Leitura de tabela.coluna: as colunas lidas pela transação.
  • Table.column Gravação: as colunas em que a transação gravou.
  • Latência média (segundos): média de segundos necessários para realizar a transação. Por padrão, a tabela é classificada por essa coluna em ordem decrescente.

Para correlacionar os dados do gráfico Latência média (por transação) com o dados na tabela, selecione uma linha no gráfico. A linha correspondente na tabela aparecerá em destaque.

Para filtrar os dados na tabela, faça o seguinte:

  1. Clique ao lado de Filtrar.

  2. Selecione uma propriedade, escolha um operador e especifique um valor.

A tabela mostra os dados que correspondem ao filtro.

Tabela de insights da transação

Visualizar informações detalhadas sobre uma transação

Para visualizar informações detalhadas sobre uma transação, como a que mostra o maior latência, clique no link Impressão digital na respectiva linha da tabela.

A página Detalhes da transação é exibida. Além da tabela de detalhes no topo, ele mostra as seguintes informações:

  • Uma barra que mostra valores numéricos para cada uma dessas métricas:

    • Média de bytes: o número médio de bytes gravados pela transação.
    • Latência média: a média de segundos da primeira operação do a ser confirmada ou cancelada.
    • Latência média de confirmação: a média de segundos necessários para executar a operação de confirmação.
    • Contagem total de tentativas: o número total de tentativas de transação.
    • Contagem total de cancelamentos: o número total de tentativas de transação que canceladas, incluindo aquelas que são canceladas antes de chamar o método commit.
  • Gráficos que representam esses valores.

    Além disso, o gráfico Média de participantes mostra o número médio de participantes em cada tentativa de confirmação.

Página de detalhes "Insights de transações"

Investigue se o formato da transação pode ser otimizado para reduzir as latências. Considere aplicar as práticas recomendadas para reduzir a contenção de bloqueio.

A seguir