Identifica le transazioni che potrebbero causare elevate latenze

In questa pagina viene descritto come utilizzare gli insight sui blocchi e Informazioni sulle transazioni per identificare le transazioni che generano un aumento del e la latenza minima.

Panoramica

Per garantire la coerenza di più transazioni simultanee, Spanner usa dei blocchi per controllare l'accesso ai dati. La contesa del blocco si verifica quando molte transazioni richiedono accesso frequente allo stesso blocco, il che genera latenze elevate. Senza un visiva, può essere noioso identificare le transazioni che generano un numero elevato di problemi di contesa dei blocchi.

Le operazioni Spanner acquisiscono blocchi quando le operazioni fanno parte di un una transazione di lettura/scrittura. Le transazioni di sola lettura non acquisiscono blocchi.

Spanner ti aiuta a identificare le transazioni che generano e la latenza elevata, guidandoti attraverso i seguenti passaggi:

  1. Verifica la presenza di picchi di latenze utilizzando Spanner Monitoring.
  2. Verifica la presenza di problemi di contesa dei blocchi utilizzando gli insight sui blocchi.
  3. Identifica le transazioni problematiche utilizzando Informazioni sulle transazioni.

Prezzi

Non sono previsti costi aggiuntivi per gli approfondimenti sui blocchi o per gli approfondimenti sulle transazioni.

Configurazioni per regione

Gli approfondimenti sui blocchi e gli approfondimenti sulle transazioni sono disponibili in configurazioni regionali e multiregionali.

Conservazione dei dati

La conservazione massima dei dati mostrati nella La durata di Approfondimenti sui blocchi e di dashboard degli insight sulle transazioni è di 30 giorni. Per i grafici, i dati vengono recuperati da SPANNER_SYS.* tabelle, che hanno una conservazione massima di 30 giorni.

Per ulteriori informazioni su queste tabelle e sulla conservazione dei dati, consulta Blocca statistiche e Statistiche sulle transazioni.

Ruoli obbligatori

Hai bisogno di ruoli e autorizzazioni IAM diversi a seconda che si tratti di se sei un utente IAM o un utente con controllo granulare degli accessi.

Utente IAM (Identity and Access Management)

Per ottenere le autorizzazioni necessarie per visualizzare la pagina Informazioni su blocchi e transazioni: chiedi all'amministratore di concederti seguenti ruoli IAM sull'istanza:

Per visualizzare la pagina Insight su blocchi e transazioni sono necessarie le seguenti autorizzazioni nel ruolo Lettore database Cloud Spanner (roles/spanner.databaseReader):

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.select
  • spanner.sessions.create

Utente con controllo dell'accesso granulare

Se sei un utente con controllo dell'accesso granulare, assicurati di:

  • Disporre del visualizzatore Cloud Spanner(roles/spanner.viewer)
  • Dispongono soltanto di privilegi di controllo dell'accesso granulari e ti vengono concessi i spanner_sys_reader ruolo di sistema o uno dei suoi ruoli membri.
  • Seleziona il ruolo spanner_sys_reader o un membro come ruolo di sistema attuale nella pagina della panoramica del database.

Per ulteriori informazioni, vedi Informazioni sul controllo dell'accesso granulare e Ruoli di sistema di controllo dell'accesso granulari.

Verifica la presenza di un picco di latenze utilizzando Spanner Monitoring

Puoi utilizzare Cloud Monitoring per impostare avvisi per le metriche che superano i valori specificati soglie per tutte le richieste.

Se ricevi un avviso che indica un picco di latenze per un Ad esempio, puoi confermarlo su Spanner Dashboard di monitoraggio, che mostra i grafici per varie metriche importanti. Il grafico Latenza ti consente di visualizzare al 50° e al 99° percentile.

Per confermare un picco nelle latenze di scrittura al 99° percentile, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze Spanner.

    Vai alle istanze Spanner

  2. Fai clic sul nome dell'istanza.

    La console Google Cloud mostra una panoramica dell'istanza.

  3. Fai clic su Monitoring nel menu di navigazione.

    La console Google Cloud mostra i grafici di dati per in esecuzione in un'istanza Compute Engine.

  4. Nel grafico Latenza, imposta Funzione su Write e Percentile su 99th.

  5. Controlla il grafico aggiornato per verificare se mostra picchi.

