Metriche di utilizzo della CPU

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 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à eseguire 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, ad esempio read ed executeSql, consentono di specificare una priorità più bassa per la richiesta. Questo può essere utile, ad esempio, quando esegui query batch, di manutenzione o analitiche che non hanno SLO di prestazioni rigorosi.

    In generale, le attività con priorità più alta vengono eseguite prima delle attività con priorità più bassa. Spanner consente alle attività ad alta priorità di utilizzare fino al 100% delle risorse della CPU disponibili, anche se ci sono attività concorrenti con priorità inferiore. Sebbene le attività di sistema con priorità inferiore possano essere ritardate nel breve periodo, alla fine devono essere eseguite. Pertanto, devi fornire all'istanza una capacità di calcolo sufficiente per gestire tutte le attività.

    Se non ci sono attività con priorità elevata, Spanner utilizzerà fino al 100% delle risorse della CPU disponibili per completare più rapidamente le attività con priorità inferiore. I picchi nell'utilizzo in background non sono un segnale di un problema. Le attività con priorità inferiore possono cedere ad attività con priorità più elevata, comprese le attività utente, quasi istantaneamente.

La tabella seguente mostra esempi per ciascuna attività:

Attività degli utenti Attività di sistema
Priorità elevata Include le richieste di dati, come read o executeSql, dove non è specificata nessuna priorità o PRIORITY_HIGH. Include la suddivisione dei dati.
Priorità media Include: Include:
  • Compattazione database
  • Convalida delle modifiche allo schema
  • La fase di ottimizzazione del ripristino del database
Bassa priorità Include le richieste di dati dove è specificato PRIORITY_LOW. Include:
  • Backfill di un indice.
  • Backfill di una colonna generata

Metriche disponibili

Spanner fornisce le seguenti metriche per l'utilizzo della CPU:

  • Utilizzo livellato della CPU: una media mobile dell'utilizzo totale della CPU, come percentuale delle risorse della CPU dell'istanza, per ogni database. Ogni punto dati rappresenta una media delle 24 ore precedenti. Utilizza questa metrica per creare avvisi e analizzare l'utilizzo della CPU per un lungo periodo di tempo, 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, raggruppate per priorità, attività avviate dall'utente e attività avviate dal sistema. Usa questa metrica per creare avvisi e analizzare l'utilizzo della CPU ad alto livello. Puoi visualizzare un grafico per questa metrica nella console Google Cloud o nella console di 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 avere un'analisi dettagliata dell'utilizzo della CPU e per risolvere ulteriori problemi, come spiegato in Esaminare l'utilizzo elevato della CPU. Puoi creare un grafico per questa metrica nella console di Cloud Monitoring.

    Puoi utilizzare la console Cloud Monitoring anche per creare avvisi per l'utilizzo della CPU, come descritto di seguito.

La tabella seguente specifica i nostri suggerimenti per l'utilizzo massimo della CPU per istanze a livello di una singola regione, di due regioni e di più regioni. Questi numeri servono a garantire che l'istanza abbia una capacità di calcolo sufficiente per continuare a gestire il traffico in caso di perdita di un'intera zona (per istanze a livello di regione) o di un'intera regione (per istanze a due e più regioni).

Metrica Massimo per istanze a livello di regione Massimo per regione per istanze a due e più regioni
Totale priorità elevata 65% 45%
Aggregazione livellata su 24 ore 90% 90%

Per aiutarti a rimanere al di sotto dei valori massimi consigliati, crea avvisi in Cloud Monitoring che tengano traccia dell'utilizzo della CPU ad alta priorità e dell'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 delle richieste più elevate. Le applicazioni devono eseguire benchmark e monitoraggio attivo per verificare che Spanner soddisfi i requisiti di prestazioni.

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ò raggiungere superiori al 100%. Ciò significa che l'istanza utilizza più risorse della CPU rispetto alla quantità configurata per l'istanza.

È possibile utilizzare risorse della CPU superiori al 100% per fornire prestazioni migliori e più prevedibili durante i picchi di utilizzo della CPU, ad esempio causati da un aumento improvviso del traffico delle 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 vicino o superiore al 100% dell'utilizzo della CPU per un periodo di tempo prolungato rischia di ridurre la latenza e le normali prestazioni operative. Le risorse della CPU aggiuntive non sono un meccanismo sicuro su cui fare affidamento per prestazioni coerenti.

Ai clienti non viene addebitato alcun costo per questo utilizzo aggiuntivo della CPU.

Riduzione dell'utilizzo della CPU

Questa sezione spiega come ridurre l'utilizzo della CPU da parte di un'istanza.

In generale, consigliamo di aumentare la capacità di calcolo dell'istanza come punto di partenza. Dopo aver aumentato la capacità di calcolo, puoi esaminare e risolvere le cause principali dell'elevato utilizzo 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 dell'istanza, in modo che possa continuare a funzionare in modo efficace. Se vuoi automatizzare questo processo, puoi creare un'applicazione che monitori l'utilizzo della CPU e poi aumentare o diminuire la capacità di calcolo in base alle esigenze utilizzando il metodo UpdateInstance.

Per determinare la capacità di calcolo necessaria, considera l'utilizzo di picco delle CPU ad alta priorità e la media livellata di 24 ore. Alloca sempre una capacità di calcolo sufficiente per mantenere l'utilizzo della CPU al di sotto dei valori massimi consigliati. Come descritto in precedenza, potresti dover allocare capacità di calcolo aggiuntiva per le applicazioni sensibili alle prestazioni (ad esempio, per far fronte a picchi dei carichi di lavoro).

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 dei database e la convalida delle modifiche di schema, possono essere differite 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 in un giorno, a causa di risorse di calcolo insufficienti, Spanner potrebbe aumentare la priorità delle attività di sistema. Questa modifica influisce sulle prestazioni delle attività utente.

Approfondire l'analisi con gli strumenti di introspezione

Se la metrica Utilizzo CPU per tipo di operazione indica che un determinato tipo di operazione contribuisce all'elevato utilizzo della CPU, utilizza gli strumenti introspezione di Spanner per risolvere ulteriori problemi. Per maggiori informazioni, consulta Esaminare l'utilizzo elevato della CPU.

Passaggi successivi