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 funziona il recommender per l'utilizzo elevato di ID transazioni di Cloud SQL e come puoi 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 congelate) 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%. È possibile osservare livelli di utilizzo degli ID transazione più elevati nei database impegnati dove i carichi di lavoro regolari hanno spesso la precedenza sul vuoto. Se l'utilizzo degli ID transazione tende a valori molto elevati (80% o più), il database potrebbe essere a rischio di esaurimento degli ID transazione. L'utilizzo degli ID transazione che raggiunge il 100% è definito wraparound degli ID transazione. Una volta raggiunta la percentuale di utilizzo dell'ID transazione del 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 Cloud SQL.
Se la percentuale di utilizzo degli ID transazione è superiore o uguale 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, svolgi i seguenti passaggi:
- 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
ocloudsql.viewer
.Applicare i consigli Uno di questi ruoli: recommender.cloudsqlAdmin
,cloudsql.editor
ocloudsql.admin
. -
Enable the Recommender API.
Elenca i consigli per migliorare le prestazioni delle istanze
Puoi elencare i consigli per migliorare le prestazioni delle istanze utilizzando la console Google Cloud, gcloud CLI
o l'API Recommender.
I consigli per migliorare le prestazioni delle istanze vengono visualizzati solo se hai istanze che stanno per raggiungere un ID transazione con arrotondamento.
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, segui questi passaggi:
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 consigli per migliorare il rendimento delle istanze utilizzando gcloud CLI
, esegui il comando
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 del tuo progetto.LOCATION
: una regione, ad esempious-central1
.
Se il motore per suggerimenti rileva istanze con un utilizzo elevato di ID transazione, le elenca in una tabella insieme ad altri consigli sul rendimento. Ogni riga mostra l'ID istanza, un breve consiglio, il motore del database, la posizione e la data dell'ultimo aggiornamento.
Visualizzare 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 suggerimenti dettagliati sulle istanze vicine alla soglia di prestazioni utilizzando la console Google Cloud, fai clic sul link al suggerimento nell'elenco delle istanze.
Interfaccia a riga di comando gcloud
Per visualizzare approfondimenti e consigli dettagliati sulle istanze vicine alla soglia di rendimento utilizzando gcloud CLI
, esegui il comando
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 del tuo progetto.LOCATION
: una regione, ad esempious-central1
.
API
Per visualizzare approfondimenti e consigli dettagliati sulle istanze vicine alla soglia di rendimento utilizzando l'API Recommendations, chiama il metodo 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 del tuo 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 degli 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
|
Applicare i consigli
Valuta attentamente i consigli e svolgi una delle seguenti operazioni:
Per esaminare il consiglio, fai clic su Visualizza istanza. Consulta Ottimizzare il rendimento dell'istanza o Evitare il wraparound dell'ID transazione e segui i consigli.
Per ignorare il consiglio in modo che non sia evidenziato e venga visualizzato in grigio, fai clic su Ignora.
Per chiudere il riquadro senza applicare o ignorare il consiglio, fai clic su Annulla.
Ottimizzare le prestazioni dell'istanza
Per risolvere il problema di a capo dell'ID transazione con l'istanza:
Per ulteriori informazioni, consulta anche il post del blog Utilizzo di VACUUM per accelerare il blocco dell'ID transazione in Cloud SQL per PostgreSQL.
Evita il wraparound degli ID transazione
Per evitare il wraparound dell'ID transazione per un'istanza, esegui il seguente 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à del disco
- Identificare le istanze Cloud SQL inattive
- Ridurre le istanze Cloud SQL con provisioning eccessivo
- Esplora i consigli di Google Cloud