Questa pagina descrive le metriche sulla latenza fornite da Spanner. Se le tue l'applicazione ha una latenza elevata, usa queste metriche per diagnosticare e risolvere il problema.
Puoi visualizzare queste metriche nella console Google Cloud e in la console Cloud Monitoring.
Panoramica delle metriche di latenza
Le metriche di latenza per Spanner misurano il tempo necessario per Servizio Spanner per elaborare una richiesta. La metrica acquisisce le effettive di tempo che trascorre, non la quantità di tempo di CPU impiegato da Spanner utilizzi.
Queste metriche di latenza non includono la latenza che si verifica al di fuori di Spanner, come la latenza o la latenza di rete all'interno dell'applicazione livello di sicurezza. Per misurare altri tipi di latenza, puoi utilizzare Cloud Monitoring per strumentare la tua applicazione con metriche personalizzate.
Puoi visualizzare i grafici delle metriche di latenza nella nella console Google Cloud e nella Console Cloud Monitoring. Puoi visualizzare combinazioni di latenza che includono sia letture sia scritture, oppure puoi visualizzare e le metriche per letture e scritture.
In base alla latenza di ogni richiesta, Spanner raggruppa le richieste in percentile. Puoi visualizzare le metriche di latenza per il 50° percentile e il 99° percentile latenza percentile:
Latenza del 50° percentile: la latenza massima, in secondi, per 50% di tutte le richieste. Ad esempio, se la latenza del 50° percentile è di 0,5 secondi, Spanner ha elaborato il 50% delle richieste in meno di 0,5 secondi.
Questa metrica a volte viene chiamata latenza mediana.
Latenza del 99° percentile: la latenza massima, in secondi, per 99% delle richieste. Ad esempio, se la latenza al 99° percentile è di 2 secondi: Spanner ha elaborato il 99% delle richieste in meno di 2 secondi.
Latenza e operazioni al secondo
Quando un'istanza elabora un numero ridotto di richieste durante un determinato periodo di tempo, le latenze del 50° e del 99° percentile durante quel periodo non sono indicatori significativi del rendimento complessivo dell'istanza. In queste condizioni, un numero ridotto di outlier può cambiare drasticamente le metriche di latenza.
Ad esempio, supponiamo che un'istanza elabori 100 richieste durante un'ora. Nel in questo caso, la latenza del 99° percentile per l'istanza durante quell'ora è quantità di tempo richiesta per elaborare la richiesta più lenta. Una misurazione della latenza basata su una singola richiesta non è significativa.
Come diagnosticare i problemi di latenza
Le seguenti sezioni descrivono come diagnosticare diversi problemi comuni che potrebbero causare un'elevata latenza end-to-end per la tua applicazione.
Per una rapida occhiata alle metriche di latenza di un'istanza, utilizza il metodo console Google Cloud. Per esaminare le metriche in modo più approfondito e trova correlazioni tra latenza e altri usa la console di Cloud Monitoring.
Latenza totale elevata, bassa latenza Spanner
Se la tua applicazione riscontra una latenza più alta del previsto, ma le metriche di latenza per Spanner sono significativamente inferiori al totale latenza end-to-end, potrebbe esserci un problema nel codice dell'applicazione. Se la tua applicazione ha un problema di prestazioni che causa la lentezza di alcuni percorsi di codice, la latenza end-to-end totale per ogni richiesta potrebbe aumentare.
Per verificare questo problema, esegui il benchmark dell'applicazione per identificare i percorsi di codice più lenti del previsto.
Puoi anche commentare il codice che comunica con Spanner, quindi misurare di nuovo la latenza totale. Se la latenza totale non cambia molto, è improbabile che Spanner sia la causa dell'alta latenza.
Latenza totale elevata, latenza Spanner elevata
Se la tua applicazione riscontra una latenza più alta del previsto e Anche le metriche di latenza di Spanner sono elevate, ma ci sono alcune probabili cause:
L'istanza ha bisogno di più capacità di calcolo. Se l'istanza non ha abbastanza e il suo utilizzo della CPU supera le risorse della CPU consigliate massimo, Spanner potrebbe non essere in grado di elaborare le tue richieste in modo rapido ed efficiente.
Alcune delle tue query causano un elevato utilizzo della CPU. Se le tue query non sfruttare le funzionalità di Spanner che migliorano l'efficienza, come parametri di query e indici secondari, o se includono un numero elevato di join o altre operazioni che richiedono un uso intensivo della CPU operazioni, le query possono utilizzare una grande parte delle risorse della CPU per in esecuzione in un'istanza Compute Engine.
Per verificare questi problemi, utilizza la console di Cloud Monitoring per cercare per una correlazione tra alto utilizzo della CPU e con elevata latenza. Controlla anche le statistiche delle query per la tua istanza per identificare eventuali query che richiedono un'elevata elaborazione della CPU nello stesso periodo di tempo.
Se ti accorgi che l'utilizzo e la latenza della CPU sono entrambi elevati, intervieni per risolvere il problema:
Se non hai trovato molte query che usano molta CPU, aggiungi capacità di calcolo al in esecuzione.
L'aggiunta di capacità di calcolo fornisce più risorse della CPU e consente Spanner per gestire un carico di lavoro più grande.
Se hai trovato query che richiedono un'elaborazione intensiva della CPU, esamina i piani di esecuzione delle query per scoprire perché sono lente, quindi aggiorna le query in modo che rispettino le best practice SQL per Spanner.
Potresti anche dover rivedere la progettazione dello schema per e aggiornare lo schema per consentire query più efficienti.
Passaggi successivi
- Monitora l'istanza con la console Google Cloud oppure nella console di Cloud Monitoring.
- Scopri come trovare le correlazioni tra alta latenza e altro metriche.
- Scopri come ridurre la latenza di lettura seguendo le best practice SQL e utilizzando i limiti di timestamp.
- Scopri di più sulle metriche di latenza nelle statistiche delle query , che puoi recuperare utilizzando le istruzioni SQL.
- Comprendi come la configurazione dell'istanza influisce sulla latenza.