Il recommender di utilizzo di ID ad alte transazioni di Cloud SQL genera in modo proattivo suggerimenti che ti aiutano a evitare il potenziale wraparound degli ID transazione per le istanze PostgreSQL di Cloud SQL.
Puoi applicare questo suggerimento quando un'istanza Cloud SQL è in tendenza verso un problema wraparound dell'ID transazione. Questa pagina descrive come funziona il motore per suggerimenti di utilizzo di ID ad alte transazioni di Cloud SQL e come utilizzarlo.
Come funziona
Un ID transazione viene assegnato all'avvio della transazione e viene bloccato fino a quando la transazione non viene eliminata. L'utilizzo dell'ID transazione è il numero di transazioni non eliminate (assegnate meno congelate) espresso come frazione del valore massimo di 2 miliardi. Con le impostazioni predefinite di PostgreSQL, con i processi vacuum che funzionano in modo ottimale e senza interruzioni, la maggior parte dei database riscontra un utilizzo degli ID transazione nella regione di circa il 10%. È possibile osservare livelli di utilizzo di ID transazione più elevati nei database occupati, in cui i carichi di lavoro regolari hanno spesso la precedenza sul vacuum. Se l'utilizzo degli ID transazione tende a raggiungere valori molto elevati (80% o più), il database potrebbe essere a rischio di esaurimento degli ID transazione. L'utilizzo dell'ID transazione che raggiunge il 100% viene definito come wraparound degli ID transazione. Quando la percentuale di utilizzo dell'ID transazione raggiunge il 100%, PostgreSQL smette di accettare query di scrittura.
Il motore per suggerimenti di utilizzo di ID ad alte transazioni di Cloud SQL analizza l'utilizzo degli ID transazione su un'istanza PostgreSQL di Cloud SQL.
Se la percentuale di utilizzo dell'ID transazione è superiore o uguale all'80%, ti consigliamo di intervenire per evitare il wraparound degli ID transazione.
Prezzi
Il motore per suggerimenti high-transaction-ID-utilization in Cloud SQL si trova nel livello di prezzo Standard del motore per suggerimenti.
Prima di iniziare
Prima di poter visualizzare consigli e approfondimenti:
- Per ottenere le autorizzazioni necessarie per visualizzare e utilizzare insight e suggerimenti, assicurati di disporre dei ruoli richiesti.
Attività Ruoli Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewer
ocloudsql.viewer
.Applica consigli Uno di questi ruoli: recommender.cloudsqlAdmin
,cloudsql.editor
, ocloudsql.admin
. -
Attiva l'API Recommender.
Elenco suggerimenti per migliorare le prestazioni delle istanze
Puoi elencare i suggerimenti per il miglioramento delle prestazioni dell'istanza utilizzando la console Google Cloud, gcloud CLI
o l'API Recommender.
I suggerimenti per il miglioramento delle prestazioni delle istanze vengono mostrati solo se si hanno istanze vicine al wrapping di un ID transazione.
Console
Per elencare i suggerimenti sulle prestazioni delle istanze utilizzando la console Google Cloud, segui questi passaggi:
Vai alla pagina Istanze Cloud SQL.
Fai clic su Visualizza tutto nel banner dei suggerimenti wraparound per la prevenzione di 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 dell'istanza 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 per il miglioramento delle prestazioni dell'istanza 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, comeus-central1
API
Per elencare i suggerimenti per il miglioramento delle prestazioni dell'istanza 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, comeus-central1
.
Se il motore per suggerimenti rileva istanze con un utilizzo elevato di ID transazione, le elenca in una tabella insieme ad altri suggerimenti 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 insight e suggerimenti dettagliati sulle istanze
che tendono al wraparound di un ID transazione utilizzando la console Google Cloud,
gcloud CLI
o l'API Recommender.
Console
Per visualizzare insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia di prestazioni utilizzando la console Google Cloud, fai clic sul link dei suggerimenti nell'elenco delle istanze.
Interfaccia a riga di comando gcloud
Per visualizzare insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia di prestazioni 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, comeus-central1
.
API
Per visualizzare insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia di prestazioni 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, comeus-central1
.
La seguente tabella elenca gli insight e i suggerimenti generati dal motore per suggerimenti di utilizzo di ID ad alte transazioni di Cloud SQL. I sottotipi sono visibili nei risultati gcloud CLI
e API.
Approfondimento | Suggerimento |
---|---|
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 e procedi in uno dei seguenti modi:
Per esaminare il suggerimento, fai clic su Visualizza istanza. Consulta le sezioni Ottimizzare le prestazioni dell'istanza o Impedire il wraparound degli ID transazione e seguire i consigli.
Per ignorare il consiglio in modo che venga rimosso e che risulti in grigio, 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 degli ID transazione con l'istanza:
Per ulteriori informazioni, consulta anche il post del blog Using VACUUM to accelerate transaction ID freezing in Cloud SQL per PostgreSQL.
Evita il wraparound degli ID transazione
Per evitare il wraparound degli 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à del disco
- Identifica le istanze Cloud SQL inattive
- Riduci le istanze Cloud SQL con overprovisioning
- Esplora i motori per suggerimenti di Google Cloud