Grafico che mostra le latenze di scrittura al 99° percentile

Se noti che l'utilizzo della CPU non registra picchi e un picco di errori nelle di operazioni al secondo, è probabile che i picchi di latenza siano dovuti alla contese.

Verificare la presenza di problemi di contesa delle serrature utilizzando gli insight sui blocchi

La dashboard degli insight sulle serrature ti consente di visualizzare il tempo di attesa della serratura in un o un database selezionato. Può aiutarti a verificare se sono presenti latenze elevate a causa dei conflitti di blocco.

Verificare se i tempi di attesa per la serratura sono elevati

Per verificare se i tempi di attesa per il blocco sono troppo lunghi, segui questi passaggi:

  1. Fai clic su Approfondimenti sul blocco nel menu di navigazione.

    Nella console Google Cloud viene visualizzato il messaggio Totale attesa blocco. che mostra il tempo di attesa del blocco per ciascun database nell'istanza.

    Per impostazione predefinita, i dati mostrati sono relativi a 1 hour, come selettore dell'ora alla nell'angolo in alto a destra della dashboard Insight sui blocchi. Per visualizzare i dati per un intervallo più ampio, seleziona un'altra opzione, ad esempio 1 day.

    Per ulteriori informazioni, vedi Utilizzo dei grafici.

  2. Nel selettore Database in alto, seleziona il database che mostra il tempo di attesa per il blocco più alto.

    Il grafico Totale attesa blocco si aggiorna per mostrare i dati solo per il database selezionato.

    Inoltre, un altro grafico, Blocca l'attesa per intervallo di righe, mostra i grafici relativi blocco del tempo di attesa per intervalli di righe.

  3. Fai clic sul grafico e trascina orizzontalmente per espandere l'ora in cui si verifica una latenza sia visibile.

Dashboard degli insight sui blocchi

Analizzare i dati di attesa blocco

La tabella Informazioni sui blocchi mostra le seguenti colonne del SPANNER_SYS.LOCK_STATS tabelle di sistema:

  • Chiave iniziale intervallo di righe: la chiave di riga in cui si è verificato il conflitto di blocco. Quando il conflitto riguarda un intervallo di righe, il valore rappresenta la chiave iniziale l'intervallo. Un segno più ( ) indica un intervallo.
  • Attesa blocco: il tempo totale di attesa per il blocco, rappresentato visivamente su una barra orizzontale. Di predefinita, la tabella utilizza questa colonna per gli ordinamenti e mostra la chiave iniziale dell'intervallo di righe con il tempo di attesa per il blocco più alto in alto.
  • Attesa blocco (secondi): il tempo di attesa cumulativo del blocco per i conflitti di blocco registrati per tutte le colonne nell'intervallo di chiave di riga, in secondi.
  • Attesa blocco (%): il tempo di attesa dei conflitti della serratura registrati per tutti colonne nell'intervallo di chiave di riga come percentuale del tempo totale di attesa del blocco per tutti intervalli di chiavi di riga di riga nel database.

Correlare i dati nel grafico Blocca attesa per intervallo di righe con i dati in nella tabella, seleziona una riga. La riga correlata viene evidenziata. Al contrario, seleziona seleziona la casella di controllo di una riga della tabella per visualizzare la linea correlata nel grafico.

Tabella Insight sui blocchi

Per filtrare i dati della tabella:

  1. Fai clic nella casella di testo accanto a Filtro.

  2. Seleziona una proprietà, seleziona un operatore e specifica un valore.

La tabella mostra i dati corrispondenti al filtro.

Visualizza richieste di blocco di esempio

Il riquadro Richieste di blocco di esempio mostra i dettagli del blocco di esempio da transazioni concorrenti.

Per visualizzare le informazioni sulla richiesta di blocco di esempio per una chiave iniziale di un intervallo di righe, fai clic su al link correlato nella tabella.

La tabella mostra le seguenti colonne di informazioni:

  • Nome colonna di esempio: la colonna che ha riscontrato il blocco. conflitto nell'intervallo di chiave di riga.
  • Modalità di blocco: la modalità di blocco richiesta.
  • Visualizza transazioni: un link alla pagina Informazioni sulle transazioni, che mostra le transazioni che potrebbero essere in concorrenza per i blocchi.

