Questo documento descrive come utilizzare la dashboard delle statistiche sugli hotspot per rilevare gli hotspot nel database Spanner.
Panoramica degli insight sugli hotspot
Gli hotspot causano latenza nel database Spanner. La dashboard degli approfondimenti sugli hotspot ti aiuta a rilevare le suddivisioni interessate dagli hotspot. 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 divisioni problematiche.
Approfondimenti sugli hotspot è disponibile nelle configurazioni a regione singola, a più regioni e a due regioni.
Prezzi
Non sono previsti costi aggiuntivi per gli approfondimenti sugli hotspot.
Conservazione dei dati
Le norme di conservazione dei dati per i grafici degli approfondimenti sugli hotspot e la tabella delle suddivisioni TopN
si basano sulle tabelle SPANNER_SYS.SPLIT_STATS_TOP_* sottostanti. Per
norme di conservazione specifiche, vedi
Conservazione dei dati delle statistiche sulla divisione a caldo.
Ruoli obbligatori
Potresti aver bisogno di ruoli e autorizzazioni IAM diversi, a seconda che tu sia un utente IAM o un utente controllo dell'accesso dell'accesso granulare.
Utente Identity and Access Management (IAM)
Per ottenere le autorizzazioni necessarie per visualizzare la pagina Approfondimenti sugli hotspot, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'istanza:
-
Tutte:
-
Visualizzatore Cloud Spanner (
roles/spanner.viewer) -
Lettore database Cloud Spanner (
roles/spanner.databaseReader)
-
Visualizzatore Cloud Spanner (
Per visualizzare la pagina Approfondimenti 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 utilizzi il controllo dell'accesso granulare, assicurati di:
- Disporre del ruolo Visualizzatore Cloud Spanner
(
roles/spanner.viewer) - Disporre di privilegi di controllo dell'accesso granulare e avere il ruolo di sistema
spanner_sys_readero uno dei suoi ruoli membri. - Seleziona
spanner_sys_readero un ruolo del membro come ruolo di sistema attuale nella pagina Panoramica del database.
Per saperne di più, consulta la panoramica del controllo dell'accesso dell'accesso granulare e i ruoli di sistema percontrollo dell'accessoo dell'accesso granulare.
Apri la dashboard degli approfondimenti sugli hotspot
La dashboard Approfondimenti 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 per un database:
Nella console Google Cloud , apri la pagina Spanner.
Seleziona un'istanza dall'elenco.
Nel menu di navigazione, fai clic sulla scheda Approfondimenti sugli hotspot.
Nel campo database, seleziona un database dall'elenco. La dashboard mostra il punteggio di utilizzo 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 del database: filtra le informazioni sulle divisioni a caldo in un database specifico o in tutti i database.
- Filtro intervallo di tempo: filtra l'utilizzo della CPU delle suddivisioni massime con incrementi di 1 minuto fino a un totale di 6 ore.
- Tabella delle prime N suddivisioni: mostra l'elenco delle prime suddivisioni ordinate in base ai punteggi di utilizzo della CPU delle suddivisioni.

Informazioni sui dati nella tabella delle prime N suddivisioni:La tabella delle prime N suddivisioni viene compilata con i dati delle tabelle
SPANNER_SYS.SPLIT_STATS_TOP_* sottostanti in base all'intervallo di tempo selezionato. Per
maggiori informazioni, vedi
Conservazione dei dati delle statistiche sulla suddivisione a caldo.
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 dati aggregati nei rispettivi intervalli. Come descritto in
Aggregazione eventi tabella,
CPU_USAGE_SCORE in queste righe è il punteggio massimo rilevato in qualsiasi
sottointervallo di 1 minuto sottostante e UNSPLITTABLE_REASONS è un'unione di
motivi.
Determinare se gli hotspot richiedono un intervento
Se nel grafico vedi un picco o un aumento corrispondente alla latenza complessiva e un punteggio di utilizzo della CPU con suddivisioni massime elevato e persistente, potresti dover approfondire l'analisi.
Esamina il grafico per rispondere a queste domande:
Quale database sta riscontrando il degrado della latenza? Seleziona database diversi dall'elenco Database per trovare quelli con la latenza più elevata. Per scoprire quale database ha il carico più elevato, puoi anche esaminare il grafico Latenza per i database nella console Google Cloud .

La latenza è elevata? La latenza è elevata rispetto alla latenza prevista per il workload? Il grafico mostra un picco o un aumento nel tempo? Se non noti una latenza elevata, gli hotspot non sono un problema.
Il punteggio di utilizzo CPU con suddivisioni massime è al 100%? Il grafico mostra un picco o un aumento nel tempo? Se non visualizzi percentuali di utilizzo della CPU split di picco persistenti del 100% per almeno 10 minuti, gli hotspot potrebbero non essere un problema. Se la percentuale di utilizzo della CPU split di picco è elevata per più di 10 minuti, ti consigliamo di eseguire ulteriori indagini per verificare se il database presenta livelli di latenza superiori al previsto.
Se vedi percentuali di utilizzo della CPU di picco della suddivisione del 100% per più di 10 minuti, potrebbe essere necessario il tuo intervento per gli hotspot. A questo punto, puoi continuare il percorso di debug identificando le suddivisioni attive nel tuo database.
Identificare le divisioni a caldo problematiche
Per identificare una suddivisione potenzialmente problematica che presenta hotspot, consulta la sezione TopN splits nella console Google Cloud , come mostrato di seguito.

La tabella Suddivisioni TopN fornisce una panoramica delle suddivisioni che potrebbero essere frequenti durante l'intervallo di tempo scelto, ordinate dalla più recente alla meno recente. Il numero di divisioni TopN è limitato a 100.
Per i grafici, Spanner recupera i dati dalla tabella delle statistiche delle suddivisioni TopN, 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.
- 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 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. Il punteggio di utilizzo della CPU consente di valutare se esistono 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 che causa un hotspot. La presenza di valori qui indica che
la suddivisione basata sul carico non è in grado di mitigare l'hotspot per i motivi
elencati. Per saperne di più, consulta
Tipi di
UNSPLITTABLE_REASONS.
Analizzare i motivi per cui non è possibile dividere
La tabella Divisioni TopN ti consente di esaminare in dettaglio quali divisioni specifiche sono interessate da questi motivi in momenti particolari, come mostrato nella colonna Motivi non divisibili.
Esempio di workflow di diagnostica
Di seguito è riportato un flusso di lavoro tipico per il debug degli hotspot utilizzando la dashboard:
- Osserva il problema di rendimento: nota l'aumento della latenza o degli errori nella tua applicazione.
- Apri gli approfondimenti sugli hotspot: vai alla dashboard degli approfondimenti sugli hotspot nella console Google Cloud 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 sostenuti, ad esempio > 50%, soprattutto se si avvicinano al 100% per almeno 10 minuti.
- Identifica le suddivisioni interessate e metti in correlazione 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ù alto durante il periodo di impatto. Esamina
la colonna
UNSPLITTABLE_REASONSper queste suddivisioni principali:- Punteggio di utilizzo della CPU con suddivisioni elevato e motivi di mancata suddivisione: questo è un
indicatore forte che il problema di prestazioni è correlato a 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 massime elevato e nessun motivo di non divisibilità: l'hotspot potrebbe essere nuovo e Spanner potrebbe essere ancora in fase di suddivisione. In alternativa, il problema potrebbe rispondere alle modifiche nel workload, il che non richiede alcun intervento da parte tua.
- Punteggio di utilizzo della CPU con suddivisioni elevato e motivi di mancata suddivisione: questo è un
indicatore forte che il problema di prestazioni è correlato a hotspot che
Spanner non può risolvere automaticamente. Il tipo di motivo, ad esempio
- Comprendere i motivi:prendi nota dei codici specifici nell'array
UNSPLITTABLE_REASONS. - Mitigazione:in base ai motivi identificati, consulta i tipi di
UNSPLITTABLE_REASONSper spiegazioni dettagliate e strategie di mitigazione consigliate, che di solito comportano modifiche alla progettazione dello schema o aggiustamenti del carico di lavoro.
Passaggi successivi
- Scopri di più sulle statistiche sugli hotspot suddivisi