Configurare l'autovacuum adattivo

Questa pagina fornisce una panoramica dell'autovacuum adattivo di AlloyDB per PostgreSQL e descrive come configurarlo.

Il riassorbimento è un'importante operazione di manutenzione del database PostgreSQL. Viene utilizzato per recuperare lo spazio di archiviazione occupato dalle righe aggiornate o eliminate per evitare un eccessivo 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 ulteriori informazioni sull'aspirapolvere, consulta la sezione Aspirapolvere di routine.

Per automatizzare il processo di eliminazione dei dati non necessari e l'aggiornamento collettivo delle statistiche delle tabelle, AlloyDB supporta l'eliminazione automatica adattiva. L'autovacuum adattivo consente di regolare automaticamente il carico di lavoro di vacuum quando il carico di lavoro cambia, rimuove le tuple non valide e aggiorna le statistiche delle tabelle.

Autovacuum garantisce prestazioni transazionali dell'applicazione affidabili e coerenti e mantiene un'alta disponibilità del sistema impedendo il wraparound degli ID transazione.

Per impostazione predefinita, AlloyDB attiva l'autovacuum adattivo. Puoi disattivare o modificare l'autovacuum adattivo su AlloyDB utilizzando i flag di database.

Vantaggi

L'autopulizia adattiva offre i seguenti vantaggi:

  • Regolazione automatica delle risorse. AlloyDB regola automaticamente le risorse come CPU, I/O, numero di processi di svuotamento e memoria per il processo di svuotamento 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 monitora l'avanzamento del vuoto e la velocità di consumo degli ID transazione. Se necessario, AlloyDB riduce il consumo di ID transazione eseguendo il vacuum di ogni tabella del database, impedendo il wraparound degli ID transazione.

  • Svuoto periodico delle tabelle. AlloyDB attiva l'autovacuum in base al numero di tuple non valide e alle pagine da eseguire scansione. Rimuove le tuple non attive in modo tempestivo per evitare l'ingrandimento della tabella o dell'indice.

  • Rilevamento automatico dei blocchi. AlloyDB rileva automaticamente i blocchi, come le transazioni in esecuzione prolungata, le transazioni preparate orfane, gli 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.
    

Configurare l'autovacuum adattivo

Per impostazione predefinita, l'autovacuum adattivo è abilitato su AlloyDB. Puoi disabilitare l'autovacuum adattivo impostando il flag del database enable_google_adaptive_autovacuum di un'istanza su off.

Per ulteriori informazioni sull'impostazione dei flag di database, consulta Configurare i flag di database di un'istanza.

AlloyDB supporta diversi flag del 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, poiché l'autovacuum adattivo adatta e ottimizza il proprio comportamento in base ai carichi di lavoro reali. Se imposti valori in questi flag, l'ottimizzazione automatica adattiva regola il proprio comportamento in base alle tue preferenze.

Per visualizzare l'elenco completo dei flag del database PostgreSQL supportati relativi a vacuum e autovacuum, consulta flag vacuum e flag autovacuum.