Pagina dei dettagli degli insight sui blocchi

Identificare le transazioni concorrenti utilizzando gli insight sulle transazioni

La dashboard Insight sulle transazioni ti consente di visualizzare la latenza nelle transazioni su per un'istanza o un database selezionato. Può aiutarti a identificare le transazioni che potrebbero causare latenze elevate a causa dei conflitti del blocco.

Visualizzare le latenze delle transazioni

Per visualizzare la latenza delle transazioni:

  1. Fai clic su Informazioni sulle transazioni nel riquadro di navigazione a sinistra.

  2. Nel selettore Database in alto, seleziona il database che mostra il tempo di attesa per il blocco più alto.

    In alternativa, nella dashboard degli insight sui blocchi, fai clic su Visualizza. transazioni per filtrare le transazioni in lettura o scrittura a un utente colonna di esempio.

    Per impostazione predefinita, i dati mostrati sono relativi a 1 hour, come selettore dell'ora alla nell'angolo in alto a destra della dashboard di Informazioni sulle transazioni.

La dashboard mostra i seguenti grafici:

  • Il grafico Latenza media (tutte le transazioni) mostra la latenza di tutte transazioni eseguite nell'istanza.

  • Il grafico Latenza media (per transazione) mostra la latenza di ogni per il database selezionato.

Dashboard di Transaction Insights

Analizzare i dati sulle transazioni

Puoi visualizzare e analizzare i dati per ogni transazione nella tabella riportata di seguito grafici. La tabella mostra i dati delle metriche di SPANNER_SYS.TXN_STATS tabelle di sistema nelle seguenti colonne:

  • Fingerprint: l'hash del tag transazione, se esistente. Altrimenti, l'hash viene calcolato in base alle operazioni coinvolte nella transazione. Il valore è Un link che rimanda alla pagina Dettagli transazione.
  • Tag di transazione: il tag di transazione facoltativo per la transazione. Dati statistici per più transazioni con lo stesso tag è raggruppata in una singola riga con l'etichetta TRANSACTION_TAG corrispondente alla la stringa taggata.
  • Tabelle interessate: le tabelle interessate dalla transazione.
  • Lettura table.column: le colonne da cui viene letta la transazione.
  • Table.column Scritta: le colonne in cui è stata scritta la transazione.
  • Latenza media (secondi): media dei secondi impiegati per eseguire la transazione. Per impostazione predefinita, la tabella viene ordinata in base a questa colonna in ordine decrescente.

Per correlare i dati del grafico Latenza media (per transazione) con la dati nella tabella, seleziona una linea nel grafico. La riga corrispondente nella tabella viene evidenziata.

Per filtrare i dati della tabella:

  1. Fai clic accanto a Filtro.

  2. Seleziona una proprietà, seleziona un operatore e specifica un valore.

La tabella mostra i dati corrispondenti al filtro.

Tabella Insight sulle transazioni

Visualizzare informazioni dettagliate su una transazione

Per visualizzare informazioni dettagliate su una transazione, come quella che mostra con latenza più elevata, fai clic sul link Fingerprint nella rispettiva riga della tabella.

Viene visualizzata la pagina Dettagli transazione. Oltre alla tabella dei dettagli in alto, mostra le seguenti informazioni:

  • Una barra che mostra i valori numerici per ciascuna di queste metriche:

    • Media byte: il numero medio di byte scritti dalla transazione.
    • Latenza media: i secondi medi presi dalla prima operazione del di cui eseguire il commit o l'interruzione.
    • Latenza media di commit: i secondi medi necessari per eseguire l'operazione di commit.
    • Numero totale di tentativi: il numero totale di tentativi di transazione.
    • Numero totale di interruzioni: il numero totale di tentativi di transazione effettuati l'interruzione, incluse quelle interrotte prima di chiamare il di commit.
  • Grafici che rappresentano questi valori.

    Inoltre, il grafico Media partecipanti mostra il numero medio di partecipanti in ogni tentativo di commit.

Pagina dei dettagli delle informazioni sulle transazioni

Verifica se la forma della transazione può essere ottimizzata per ridurre le latenze. Valuta la possibilità di applicare le pratiche consigliate per ridurre il conflitto di blocchi.

Passaggi successivi