Neste documento, descrevemos como usar o painel de insights de pontos de acesso para detectar pontos de acesso no banco de dados do Spanner.
Visão geral dos insights de ponto de acesso
Os pontos de acesso causam latência no banco de dados do Spanner. O painel de insights sobre pontos de acesso ajuda a detectar as divisões afetadas por pontos de acesso. Siga estas etapas para determinar se os pontos de acesso estão causando latência e, em caso afirmativo, como resolver o problema:
- Abra o painel.
- Determine se os pontos de acesso precisam da sua intervenção.
- Identificar divisões quentes problemáticas.
Os insights de pontos de acesso estão disponíveis em configurações de região única, multirregional e birregional.
Preços
Não há custo adicional para os insights de ponto de acesso.
Retenção de dados
As políticas de retenção de dados para os gráficos de insights de pontos de acesso e a tabela de divisões TopN são baseadas nas tabelas SPANNER_SYS.SPLIT_STATS_TOP_* subjacentes. Para
políticas de retenção específicas, consulte
Retenção de dados de estatísticas de divisão ativa.
Funções exigidas
Talvez você precise de diferentes papéis e permissões do Identity and Access Management (IAM), dependendo de ser um usuário do IAM ou um usuário de controle de acesso refinado.
Usuário do IAM
Para receber as permissões necessárias para visualizar a página Insights de pontos de acesso, peça ao administrador para conceder a você os seguintes papéis do IAM na instância:
-
Todos:
- Leitor do Cloud Spanner (
roles/spanner.viewer) - Leitor de banco de dados do Cloud Spanner (
roles/spanner.databaseReader)
- Leitor do Cloud Spanner (
As seguintes permissões no papel de Leitor do banco de dados do Cloud Spanner (
roles/spanner.databaseReader) são necessárias para acessar a página Insights de pontos de acesso:
spanner.databases.beginReadOnlyTransactionspanner.databases.selectspanner.sessions.create
Usuário do controle de acesso refinado
Se você é um usuário de controle de acesso refinado, verifique se:
- Ter o papel de Leitor do Cloud Spanner
(
roles/spanner.viewer) - Ter privilégios de controle de acesso refinado e receber o papel do sistema
spanner_sys_readerou um dos papéis de membro dele. - Selecione
spanner_sys_readerou um papel de membro como seu papel atual do sistema na página Visão geral do banco de dados.
Para mais informações, consulte a visão geral do controle de acesso refinado e os papéis do sistema de controle de acesso refinado.
Abrir o painel de insights de ponto de acesso
O painel Insights de pontos de acesso mostra a porcentagem de pico de uso de CPU de divisão. Essa métrica é uma porcentagem abstrata de 0 a 100 que reflete a quantidade de CPU usada quando as linhas em uma divisão são acessadas.
Para ver o painel Insights de pontos de acesso de um banco de dados, faça o seguinte:
No console do Google Cloud , abra a página do Spanner.
Selecione uma instância na lista.
No menu de navegação, clique na guia Insights de pontos de acesso.
No campo banco de dados, selecione um banco de dados na lista. O painel mostra a pontuação de pico de uso de CPU de divisão do banco de dados.
O painel inclui os seguintes elementos:
- Gráfico de pontuação de pico de uso de CPU de divisão: uma pontuação de uso da CPU mais alta (por exemplo, perto de 100) indica que a divisão está quente e provavelmente está causando um ponto de acesso no servidor em comparação com pontuações mais baixas.
- Campo de banco de dados: filtra as informações de divisões quentes em um banco de dados específico ou em todos os bancos de dados.
- Filtro de período: filtra o uso de CPU das divisões de pico em incrementos de 1 minuto até um total de 6 horas.
- Tabela das N principais divisões: mostra a lista das principais divisões classificadas por pontuações de uso de CPU de divisão.

Noções básicas sobre os dados na tabela de divisões TopN:
a tabela de divisões TopN preenche os dados das tabelas SPANNER_SYS.SPLIT_STATS_TOP_*
com base no período selecionado. Para
mais informações, consulte
Retenção de dados de estatísticas de divisão ativa.
Interpretação de linhas das tabelas 10MINUTE ou HOUR:
as linhas provenientes de SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE ou SPANNER_SYS.SPLIT_STATS_TOP_HOUR
representam dados agregados nos respectivos intervalos. Conforme descrito em
Agregação de eventos de tabela,
o CPU_USAGE_SCORE nessas linhas é a pontuação máxima vista em qualquer
subintervalo de um minuto, e UNSPLITTABLE_REASONS é uma união de
motivos.
Determinar se as áreas de risco precisam de intervenção
Se você notar um pico ou uma elevação no gráfico que corresponda à latência geral e uma pontuação de uso de CPU de divisão de pico alta persistente, talvez seja necessário investigar mais.
Analise o gráfico para responder a estas perguntas:
Qual banco de dados está passando pela degradação da latência? Selecione diferentes bancos de dados na lista Bancos de dados para encontrar os bancos de dados com a maior latência. Para descobrir qual banco de dados tem a maior carga, você também pode analisar o gráfico de latência para bancos de dados no console do Google Cloud .

A latência está alta? A latência é alta em comparação com a latência esperada para a carga de trabalho? O gráfico está piscando ou aumentando ao longo do tempo? Se você não notar uma latência alta, os pontos de acesso não são um problema.
A pontuação de pico de uso de CPU de divisão está em 100%? O gráfico está piscando ou aumentando ao longo do tempo? Se você não encontrar porcentagens de uso de CPU de pico de divisão de 100% persistentes por pelo menos 10 minutos, os pontos de acesso podem não ser um problema. Se a porcentagem de uso de CPU de divisão de pico for alta por mais de 10 minutos, investigue mais para ver se o banco de dados tem níveis de latência maiores do que o esperado.
Se você notar porcentagens de uso de CPU de divisão de pico de 100% por mais de 10 minutos, talvez os pontos de acesso precisem da sua intervenção. Em seguida, você pode continuar a jornada de depuração identificando as divisões mais usadas no banco de dados.
Identificar divisões de acesso frequente problemáticas
Para identificar uma divisão potencialmente problemática que tenha pontos de acesso, consulte a seção Divisões TopN no console do Google Cloud , conforme mostrado a seguir.

A tabela de divisões TopN fornece uma visão geral das divisões que podem estar ativas durante o período escolhido, classificadas da mais recente para a mais antiga. O número de divisões TopN é limitado a 100.
Para os gráficos, o Spanner busca dados da tabela de estatísticas de divisões TopN, com uma granularidade de um minuto. O valor de cada ponto de dados nos gráficos representa o valor médio em um intervalo de um minuto.
A tabela mostra as seguintes propriedades:
- Fim do intervalo: a data e a hora em que o pico de uso da CPU termina.
- Início da divisão: a chave inicial do intervalo de linhas na divisão. Se o início da divisão for <begin>, isso indica o início do intervalo de chaves do banco de dados.
- Limite de divisão: a chave de limite do intervalo de linhas na divisão. Se a chave de limite for <end>, ela vai indicar o fim do intervalo de chaves do banco de dados.
- Pontuação de uso de CPU de divisão: uma pontuação abstrata entre 0 e 100 que reflete quanta CPU é usada por acessos às linhas na divisão em um único servidor. Use a pontuação de uso da CPU para ajudar a avaliar se você tem pontos de acesso com uso excessivo.
- Tabelas afetadas: as tabelas com linhas que podem estar na divisão.
- Motivos de não divisão: uma matriz de motivos pelos quais o Spanner
não pode dividir ainda mais uma divisão ativa. A presença de valores aqui indica que
a divisão baseada em carga não pode mitigar o ponto de acesso pelos motivos
listados. Para mais informações, consulte
Tipos de
UNSPLITTABLE_REASONS.
Analisar motivos de não divisão
A tabela TopN splits permite que você veja quais divisões específicas são afetadas por esses motivos em determinados momentos, conforme mostrado na coluna Unsplittable reasons.
Exemplo de fluxo de trabalho de diagnóstico
Veja um fluxo de trabalho típico para depurar pontos de acesso usando o painel:
- Observe o problema de desempenho: observe o aumento da latência ou erros no aplicativo.
- Abra os insights de pontos de acesso: acesse o painel de insights de pontos de acesso no console do Google Cloud para o banco de dados do Spanner relevante. Selecione o período correspondente ao problema.
- Analisar o gráfico:
- Verifique se o gráfico Pontuação de pico de uso de CPU de divisão apresenta valores altos sustentados, por exemplo, >50%, especialmente se aproximando de 100% por pelo menos 10 minutos.
- Identifique as divisões afetadas e correlacione as descobertas: se o uso da CPU estiver alto,
acesse a tabela N divisões principais. Filtre ou classifique para encontrar as divisões com
a maior pontuação de uso de CPU de divisão durante o período de impacto. Analise
a coluna
UNSPLITTABLE_REASONSpara estas divisões principais:- Pontuação alta de uso de CPU de divisão e motivos não divisíveis: é um
forte sinal de que o problema de desempenho está relacionado a pontos de acesso que o
Spanner não consegue resolver automaticamente. O tipo de motivo,
como
HOT_ROWouMOVING_HOT_SPOT, fornece uma pista crucial. - Pontuação alta de uso de CPU de divisão e nenhum motivo de não divisão: o ponto de acesso pode ser novo, e o Spanner ainda pode estar no processo de divisão. Como alternativa, o problema pode estar respondendo a mudanças na carga de trabalho, o que não exige nenhuma ação sua.
- Pontuação alta de uso de CPU de divisão e motivos não divisíveis: é um
forte sinal de que o problema de desempenho está relacionado a pontos de acesso que o
Spanner não consegue resolver automaticamente. O tipo de motivo,
como
- Entenda os motivos: observe os códigos específicos na matriz
UNSPLITTABLE_REASONS. - Mitigar: com base nos motivos identificados, consulte os
tipos de
UNSPLITTABLE_REASONSpara explicações detalhadas e estratégias de mitigação recomendadas, que geralmente envolvem mudanças no design do esquema ou ajustes na carga de trabalho.
A seguir
- Saiba mais sobre as estatísticas de pontos de acesso divididos.