L'operazione di vacuum è un'importante operazione di manutenzione del database PostgreSQL. Viene utilizzato per recuperare lo spazio di archiviazione occupato dalle righe aggiornate o eliminate per evitare l'aumento delle dimensioni della tabella o dell'indice. Viene utilizzato anche per bloccare gli ID transazione per evitare il wraparound degli ID transazione e per aggiornare le statistiche della tabella.
Per saperne di più sull'aspirazione, consulta la sezione Aspirazione di routine.
Per automatizzare il processo di pulizia e aggiornamento collettivo delle statistiche della tabella, AlloyDB Omni supporta l'autovacuum adattivo. L'autovacuum adattivo consente la regolazione automatica del carico di lavoro di pulizia quando il carico di lavoro cambia, rimuove le tuple morte e aggiorna le statistiche della tabella.
Autovacuum garantisce prestazioni transazionali dell'applicazione affidabili e coerenti e mantiene l'alta disponibilità del sistema impedendo il wraparound dell'ID transazione.
Per impostazione predefinita, AlloyDB Omni abilita l'autovacuum adattivo. Puoi disattivare o modificare l'autovacuum adattivo su AlloyDB Omni utilizzando i flag di database.
Vantaggi
L'autovacuum adattivo offre i seguenti vantaggi:
Regolazione automatica delle risorse. AlloyDB Omni regola automaticamente le risorse come CPU, I/O, numero di processi di vacuum e memoria per il processo di vacuum in base allo stato in tempo reale del carico di lavoro e alle risorse disponibili senza influire sulle prestazioni del sistema.
Prevenzione del wraparound degli ID transazione. AlloyDB Omni monitora l'avanzamento di vacuum e la velocità di consumo dell'ID transazione. Se necessario, AlloyDB Omni limita il consumo di ID transazione eseguendo il vacuum di ogni tabella del database, impedendo il wraparound degli ID transazione.
Pulizia periodica delle tabelle. AlloyDB Omni attiva autovacuum in base al numero di tuple non valide e alle pagine che devono essere scansionate. Rimuove le tuple morte in modo tempestivo per evitare l'espansione eccessiva di tabelle o indici.
Rilevamento automatico dei blocchi. AlloyDB Omni rileva automaticamente blocchi come transazioni a esecuzione prolungata, transazioni preparate orfane, slot di replica orfani e mostra messaggi di avviso simili ai seguenti nel log
postgres
:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
Configura l'autovacuum adattivo
Per impostazione predefinita, l'autovacuum adattivo è abilitato su AlloyDB Omni. Puoi
disattivare l'autovacuum adattivo impostando il flag di database enable_google_adaptive_autovacuum
di un'istanza su off
.
AlloyDB Omni supporta diversi flag di database PostgreSQL standard relativi
a vacuum e autovacuum, ad esempio vacuum_cost_delay
e autovacuum_vacuum_cost_delay
.
Non è necessario impostare valori in nessuno di questi flag per il funzionamento di autovacuum adattivo, perché questo adatta e ottimizza il proprio comportamento in base ai carichi di lavoro reali.
Se imposti valori in questi flag, l'autovacuum adattivo adegua il proprio comportamento
per tenere conto delle tue preferenze.
Per visualizzare l'elenco completo dei flag di database PostgreSQL supportati relativi a vacuum e autovacuum, consulta flag vacuum e flag autovacuum.