Questa pagina descrive le metriche di utilizzo della CPU fornite da Spanner. Puoi visualizzare queste metriche nella Google Cloud console e nella console Cloud Monitoring.
Utilizzo della CPU e priorità delle attività
Spanner misura l'utilizzo della CPU in base alla fonte e alla priorità dell'attività.
Fonte: 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à elevata, se non diversamente specificato. Molte richieste di dati, come read e executeSql , consentono di specificare una priorità inferiore 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ù elevata vengono eseguite prima di quelle con priorità inferiore. Spanner consente alle attività con priorità elevata di utilizzare fino al 100% della capacità della CPU disponibile, anche se sono presenti attività con priorità inferiore in competizione. Sebbene le attività di sistema con priorità inferiore possano essere ritardate a breve termine, alla fine devono essere eseguite. Pertanto, devi eseguire il provisioning dell'istanza con una capacità di calcolo sufficiente per gestire tutte le attività.
Se non sono presenti attività con priorità elevata, Spanner utilizzerà fino al 100% della capacità della CPU disponibile per completare più rapidamente le attività con priorità inferiore. I picchi di utilizzo in background non sono indice di un problema. Le attività con priorità inferiore possono cedere quasi immediatamente alle attività con priorità più elevata, incluse le attività utente.
La tabella seguente mostra esempi per ogni attività:
| Attività degli utenti | Attività di sistema | |
|---|---|---|
| Priorità elevata | Include richieste di dati, come read o executeSql, in cui non è specificata alcuna priorità o è specificata PRIORITY_HIGH. | Include la suddivisione dei dati. |
| Priorità media |
Include:
|
Include:
|
| Priorità bassa | Include richieste di dati in cui PRIORITY_LOW è specificata. | Include: |
Metriche disponibili
Spanner fornisce le seguenti metriche per l'utilizzo della CPU:
Utilizzo della CPU uniforme: una media mobile dell'utilizzo totale della CPU, come percentuale della capacità della CPU dell'istanza, per ogni database. Ogni punto dati è una media delle ultime 24 ore. Utilizza questa metrica per creare avvisi e analizzare l'utilizzo della CPU per un periodo di tempo prolungato, ad esempio 24 ore. Puoi visualizzare un grafico per questa metrica nella Google Cloud console o nella console Cloud Monitoring come Media mobile di 24 ore.
Utilizzo della CPU per priorità: l'utilizzo della CPU, come percentuale della capacità 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 Google Cloud console o nella console Cloud Monitoring.
Utilizzo della CPU per tipo di operazione: l'utilizzo della CPU, come percentuale della capacità 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 Indagine sull'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 di seguito.
Avvisi per l'utilizzo elevato della CPU
La tabella seguente specifica i nostri consigli per l'utilizzo massimo della CPU per istanze regionali, a due regioni e multiregionali. 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 le istanze regionali) o di un'intera regione (per le istanze a due regioni e multiregionali ).
| Metrica | Massimo per le istanze regionali | Massimo per regione per le istanze a due regioni e multiregionali |
|---|---|---|
| Totale priorità elevata | 65% | 45% |
| Aggregato uniforme 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 su 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 della 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 una capacità della CPU superiore alla quantità configurata per l'istanza.
L'utilizzo della CPU oltre il 100% potrebbe essere utilizzato 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.
La capacità della CPU oltre il 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 peggiorare le prestazioni e la latenza delle normali operazioni.
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 dell'istanza come punto di partenza. Dopo aver aumentato la capacità di calcolo, puoi esaminare e risolvere le cause principali dell'utilizzo elevato della CPU.
Aumento della capacità di calcolo
Se superi i 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 monitora l'utilizzo della CPU, quindi aumenta o diminuisce
la capacità di calcolo in base alle esigenze, utilizzando il UpdateInstance
metodo.
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 per mantenere l'utilizzo della CPU al di sotto dei massimi consigliati. Come descritto in precedenza, potrebbe essere necessario allocare una capacità di calcolo aggiuntiva per le applicazioni sensibili alle prestazioni (ad esempio, per gestire i picchi di carico di lavoro).
Se non hai una capacità di calcolo sufficiente, Spanner posticipa le attività in base al livello di priorità. Le attività di sistema con priorità bassa, come la compattazione del database e la convalida delle modifiche dello 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 con priorità bassa entro un determinato intervallo di tempo, nell'ordine di diverse ore o un giorno, a causa di una capacità di calcolo insufficiente, potrebbe aumentare la priorità delle attività di sistema. Questa modifica influisce sulle prestazioni delle attività utente.
Analisi più approfondita con gli strumenti di introspezione
Se la metrica Utilizzo della CPU per tipo di operazione indica che un particolare tipo di operazione contribuisce all'utilizzo elevato della CPU, utilizza gli strumenti di introspezione di Spanner per risolvere ulteriormente i problemi. Per ulteriori informazioni, consulta Indagine sull'utilizzo elevato della CPU.
Passaggi successivi
- Monitora l'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 le correlazioni tra la 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.