Il motore per suggerimenti di Cloud SQL per un utilizzo elevato di ID transazione genera proattivamente consigli che ti aiutano a evitare potenziali wraparound di ID transazione per le istanze PostgreSQL di Cloud SQL.
Puoi applicare questo consiglio quando un'istanza Cloud SQL è in procinto di avere un problema di azzeramento dell'ID transazione. Questa pagina descrive come il motore per suggerimenti di utilizzo elevato di ID transazione di Cloud SQL e come utilizzarlo.
Come funziona
Un ID transazione viene assegnato all'avvio della transazione e viene bloccato fino al vuotamento della transazione. L'utilizzo dell'ID transazione è il numero di transazioni non sottoposte a sottovuoto (assegnate meno quelle bloccate) espresso come frazione del valore massimo di 2 miliardi. Nelle impostazioni predefinite di PostgreSQL, con i processi VACUUM che funzionano in modo ottimale e senza interruzioni, la maggior parte dei database presenta un utilizzo dell'ID transazione nella regione di circa il 10%. Nei database occupati si possono osservare livelli di utilizzo di ID transazione più elevati in cui i carichi di lavoro regolari hanno spesso la precedenza sulla vacuum. Se l'utilizzo dell'ID transazione si avvicina valori molto alti (80% o più), il database potrebbe esaurire le somme dell'ID transazione. L'utilizzo dell'ID transazione che raggiunge il 100% viene definito wraparound di ID transazione. Quando la percentuale di utilizzo dell'ID transazione raggiunge il 100%, PostgreSQL smette di accettare query di scrittura.
Il motore per suggerimenti Cloud SQL con utilizzo elevato di ID transazione analizza l'utilizzo degli ID transazione su un'istanza PostgreSQL di Cloud SQL.
Se la percentuale di utilizzo degli ID transazione è uguale o superiore all'80%, ti consigliamo di adottare misure per evitare il wrapping degli ID transazione.
Prezzi
Il motore per suggerimenti per un elevato utilizzo di ID transazioni di Cloud SQL si trova nel livello di prezzo del motore per suggerimenti Standard.
Prima di iniziare
Prima di poter visualizzare consigli e approfondimenti:
- Per ottenere le autorizzazioni per visualizzare e utilizzare approfondimenti e consigli, assicurati di disporre dei ruoli richiesti.
Tasks Ruoli Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewer
oppurecloudsql.viewer
.Applica consigli Uno di questi ruoli: recommender.cloudsqlAdmin
,cloudsql.editor
, ocloudsql.admin
. -
Enable the Recommender API.
Elenca i consigli per migliorare il rendimento delle istanze
Puoi elencare i consigli per migliorare le prestazioni delle istanze utilizzando la console Google Cloud, gcloud CLI
o l'API Recommender.
I suggerimenti per migliorare le prestazioni delle istanze vengono mostrati solo se hai istanze che sono in fase di wraparound di ID transazione.
Console
Per elencare i consigli sul rendimento delle istanze utilizzando la console Google Cloud, segui questi passaggi:
Vai alla pagina Istanze Cloud SQL.
Fai clic su Visualizza tutto nel banner dei consigli per evitare il wraparound degli ID transazione.
In alternativa, procedi nel seguente modo:
Vai all'hub dei suggerimenti. Consulta anche la guida introduttiva all'hub dei suggerimenti.
Nella scheda Migliora le prestazioni delle istanze Cloud SQL, fai clic su Visualizza tutto.
Seleziona le istanze con il consiglio Evita il wraparound degli ID transazione.
Interfaccia a riga di comando gcloud
Per elencare i suggerimenti Migliora le prestazioni delle istanze utilizzando gcloud CLI
, esegui la
gcloud recommender recommendations list
come segue:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoLOCATION
: una regione, ad esempious-central1
API
Per elencare i consigli per migliorare il rendimento delle istanze utilizzando l'API Recommendations, chiama il metodo recommendations.list
come segue:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.LOCATION
: una regione, ad esempious-central1
.
Se il motore per suggerimenti rileva istanze con un elevato utilizzo di ID transazione, le elenca in una tabella con altri consigli sulle prestazioni. Ogni riga mostra l'ID istanza, un breve suggerimento, il motore del database, la posizione e la data dell'ultimo aggiornamento.
Visualizza approfondimenti e consigli dettagliati
Puoi visualizzare approfondimenti e consigli dettagliati sulle istanze con tendenza a un a capo dell'ID transazione utilizzando la console Google Cloud,gcloud CLI
o l'API Recommender.
Console
Per visualizzare approfondimenti e consigli dettagliati sulle istanze vicine alla soglia di prestazioni utilizzando la console Google Cloud, fai clic sul link al consiglio nell'elenco delle istanze.
Interfaccia a riga di comando gcloud
Per visualizzare insight e suggerimenti dettagliati sulle istanze che stanno per raggiungere la soglia di prestazioni utilizzando gcloud CLI
, esegui la
gcloud recommender insights list
come segue:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.LOCATION
: una regione, ad esempious-central1
.
API
per visualizzare insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia delle prestazioni
mediante l'API Recommendations,
chiama insights.list
come segue:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.LOCATION
: una regione, ad esempious-central1
.
La tabella seguente elenca gli approfondimenti e i consigli generati dal motore per suggerimenti per l'utilizzo elevato di ID transazioni di Cloud SQL. I sottotipi sono visibili nei risultati di gcloud CLI
e
dell'API.
Insight | Consiglio |
---|---|
La percentuale di utilizzo dell'ID transazione su questa istanza è elevata e vicina al 100%. Sottotipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
Evita il potenziale wraparound degli ID transazione per le istanze Cloud SQL. Sottotipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
Applica consigli
Valuta attentamente i consigli ed esegui una delle seguenti operazioni:
Per esaminare il suggerimento, fai clic su Visualizza istanza. Vedi Ottimizzare le prestazioni dell'istanza o Evitare il wraparound degli ID transazione e segui i consigli.
Per ignorare il consiglio in modo che venga meno enfatizzato e appaia attenuato, fai clic su Ignora.
Per chiudere il riquadro senza applicare o ignorare il consiglio, fai clic su Annulla.
Ottimizza le prestazioni dell'istanza
Per risolvere il problema di wraparound dell'ID transazione con l'istanza:
Per ulteriori informazioni, consulta anche il post del blog Utilizzare VACUUM per accelerare il blocco dell'ID transazione in Cloud SQL per PostgreSQL.
Evita il wraparound degli ID transazione
Per evitare il wraparound di ID transazione per un'istanza, esegui questo comando:
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
Output di esempio:
postgres=> select * from google_vacuum_mgmt.pg_fix_wraparound(); -[ RECORD 1 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- issue_description | Gemini has detected an open prepared transaction on your instance which is blocking vacuum. Monitor the transaction ID utilization and commit or rollback the transaction, as needed. query | ROLLBACK PREPARED 'trx_id_pin'; or COMMIT PREPARED 'trx_id_pin'; recommendation | To commit a prepared transaction, you must be connected as the same user that originally executed the transaction: postgres insights | Transaction ID Utilization: 88.49%
Passaggi successivi
- Monitorare la disponibilità dei dischi
- Identificare le istanze Cloud SQL inattive
- Ridurre le istanze Cloud SQL con provisioning eccessivo
- Esplora i consigli di Google Cloud