Questa pagina descrive le metriche di utilizzo della CPU fornite da Spanner. Puoi visualizzare queste metriche nella console Google Cloud e nella console Cloud Monitoring.
Utilizzo della CPU e priorità delle attività
Spanner misura l'utilizzo della CPU in base all'origine e alla priorità dell'attività.
Origine: un'attività può essere avviata dall'utente o dal sistema.
Priorità: la priorità aiuta Spanner a determinare quali attività devono essere eseguite per prime. La priorità delle attività di sistema è predeterminata e non può essere configurata. Le attività utente vengono eseguite con priorità alta, se non diversamente specificato. Molte richieste di dati, come read e executeSql, ti consentono di specificare una priorità inferiore per la richiesta. Ciò può essere utile, ad esempio, quando esegui query batch, di manutenzione o analitiche che non hanno SLO di rendimento rigorosi.
In generale, le attività con priorità più alta vengono eseguite prima di quelle con priorità più bassa. Spanner consente alle attività ad alta priorità di utilizzare fino al 100% delle risorse CPU disponibili anche se sono presenti attività concorrenti con priorità inferiore. Anche se le attività di sistema con priorità inferiore possono essere ritardate nel breve termine, alla fine devono essere eseguite. Pertanto, devi provisionare l'istanza con una capacità di calcolo sufficiente per gestire tutte le attività.
Se non ci sono attività ad alta priorità, Spanner utilizzerà fino al 100% delle risorse CPU disponibili per completare più rapidamente le attività a priorità più bassa. I picchi di utilizzo in background non sono un segno di un problema. Le attività con priorità inferiore possono cedere il passo a quelle con priorità più alta, incluse le attività dell'utente, quasi istantaneamente.
La seguente tabella mostra esempi per ogni attività:
| Attività degli utenti | Attività di sistema | |
|---|---|---|
| Priorità elevata | Include richieste di dati, ad esempio read o executeSql, in cui non è specificata alcuna priorità o PRIORITY_HIGH. | Include la suddivisione dei dati. |
| Priorità media |
Include:
|
Include:
|
| Priorità bassa | Include le richieste di dati in cui è specificata PRIORITY_LOW. |
Include:
|
Metriche disponibili
Spanner fornisce le seguenti metriche per l'utilizzo della CPU:
Utilizzo della CPU smussato: una media mobile dell'utilizzo totale della CPU, come percentuale delle risorse della CPU dell'istanza, per ogni database. Ogni punto dati è una media delle 24 ore precedenti. Utilizza questa metrica per creare avvisi e analizzare l'utilizzo della CPU per periodi di tempo prolungati, ad esempio 24 ore. Puoi visualizzare un grafico per questa metrica nella console Google Cloud o nella console Cloud Monitoring come Media mobile di 24 ore.
Utilizzo della CPU per priorità: l'utilizzo della CPU, come percentuale delle risorse della CPU dell'istanza, raggruppato per priorità, attività avviate dall'utente e attività avviate dal sistema. Utilizza questa metrica per creare avvisi e analizzare l'utilizzo della CPU a livello generale. Puoi visualizzare un grafico per questa metrica nella console Google Cloud o nella console Cloud Monitoring.
Utilizzo della CPU per tipo di operazione: l'utilizzo della CPU, come percentuale delle risorse della CPU dell'istanza, raggruppato per operazioni avviate dall'utente, come letture, scritture e commit. Utilizza questa metrica per ottenere una suddivisione dettagliata dell'utilizzo della CPU e per risolvere ulteriormente i problemi, come spiegato in Analisi dell'utilizzo elevato della CPU. Puoi creare un grafico per questa metrica nella console Cloud Monitoring.
Puoi anche utilizzare la console Cloud Monitoring per creare avvisi per l'utilizzo della CPU, come descritto più avanti.
Avvisi per l'utilizzo elevato della CPU
La tabella seguente specifica i nostri consigli per l'utilizzo massimo della CPU per le istanze regionali, dual-region e multiregionali. Questi numeri servono a garantire che la tua istanza abbia una capacità di calcolo sufficiente per continuare a gestire il traffico in caso di perdita di un'intera zona (per le istanze regionali) o di un'intera regione (per le istanze dual-region e multiregionali).
| Metrica | Massimo per le istanze regionali | Massimo per regione per le istanze a due regioni e multiregionali |
|---|---|---|
| Totale con priorità elevata | 65% | 45% |
| Aggregato smussato di 24 ore | 90% | 90% |
Per aiutarti a rimanere al di sotto dei massimi consigliati, crea avvisi in Cloud Monitoring che monitorano l'utilizzo della CPU ad alta priorità e l'utilizzo medio della CPU nell'arco di 24 ore.
L'utilizzo della CPU può influire sulle latenze delle richieste. Il sovraccarico di un singolo server di backend attiverà latenze di richiesta più elevate. Le applicazioni devono eseguire benchmark e monitoraggio attivo per verificare che Spanner soddisfi i requisiti di rendimento.
Pertanto, per le applicazioni sensibili alle prestazioni, potrebbe essere necessario ridurre ulteriormente l'utilizzo della CPU utilizzando le tecniche descritte nella sezione seguente.
Utilizzo CPU superiore al 100%
In alcuni casi, l'utilizzo della CPU di un'istanza Spanner può superare il 100%. Ciò significa che l'istanza utilizza più risorse della CPU rispetto alla quantità configurata per l'istanza.
Le risorse della CPU superiori al 100% potrebbero essere utilizzate per fornire prestazioni migliori e più prevedibili durante i picchi di utilizzo della CPU, ad esempio causati da un improvviso aumento del traffico di richieste.
Qualsiasi capacità della CPU superiore al 100% NON è garantita e non deve essere utilizzata per le normali operazioni del database.
L'esecuzione di un'istanza Spanner con un utilizzo della CPU vicino o superiore al 100% per un periodo di tempo prolungato comporta il rischio di peggioramento delle prestazioni e della latenza del normale funzionamento. Le risorse CPU aggiuntive non sono un meccanismo sicuro su cui fare affidamento per prestazioni coerenti.
Ai clienti non viene addebitato questo utilizzo aggiuntivo della CPU.
Riduzione dell'utilizzo della CPU
Questa sezione spiega come ridurre l'utilizzo della CPU di un'istanza.
In generale, ti consigliamo di aumentare la capacità di calcolo della tua istanza come punto di partenza. Dopo aver aumentato la capacità di calcolo, puoi indagare e risolvere le cause principali dell'utilizzo elevato della CPU.
Aumento della capacità di calcolo
Se superi i valori massimi consigliati per l'utilizzo della CPU, ti consigliamo vivamente di
aumentare la capacità di calcolo della tua istanza in modo che possa
continuare a funzionare in modo efficace. Se vuoi automatizzare questo processo, puoi creare un'applicazione che monitora l'utilizzo della CPU, quindi aumenta o diminuisce la capacità di calcolo in base alle esigenze, utilizzando il metodo UpdateInstance.
Per determinare la quantità di capacità di calcolo necessaria, considera l'utilizzo della CPU ad alta priorità di picco e la media uniforme di 24 ore. Alloca sempre una capacità di calcolo sufficiente a mantenere l'utilizzo della CPU al di sotto dei massimi consigliati. Come descritto in precedenza, potresti dover allocare capacità di calcolo aggiuntiva per applicazioni sensibili alle prestazioni (ad esempio, per gestire i picchi di workload).
Se non hai capacità di calcolo sufficiente, Spanner posticipa le attività in base al livello di priorità. Le attività di sistema a bassa priorità, come la compattazione del database e la convalida delle modifiche allo schema, possono essere posticipate a favore delle attività utente. Tuttavia, queste attività sono fondamentali per l'integrità dell'istanza e Spanner non può posticiparle a tempo indeterminato. Se Spanner non riesce a completare le attività di sistema a bassa priorità entro un determinato periodo di tempo, nell'ordine di diverse ore o un giorno, a causa di risorse di calcolo insufficienti, Spanner potrebbe aumentare la priorità delle attività di sistema. Questa modifica influisce sul rendimento delle attività degli utenti.
Analizzare più a fondo con gli strumenti di introspezione
Se la metrica Utilizzo della CPU per tipo di operazione indica che un particolare tipo di operazione contribuisce a un elevato utilizzo della CPU, utilizza gli strumenti di introspezione di Spanner per risolvere ulteriormente il problema. Per ulteriori informazioni, consulta Indagine sull'utilizzo elevato della CPU.
Passaggi successivi
- Monitora la tua istanza con la Google Cloud console o la console Cloud Monitoring.
- Crea avvisi per l'utilizzo della CPU di Spanner.
- Scopri come modificare la capacità di calcolo di un'istanza Spanner.
Scopri come trovare correlazioni tra latenza elevata e altre metriche.
Per scoprire come risolvere i problemi relativi all'utilizzo elevato della CPU causato da un particolare tipo di operazione, consulta Indagine sull'utilizzo elevato della CPU.