Trovare gli hotspot nel database

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:

  1. Apri la dashboard.
  2. Determina se gli hotspot richiedono il tuo intervento.
  3. 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:

Per visualizzare la pagina Approfondimenti sugli hotspot, sono necessarie le seguenti autorizzazioni nel ruolo Cloud Spanner Database Reader (roles/spanner.databaseReader):

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.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_reader o uno dei suoi ruoli membri.
  • Seleziona spanner_sys_reader o 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:

  1. Nella console Google Cloud , apri la pagina Spanner.

    Vai a Spanner

  2. Seleziona un'istanza dall'elenco.

  3. Nel menu di navigazione, fai clic sulla scheda Approfondimenti sugli hotspot.

  4. 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.

La dashboard degli approfondimenti sugli hotspot in Spanner, che mostra un grafico dell'utilizzo massimo della CPU per suddivisione, un selettore di database, un filtro dell'intervallo di tempo e una tabella delle prime N suddivisioni che causano un hotspot.

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 .

    Un grafico a linee intitolato "Punteggio utilizzo CPU con suddivisioni massime", che mostra il punteggio utilizzo CPU con suddivisioni massime nel tempo. Il grafico mostra un picco, che può indicare un
hotspot e potenziali problemi
di latenza.

  • 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.

Una tabella delle "TopN splits" in Spanner, che elenca le suddivisioni potenzialmente problematiche. La tabella include le colonne "Fine intervallo", "Inizio suddivisione", "Limite suddivisione", "Punteggio di utilizzo CPU con suddivisioni", "Tabelle interessate" e "Motivi di mancata suddivisione".

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:

  1. Osserva il problema di rendimento: nota l'aumento della latenza o degli errori nella tua applicazione.
  2. 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.
  3. 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.
  4. 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_REASONS per 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_ROW o MOVING_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.
  5. Comprendere i motivi:prendi nota dei codici specifici nell'array UNSPLITTABLE_REASONS.
  6. Mitigazione:in base ai motivi identificati, consulta i tipi di UNSPLITTABLE_REASONS per spiegazioni dettagliate e strategie di mitigazione consigliate, che di solito comportano modifiche alla progettazione dello schema o aggiustamenti del carico di lavoro.

Passaggi successivi