Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Determinare se le tabelle nel database devono essere sottoposte a vacuum

Modalità Focus
Determinare se le tabelle nel database devono essere sottoposte a vacuum - Amazon Relational Database Service

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à.

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à.

La seguente query può essere usata per mostrare il numero di transazioni non sottoposte a vacuum in un database. La datfrozenxid colonna della pg_database riga di un database è un limite inferiore della normale transazione che IDs appare in quel database. Questa colonna è il minimo dei valori relfrozenxid per tabella all’interno del database.

SELECT datname, age(datfrozenxid) FROM pg_database ORDER BY age(datfrozenxid) desc limit 20;

Ad esempio, i risultati dell'esecuzione della query precedente potrebbero essere i seguenti.

datname | age mydb | 1771757888 template0 | 1721757888 template1 | 1721757888 rdsadmin | 1694008527 postgres | 1693881061 (5 rows)

Quando l'età di un database raggiunge i 2 miliardi di transazioniIDs, si verifica il wraparound dell'ID della transazione (XID) e il database diventa di sola lettura. Puoi utilizzare questa query per produrre un parametro ed eseguirla alcune volte al giorno. Per impostazione predefinita, l'autovacuum è impostato per mantenere l'età delle transazioni a non più di 200,000,000 (autovacuum_freeze_max_age).

Un esempio di strategia di monitoraggio potrebbe avere questo aspetto:

  • Impostare il valore autovacuum_freeze_max_age su 200 milioni di transazioni.

  • Se una tabella raggiunge 500 milioni di transazioni senza vacuum, viene attivato un allarme a bassa gravità. Questo non è un valore irragionevole, ma può indicare che l'autovacuum non riesce a mantenere il passo.

  • Se una tabella invecchia a un miliardo, questo dovrebbe essere trattato come un allarme per cui intervenire. In generale, si desidera mantenere le età più vicine a autovacuum_freeze_max_age per motivi di prestazioni. Si consiglia di investigare utilizzando le raccomandazioni che seguono.

  • Se una tabella raggiunge 1,5 milioni di transazioni senza vacuum, viene attivato un allarme a gravità elevata. A seconda della velocità con cui il database utilizza la transazioneIDs, questo allarme può indicare che il sistema sta per scadere il tempo necessario per eseguire l'autovacuum. In questo caso, consigliamo di risolvere il problema immediatamente.

Se una tabella superando costantemente queste soglie, modifica ulteriormente i parametri dell'autovacuum. Per impostazione predefinita, l'utilizzo VACUUM manuale (con i ritardi basati sui costi disattivati) è più aggressivo rispetto all'utilizzo dell'autovacuum predefinito, ma è anche più intrusivo per l'intero sistema.

Consigliamo quanto segue:

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.