Este documento descreve como usar o painel de insights de hotspot para detectar hotspots no seu 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 o uso excessivo dos pontos de acesso ajuda a detectar as divisões afetadas por eles. Siga estas etapas para determinar se os hotspots 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.
- Identifique divisões quentes problemáticas.
Os insights de hotspot 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 destaque.
Retenção de dados
As políticas de retenção de dados dos gráficos de insights de destaque e da 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 dinâmica.
Funções exigidas
Talvez você precise de diferentes papéis e permissões do IAM, dependendo se é um usuário do IAM ou de controle de acesso refinado.
Usuário do Identity and Access Management (IAM)
Para receber as permissões necessárias para acessar a página Insights de ponto 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 Leitor de banco de dados do Cloud Spanner (
roles/spanner.databaseReader) são necessárias para acessar a página Insights de hotspot:
spanner.databases.beginReadOnlyTransactionspanner.databases.selectspanner.sessions.create
Usuário de controle de acesso refinado
Se você usa o controle de acesso refinado, verifique se:
- Ter a função Leitor do Cloud Spanner
(
roles/spanner.viewer) - Ter privilégios de controle de acesso detalhado e receber a função de sistema
spanner_sys_readerou uma das funções de membro dela. - Selecione
spanner_sys_readerou uma função de membro como sua função atual do sistema na página Visão geral do banco de dados.
Para mais informações, consulte Visão geral do controle de acesso minucioso e Funções do sistema de controle de acesso minucioso.
Abrir o painel de insights de ponto de acesso
O painel Insights de hotspot 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 acessar o painel Insights de pontos de acesso de um banco de dados, faça o seguinte:
No console Google Cloud , abra a página 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 uma opção na lista. O painel mostra a pontuação de pico de uso de CPU de divisão para o banco de dados.
O painel inclui os seguintes elementos:
- Gráfico Pontuação de pico de uso de CPU de divisão: uma pontuação de uso de CPU mais alta (como perto de 100) indica que a divisão está ativa e provavelmente causando um ponto de acesso no servidor em comparação com pontuações mais baixas.
- Campo do banco de dados: filtra as informações de divisão ativa em um banco de dados específico ou em todos os bancos de dados.
- Filtro de período: filtra o uso da CPU por divisões de pico em incrementos de 1 minuto até um total de 6 horas.
- Tabela de N divisões principais: mostra a lista das principais divisões classificadas por pontuações de uso de CPU de divisão.

Como entender os dados na tabela de divisão TopN:A tabela 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 dinâmica.
Interpretação de linhas das tabelas 10MINUTE ou HOUR:as linhas originadas 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 da tabela, o CPU_USAGE_SCORE nessas linhas é a pontuação máxima vista em qualquer subintervalo de um minuto subjacente, 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 alta e persistente de uso de CPU de divisão de pico, talvez seja necessário investigar mais a fundo.
Analise o gráfico para responder a estas perguntas:
Qual banco de dados está sofrendo a degradação da latência? Selecione diferentes bancos de dados na lista Bancos de dados para encontrar aqueles com a maior latência. Para descobrir qual banco de dados tem a maior carga, revise o gráfico Latência dos bancos de dados no console do Google Cloud .

A latência está alta? A latência está 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 hotspots 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 da CPU divididas em pico de 100% persistentes por pelo menos 10 minutos, talvez os hotspots não sejam um problema. Se a porcentagem de uso da CPU de divisão de pico for alta por mais de 10 minutos, investigue para saber se o banco de dados tem níveis de latência mais altos do que o esperado.
Se você notar porcentagens de uso da CPU de divisão de pico de 100% por mais de 10 minutos, talvez seja necessário intervir nos pontos de acesso. Em seguida, continue a jornada de depuração identificando as divisões ativas no seu banco de dados.
Identificar divisões dinâmicas problemáticas
Para identificar uma divisão potencialmente problemática que tenha pontos de acesso, consulte a seção TopN splits no console Google Cloud , conforme mostrado abaixo.

A tabela TopN de divisões oferece 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>, isso indica 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 a quantidade de CPU usada por acessos às linhas na divisão em um único servidor. Use essa pontuação para avaliar se você tem pontos de acesso com excesso de uso.
- Tabelas afetadas: as tabelas com linhas que podem estar na divisão.
- Motivos de não divisão: uma série 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 com base na carga não consegue reduzir o hotspot pelos motivos listados. Para mais informações, consulte
tipos de
UNSPLITTABLE_REASONS.
Analisar motivos de não divisão
A tabela Divisões TopN permite detalhar quais divisões específicas são afetadas por esses motivos em determinados momentos, conforme mostrado na coluna Motivos não divisíveis.
Exemplo de fluxo de trabalho de diagnóstico
Este é um fluxo de trabalho típico para depurar pontos de acesso usando o painel:
- Observe o problema de performance:note o aumento da latência ou erros no aplicativo.
- Abra os insights de hotspot:navegue até o painel de insights de hotspot no console do Google Cloud para o banco de dados relevante do Spanner. Selecione o período correspondente ao problema.
- Examinar gráfico:
- Verifique o gráfico Pontuação de pico de uso de CPU de divisão para 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 ver estas principais divisões:- Pontuação alta de uso da CPU dividida e motivos não divisíveis:esse é um sinal forte de que o problema de desempenho está relacionado a pontos de acesso que o Spanner não pode 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 para não dividir:o ponto de acesso pode ser novo, e o Spanner ainda pode estar em 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 da sua parte.
- Pontuação alta de uso da CPU dividida e motivos não divisíveis:esse é um sinal forte de que o problema de desempenho está relacionado a pontos de acesso que o Spanner não pode resolver automaticamente. O tipo de motivo, como
- Entenda os motivos:observe os códigos específicos na matriz
UNSPLITTABLE_REASONS. - Mitigação: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 divisão de pontos de acesso.