- Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Questa sezione esplora altri motivi che possono impedire che l'aspirapolvere compia progressi. Questi problemi non sono attualmente identificabili direttamente dalla funzione. postgres_get_av_diag()

Incoerenza dell'indice

Un indice logicamente incoerente può impedire che l'autovacuum compia progressi. I seguenti errori o errori simili vengono registrati durante la fase di vuoto dell'indice o quando si accede all'indice tramite istruzioni SQL.

ERROR: right sibling's left-link doesn't match:block 5 links to 10 instead of expected 2 in index ix_name
ERROR: failed to re-find parent key in index "XXXXXXXXXX" for deletion target page XXX CONTEXT: while vacuuming index index_name of relation schema.table

Guida

Ricostruisci l'indice o salta gli indici utilizzando il manuale. INDEX_CLEANUP VACUUM FREEZE

  • Utilizzo dell'opzione CONCURRENTLY — Prima della versione 12 di PostgreSQL, la ricostruzione di un indice richiedeva un blocco tabella esclusivo, che limitava l'accesso alla tabella. Con PostgreSQL versione 12 e versioni successive, l'opzione CONCURRENTLY consente il blocco a livello di riga, migliorando significativamente la disponibilità della tabella. Di seguito è riportato il comando:

    REINDEX INDEX ix_name CONCURRENTLY;

    Anche se CONCURRENTLY comporta meno interruzioni, può essere più lenta sui tavoli occupati. Se possibile, valuta la possibilità di creare l'indice durante i periodi di traffico ridotto. Per ulteriori informazioni, vedere REINDEX nella documentazione di PostgreSQL.

  • Utilizzo dell'opzione INDEX_CLEANUP FALSE: se gli indici sono grandi e si stima che richiedano molto tempo per essere completati, puoi sbloccare l'autovacuum eseguendo un VACUUM FREEZE manuale escludendo gli indici. Questa funzionalità è disponibile nella versione 12 di PostgreSQL e nelle versioni successive.

    Bypassare gli indici ti consentirà di saltare il processo di vacuità dell'indice incoerente e di mitigare il problema dell'involucro. Tuttavia, ciò non risolverà il problema sottostante relativo alla pagina non valida. Per risolvere completamente il problema relativo alla pagina non valida, dovrai comunque ricostruire l'indice.

Tasso di transazione eccezionalmente elevato

In PostgreSQL, tassi di transazione elevati possono influire in modo significativo sulle prestazioni di autovacuum, portando a una pulizia più lenta delle tuple morte e a un aumento del rischio di avvolgimento dell'ID delle transazioni. È possibile monitorare il tasso di transazione misurando la differenza tra due periodi di tempo, in genere al secondo. max(age(datfrozenxid)) Inoltre, puoi utilizzare le seguenti metriche dei contatori di RDS Performance Insights per misurare il tasso di transazione (la somma di xact_commit e xact_rollback) che è il numero totale di transazioni.

Contatore Tipo Unità Parametro

xact_commit

Transazioni

Commit al secondo

db.Transactions.xact_commit

xact_rollback

Transazioni

Rollback al secondo

db.Transactions.xact_rollback

Un aumento rapido indica un carico di transazioni elevato, che può sovraccaricare l'autovacuum, con conseguenti ingrossamenti, conflitti tra blocchi e potenziali problemi di prestazioni. Ciò può influire negativamente sul processo di autovacuum in un paio di modi:

  • Attività delle tabelle: la tabella specifica oggetto di cancellazione potrebbe registrare un volume elevato di transazioni, con conseguenti ritardi.

  • Risorse di sistema L'intero sistema potrebbe essere sovraccarico, rendendo difficile per Autovacuum l'accesso alle risorse necessarie per funzionare in modo efficiente.

Considerate le seguenti strategie per consentire all'autovacuum di funzionare in modo più efficace e di tenere il passo con le sue attività:

  1. Se possibile, riduci il tasso di transazione. Prendi in considerazione la possibilità di raggruppare o raggruppare transazioni simili, ove possibile.

  2. Scegli come target le tabelle aggiornate di frequente con VACUUM FREEZE operazioni manuali ogni notte, settimanalmente o bisettimanalmente durante le ore non di punta.

  3. Valuta la possibilità di ampliare la classe di istanza per allocare più risorse di sistema per gestire l'elevato volume di transazioni e l'autovacuum.