Utilizzare le metriche per diagnosticare la latenza

Questa pagina descrive le metriche di latenza fornite da Spanner. Se la tua applicazione presenta un'alta latenza, utilizza queste metriche per diagnosticare e risolvere il problema.

Puoi visualizzare queste metriche nella console Google Cloud e nella console di Cloud Monitoring.

Panoramica delle metriche di latenza

Le metriche di latenza per Spanner misurano il tempo necessario al servizio Spanner per elaborare una richiesta. La metrica acquisisce la quantità effettiva di tempo trascorso, non la quantità di tempo di CPU utilizzata da Spanner.

Queste metriche di latenza non includono la latenza che si verifica al di fuori di Spanner, ad esempio la latenza di rete o la latenza all'interno del livello dell'applicazione. Per misurare altri tipi di latenza, puoi utilizzare Cloud Monitoring per eseguire lo strumentazione della tua applicazione con metriche personalizzate.

Puoi visualizzare i grafici delle metriche di latenza nella console Google Cloud e nella console Cloud Monitoring. Puoi visualizzare metriche di latenza combinate che includono letture e scritture oppure metriche separate per letture e scritture.

In base alla latenza di ogni richiesta, Spanner raggruppa le richieste in percentuali. Puoi visualizzare le metriche di latenza per il 50° percentile e il 99° percentile:

  • Latenza del 50° percentile: la latenza massima, in secondi, per il 50% più veloce 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 è talvolta chiamata latenza mediana.

  • Latenza del 99° percentile: la latenza massima, in secondi, per il 99% più veloce delle richieste. Ad esempio, se la latenza del 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 periodo di tempo, le latenze del 50° e 99° percentile durante questo periodo di tempo non sono indicatori significativi delle prestazioni complessive dell'istanza. In queste condizioni, un numero molto ridotto di valori anomali può cambiare drasticamente le metriche di latenza.

Supponiamo, ad esempio, che un'istanza elabori 100 richieste durante un'ora. In questo caso, la latenza del 99° percentile per l'istanza durante quell'ora corrisponde al tempo impiegato 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 una latenza end-to-end elevata dell'applicazione.

Per una rapida analisi delle metriche di latenza di un'istanza, utilizza la console Google Cloud. Per esaminare le metriche in modo più approfondito e individuare le correlazioni tra la latenza e altre metriche, utilizza la console di Cloud Monitoring.

Latenza totale elevata, latenza Spanner bassa

Se la tua applicazione presenta una latenza superiore al previsto, ma le metriche di latenza per Spanner sono molto più basse rispetto alla latenza end-to-end totale, potrebbe esserci un problema nel codice dell'applicazione. Se la tua applicazione presenta un problema di prestazioni che causa un rallentamento di alcuni percorsi di codice, la latenza end-to-end totale per ogni richiesta potrebbe aumentare.

Per verificare la presenza di questo problema, analizza la tua applicazione per identificare i percorsi di codice più lenti del previsto.

Puoi anche commentare il codice che comunica con Spanner e 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 presenta una latenza superiore al previsto e anche le metriche di latenza di Spanner sono elevate, le cause probabili sono alcune delle cause:

  • L'istanza ha bisogno di più capacità di calcolo. Se l'istanza non dispone di risorse CPU sufficienti e l'utilizzo della CPU supera il limite massimo consigliato, Spanner potrebbe non essere in grado di elaborare le richieste in modo rapido ed efficiente.

  • Alcune delle tue query causano un utilizzo elevato della CPU. Se le query non sfruttano le funzionalità di Spanner che migliorano l'efficienza, ad esempio i parametri di query e gli indici secondari, o se includono un numero elevato di join o altre operazioni che richiedono molta CPU, possono utilizzare una grande parte delle risorse della CPU per l'istanza.

Per verificare la presenza di questi problemi, utilizza la console di Cloud Monitoring per cercare una correlazione tra l'utilizzo elevato della CPU e l'alta latenza. Inoltre, controlla le statistiche sulle query per la tua istanza per identificare eventuali query che consumano molta CPU durante lo stesso periodo di tempo.

Se ritieni che l'utilizzo della CPU e la latenza siano elevati contemporaneamente, intervieni per risolvere il problema:

Passaggi successivi