Il motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL genera in modo proattivo suggerimenti che ti aiutano a evitare il potenziale wraparound degli ID transazione per le istanze Cloud SQL per PostgreSQL. Il motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL è supportato solo per le istanze della versione Cloud SQL Enterprise Plus.
Puoi applicare questo suggerimento quando una tendenza di un'istanza Cloud SQL indica un problema di wraparound degli ID transazione. Questa pagina descrive il funzionamento del motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL e come puoi utilizzarlo.
Come funziona
Un ID transazione viene assegnato all'inizio della transazione e rimane invariato fino a quando la transazione non viene sottoposta a vacuum. L'utilizzo degli ID transazione è il numero di transazioni non sottoposte a vacuum (assegnate meno quelle invariate) espresso come frazione del valore massimo di 2 miliardi. Con le impostazioni predefinite di PostgreSQL, con i processi di vacuum che funzionano in modo ottimale e senza interruzioni, la maggior parte dei database registra un utilizzo degli ID transazione nella regione di circa il 10%. Livelli di utilizzo degli ID transazione più elevati possono essere osservati in database occupati in cui i carichi di lavoro regolari hanno spesso la precedenza sul vacuum. 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. Quando l'utilizzo degli ID transazione raggiunge il 100%, si parla di wraparound degli ID transazione. Una volta che la percentuale di utilizzo degli ID transazione raggiunge il 100%, PostgreSQL smette di accettare query di scrittura.
Il motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL analizza l'utilizzo degli ID transazione su un'istanza Cloud SQL per PostgreSQL.
Se la percentuale di utilizzo degli ID transazione è maggiore o uguale all'80%, ti consigliamo di intraprendere azioni per evitare il wraparound degli ID transazione.
Prezzi
Il motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL è incluso nel livello di prezzi Standard di Recommender.
Prima di iniziare
Prima di poter visualizzare i suggerimenti e gli approfondimenti, procedi nel seguente modo:
- Per ottenere le autorizzazioni per visualizzare e utilizzare gli approfondimenti e i suggerimenti,
assicurati di disporre dei ruoli richiesti.
Per saperne di più sui ruoli, consulta la sezione Comprendere i ruoli e concedere le autorizzazioni IAM.Tasks Ruoli Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewerocloudsql.viewer.Applica suggerimenti Uno di questi ruoli: recommender.cloudsqlAdmin,cloudsql.editor, ocloudsql.admin. Abilita l'API Recommender.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.
Elenca i suggerimenti per migliorare il rendimento dell'istanza
Puoi elencare i suggerimenti per migliorare il rendimento dell'istanza
utilizzando la Google Cloud console, gcloud CLI, o l'API Recommender.
I suggerimenti per migliorare il rendimento dell'istanza vengono visualizzati solo se hai istanze che si avvicinano a un wraparound degli ID transazione.
Console
Per elencare i suggerimenti sul rendimento dell'istanza utilizzando la Google Cloud console, segui questi passaggi:
Vai alla pagina Istanze Cloud SQL.
Fai clic su Visualizza tutto nel banner dei suggerimenti Evita il wraparound degli ID transazione.
In alternativa, segui questi passaggi:
Vai ad Active Assist. Consulta anche la Guida introduttiva all'hub dei suggerimenti.
Nella scheda Migliora il rendimento dell'istanza Cloud SQL, fai clic su Visualizza tutto.
Seleziona le istanze con il suggerimento Evita il wraparound degli ID transazione.
gcloud CLI
Per elencare i suggerimenti per migliorare il rendimento dell'istanza utilizzando gcloud CLI, esegui il
gcloud recommender recommendations list
comando 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 suggerimenti per migliorare il rendimento dell'istanza utilizzando l'
API Recommendations, chiama il
recommendations.list
metodo 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: il tuo ID progetto.LOCATION: una regione, ad esempious-central1.
Se il motore per suggerimenti rileva istanze con un utilizzo elevato degli ID transazione, le elenca in una tabella con altri suggerimenti sul rendimento. Ogni riga mostra l'ID istanza, un breve suggerimento, il motore del database, la località e la data dell'ultimo aggiornamento.
Visualizza approfondimenti e suggerimenti dettagliati
Puoi visualizzare approfondimenti e suggerimenti dettagliati sulle istanze
che si avvicinano a un wraparound degli ID transazione utilizzando la Google Cloud console,
gcloud CLI, o l'API Recommender.
Console
Per visualizzare approfondimenti e suggerimenti dettagliati sulle istanze che si avvicinano alla soglia di rendimento utilizzando la Google Cloud console, fai clic sul link del suggerimento nell'elenco delle istanze.
gcloud CLI
Per visualizzare approfondimenti e suggerimenti dettagliati sulle istanze che si avvicinano alla soglia di rendimento utilizzando gcloud CLI, esegui il
gcloud recommender insights list
comando 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: il tuo ID progetto.LOCATION: una regione, ad esempious-central1.
API
Per visualizzare approfondimenti e suggerimenti dettagliati sulle istanze che si avvicinano 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: il tuo ID progetto.LOCATION: una regione, ad esempious-central1.
La tabella seguente elenca l'approfondimento e il suggerimento generati dal motore per suggerimenti per un utilizzo elevato degli ID transazione di Cloud SQL. I sottotipi sono visibili nei risultati di gcloud CLI e dell'API.
| Approfondimento | Suggerimento |
|---|---|
| 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
|
Applica suggerimenti
Valuta attentamente i suggerimenti ed esegui una delle seguenti operazioni:
Per esaminare il suggerimento, fai clic su Visualizza istanza. Consulta Ottimizzare il rendimento dell'istanza o Evitare il wraparound degli ID transazione e segui i suggerimenti.
Per ignorare il suggerimento in modo che venga ridotto e visualizzato in grigio, fai clic su Ignora.
Per chiudere il riquadro senza applicare o ignorare il suggerimento, fai clic su Annulla.
Ottimizza il rendimento dell'istanza
Per risolvere il problema del wraparound degli ID transazione con l'istanza:
Per ulteriori informazioni, consulta anche il post del blog Utilizzare VACUUM per accelerare il blocco degli ID transazione in Cloud SQL per PostgreSQL.
Evita il wraparound degli ID transazione
Per evitare il wraparound degli 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 | Cloud SQL for PostgreSQL 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
- Monitoraggio della disponibilità del disco
- Identificazione delle istanze Cloud SQL inattive
- Riduzione delle istanze Cloud SQL con provisioning eccessivo
- Esplora i Google Cloud motori per suggerimenti