Questo documento descrive come utilizzare la dashboard degli insight sugli hotspot per rilevare gli hotspot nel database Spanner.
Panoramica degli insight sugli hotspot
Gli hotspot causano latenza nel database Spanner. La dashboard degli insight sugli hotspot consente di rilevare le suddivisioni interessate dagli hotspot. Segui questi passaggi per determinare se gli hotspot causano latenza e, in caso affermativo, come risolvere il problema:
- Apri la dashboard.
- Determina se gli hotspot richiedono il tuo intervento.
- Identifica le suddivisioni frequenti problematiche.
Gli insight sugli hotspot sono disponibili nelle configurazioni a regione singola, a più regioni e a due regioni.
Prezzi
Non sono previsti costi aggiuntivi per gli insight sugli hotspot.
Conservazione dei dati
Le policy di conservazione dei dati per i grafici degli insight sugli hotspot e la tabella delle prime N suddivisioni si basano sulle tabelle SPANNER_SYS.SPLIT_STATS_TOP_* sottostanti. Per
le policy di conservazione specifiche, consulta
Conservazione dei dati delle statistiche sulle suddivisioni frequenti.
Ruoli obbligatori
Potresti aver bisogno di ruoli e autorizzazioni IAM diversi, a seconda che tu sia un utente IAM o un utente con controllo dell'accesso granulare.
Utente Identity and Access Management (IAM)
Per ottenere le autorizzazioni necessarie per visualizzare la pagina Insight sugli hotspot, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'istanza:
-
Tutti:
- Visualizzatore Cloud Spanner (
roles/spanner.viewer) - Cloud Spanner Database Reader (
roles/spanner.databaseReader)
- Visualizzatore Cloud Spanner (
Per visualizzare la pagina Insight sugli hotspot sono necessarie le seguenti autorizzazioni nel ruolo Cloud Spanner Database Reader (
roles/spanner.databaseReader):
spanner.databases.beginReadOnlyTransactionspanner.databases.selectspanner.sessions.create
Utente con controllo dell'accesso granulare
Se sei un utente con controllo dell'accesso granulare, assicurati di:
- Avere il ruolo Visualizzatore Cloud Spanner
(
roles/spanner.viewer) - Disporre dei privilegi di controllo dell'accesso granulare e avere il ruolo di sistema
spanner_sys_readero uno dei suoi ruoli membri. - Selezionare
spanner_sys_readero un ruolo membro come ruolo di sistema corrente nella pagina Panoramica del database.
Per ulteriori informazioni, consulta Panoramica del controllo dell'accesso granulare e Ruoli di sistema per il controllo dell'accesso granulare.
Apri la dashboard degli insight sugli hotspot
La dashboard Insight sugli hotspot mostra la percentuale di utilizzo della CPU con suddivisioni massime. Questa metrica è una percentuale astratta compresa tra 0 e 100 che riflette la quantità di CPU utilizzata quando si accede alle righe all'interno di una suddivisione.
Per visualizzare la dashboard Insight sugli hotspot di un database:
Nella Google Cloud console, apri la pagina Spanner.
Seleziona un'istanza dall'elenco.
Nel menu di navigazione, fai clic sulla scheda Insight sugli hotspot.
Nel campo database, seleziona un database dall'elenco. La dashboard mostra il punteggio di utilizzo della CPU con suddivisioni massime per il database.
La dashboard include i seguenti elementi:
- Grafico Punteggio utilizzo CPU con suddivisioni massime: un punteggio di utilizzo della CPU più alto (ad esempio vicino a 100) indica che la suddivisione è molto attiva ed è più probabile che causi un hotspot nel server rispetto a punteggi più bassi.
- Campo Database: filtra le informazioni sulle suddivisioni frequenti in un database specifico o in tutti i database.
- Filtro intervallo di tempo: filtra l'utilizzo della CPU con suddivisioni massime con incrementi di 1 minuto fino a un totale di 6 ore.
- Tabella delle prime N suddivisioni: mostra l'elenco delle suddivisioni principali ordinate in base ai punteggi di utilizzo della CPU con suddivisioni.

Informazioni sui dati nella tabella delle prime N suddivisioni: la tabella Prime N suddivisioni popola i dati dalle tabelle SPANNER_SYS.SPLIT_STATS_TOP_* sottostanti in base all'intervallo di tempo selezionato. Per
ulteriori informazioni, consulta
Conservazione dei dati delle statistiche sulle suddivisioni frequenti.
Interpretazione delle righe delle tabelle 10MINUTE o HOUR:
Le righe provenienti da SPANNER_SYS.SPLIT_STATS_TOP_10MINUTE o SPANNER_SYS.SPLIT_STATS_TOP_HOUR
rappresentano i dati aggregati nei rispettivi intervalli. Come descritto in
Aggregazione degli eventi della tabella,
il CPU_USAGE_SCORE in queste righe è il punteggio massimo visualizzato in qualsiasi
sottointervallo di 1 minuto sottostante e UNSPLITTABLE_REASONS è un' unione di
motivi.
Determina se gli hotspot richiedono un intervento
Se nel grafico vedi un picco o un aumento che corrisponde alla latenza complessiva e un punteggio di utilizzo della CPU con suddivisioni massime elevato e persistente, potresti dover approfondire la situazione.
Esamina il grafico per rispondere a queste domande:
Quale database sta subendo un peggioramento della latenza? Seleziona database diversi dall'elenco Database per trovare i database con la latenza più elevata. Per scoprire quale database ha il carico più elevato, puoi anche esaminare il graficoLatenza dei database nella Google Cloud console.

La latenza è elevata? La latenza è elevata rispetto alla latenza prevista per il carico di lavoro? Il grafico sta aumentando o diventando più elevato nel tempo? Se non vedi una latenza elevata, gli hotspot non sono un problema.
Il punteggio di utilizzo della CPU con suddivisioni massime è al 100%? Il grafico sta aumentando o diventando più elevato nel tempo? Se non vedi percentuali di utilizzo della CPU con suddivisioni massime persistenti al 100% per almeno 10 minuti, gli hotspot potrebbero non essere un problema. Se la percentuale di utilizzo della CPU con suddivisioni massime è elevata per più di 10 minuti, potresti voler approfondire la situazione per verificare se il database ha livelli di latenza superiori al previsto.
Se vedi percentuali di utilizzo della CPU con suddivisioni massime al 100% per più di 10 minuti, gli hotspot potrebbero richiedere il tuo intervento. A questo punto, puoi continuare il percorso di debug identificando le suddivisioni frequenti nel database.
Identifica le suddivisioni frequenti problematiche
Per identificare una suddivisione potenzialmente problematica con hotspot, consulta la sezione Prime N suddivisioni nella Google Cloud console, come mostrato di seguito.

La tabella Prime N suddivisioni fornisce una panoramica delle suddivisioni che potrebbero essere frequenti durante la finestra temporale scelta, ordinate dalla più recente alla meno recente. Il numero di suddivisioni principali è limitato a 100.
Per i grafici, Spanner recupera i dati dalla tabella delle statistiche delle prime N suddivisioni, con una granularità di un minuto. Il valore di ogni punto dati nei grafici rappresenta il valore medio in un intervallo di un minuto.
La tabella mostra le seguenti proprietà:
- Fine intervallo: la data e l'ora in cui termina l'utilizzo elevato della CPU con suddivisioni massime.
- Inizio suddivisione: la chiave iniziale dell'intervallo di righe nella suddivisione. Se l'inizio della suddivisione è <begin>, indica l'inizio dell'intervallo di chiavi del database.
- Limite suddivisione: la chiave del limite dell'intervallo di righe nella suddivisione. Se la chiave del limite è <end>, indica la fine dell'intervallo di chiavi del database.
- Punteggio di utilizzo della CPU con suddivisioni: un punteggio astratto compreso tra 0 e 100 che riflette la quantità di CPU utilizzata dagli accessi alle righe all'interno della suddivisione su un singolo server. Utilizza il punteggio di utilizzo della CPU per valutare se hai hotspot.
- Tabelle interessate: le tabelle le cui righe potrebbero essere nella suddivisione.
- Motivi per cui non è possibile dividere: un array di motivi per cui Spanner
non può dividere ulteriormente una suddivisione frequente. La presenza di valori qui indica che la suddivisione basata sul carico non è in grado di attenuare l'hotspot per i motivi elencati. Per ulteriori informazioni, consulta i tipi di
UNSPLITTABLE_REASONS.
Analizza i motivi per cui non è possibile dividere
La tabella Prime N suddivisioni ti consente di visualizzare in dettaglio quali suddivisioni specifiche sono interessate da questi motivi in momenti particolari, come mostrato nella colonna Motivi per cui non è possibile dividere.
Esempio di workflow di diagnosi
Di seguito è riportato un workflow tipico per il debug degli hotspot utilizzando la dashboard:
- Osserva il problema di prestazioni: nota un aumento della latenza o degli errori nella tua applicazione.
- Apri gli insight sugli hotspot: vai alla dashboard degli insight sugli hotspot nella Google Cloud console per il database Spanner pertinente. Seleziona l'intervallo di tempo corrispondente al problema.
- Esamina il grafico:
- Controlla il grafico Punteggio utilizzo CPU con suddivisioni massime per valori elevati e sostenuti, ad esempio >50%, soprattutto se si avvicinano al 100% per almeno 10 minuti.
- Identifica le suddivisioni interessate e correla i risultati: se l'utilizzo della CPU è elevato, vai alla tabella Prime N suddivisioni. Filtra o ordina per trovare le suddivisioni con il Punteggio di utilizzo della CPU con suddivisioni più elevato durante il periodo di impatto. Esamina la colonna
UNSPLITTABLE_REASONSper queste suddivisioni principali:- Punteggio di utilizzo della CPU con suddivisioni elevato e motivi per cui non è possibile dividere: questo è un segnale forte che il problema di prestazioni è correlato agli hotspot che Spanner non può risolvere automaticamente. Il tipo di motivo, ad esempio
HOT_ROWoMOVING_HOT_SPOT, fornisce un indizio fondamentale. - Punteggio di utilizzo della CPU con suddivisioni elevato e nessun motivo per cui non è possibile dividere: l'hotspot potrebbe essere nuovo e Spanner potrebbe essere ancora in fase di suddivisione. In alternativa, il problema potrebbe rispondere alle modifiche del carico di lavoro, il che non richiede alcuna azione da parte tua.
- Punteggio di utilizzo della CPU con suddivisioni elevato e motivi per cui non è possibile dividere: questo è un segnale forte che il problema di prestazioni è correlato agli hotspot che Spanner non può risolvere automaticamente. Il tipo di motivo, ad esempio
- Comprendi i motivi: prendi nota dei codici specifici nell'array
UNSPLITTABLE_REASONS. - Attenua: in base ai motivi identificati, consulta i tipi di
UNSPLITTABLE_REASONSper spiegazioni dettagliate e strategie di mitigazione consigliate, che in genere comportano modifiche alla progettazione dello schema o modifiche del carico di lavoro.
Passaggi successivi
- Scopri di più sulle statistiche sugli hotspot di suddivisione