Il vacuuming è un'importante operazione di manutenzione del database PostgreSQL. Viene utilizzato per recuperare lo spazio di archiviazione occupato dalle righe aggiornate o eliminate per evitare il bloat di tabelle o indici. 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ù sul vacuuming, consulta Vacuuming di routine.
Per automatizzare il processo di vacuuming e aggiornare collettivamente le statistiche della tabella, AlloyDB Omni supporta l'autovacuum adattivo. Autovacuum adattivo consente la regolazione automatica del workload di vacuum quando il workload cambia, rimuove le tuple inattive e aggiorna le statistiche della tabella.
Autovacuum garantisce prestazioni transazionali delle applicazioni affidabili e coerenti e mantiene l'alta affidabilità del sistema impedendo il wraparound degli ID transazione.
Per impostazione predefinita, AlloyDB Omni attiva 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 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 workload e alle risorse disponibili senza influire sulle prestazioni del sistema.
Prevenzione del wraparound degli ID transazione. AlloyDB Omni monitora l'avanzamento del vacuum e la velocità di consumo degli ID transazione. Se necessario, AlloyDB Omni limita il consumo degli ID transazione eseguendo il vacuuming di ogni tabella nel database, impedendo il wraparound degli ID transazione.
Vacuum periodico per le tabelle. AlloyDB Omni attiva l'autovacuum in base al numero di tuple inattive e alle pagine da scansionare. Rimuove le tuple inattive in modo tempestivo per evitare il bloat di tabelle o indici.
Rilevamento automatico dei blocchi. AlloyDB Omni rileva automaticamente i blocchi, come transazioni a lunga esecuzione, 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 i flag di database di un'istanza](/alloydb/omni/linux/current/docs/configure-database-flags) in modo che enable_google_adaptive_autovacuum sia impostato 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 dell'autovacuum adattivo,
perché l'autovacuum adattivo adatta e ottimizza il suo comportamento in base ai workload reali.
Se imposti i valori in questi flag, l'autovacuum adattivo modifica il suo comportamento per tenere conto delle tue preferenze.
Per visualizzare l'elenco completo dei flag di database PostgreSQL supportati relativi a vacuum e autovacuum, consulta i flag vacuum e i flag autovacuum.