View a markdown version of this page

Miglioramenti dell'autovacuum adattivo in PostgreSQL versione 18 - 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à.

Miglioramenti dell'autovacuum adattivo in PostgreSQL versione 18

A partire dalla versione 18 di RDS per PostgreSQL, Amazon RDS migliora il meccanismo adattivo di autovacuum per scalare dinamicamente quando l'istanza DB si avvicina al wraparound dell'ID di transazione. autovacuum_max_workers Nelle versioni precedenti di PostgreSQL, era necessario un riavvio per la modificaautovacuum_max_workers. PostgreSQL 18 autovacuum_max_workers crea un parametro dinamico, che consente ad Amazon RDS di modificarlo senza riavviare.

PostgreSQL 18 introduce anche un nuovo parametroautovacuum_worker_slots, che riserva gli slot di processo di backend per gli autovacuum worker all'avvio del server. Questo parametro imposta il limite massimo per il numero di autovacuum worker che possono essere eseguiti contemporaneamente; non può superare questo valore. autovacuum_max_workers Al contrarioautovacuum_max_workers, autovacuum_worker_slots richiede un riavvio per la modifica. Per ulteriori informazioni, consulta la autovacuum_worker_slotsdocumentazione di PostgreSQL.

In che modo l'autovacuum adattivo consente di scalare i lavoratori

Quando la MaximumUsedTransactionIDs CloudWatch metrica supera 1 miliardo su un'istanza di PostgreSQL 18, Amazon RDS autovacuum_max_workers aumenta fino al autovacuum_worker_slots valore utilizzando la seguente formula, che è anche la formula predefinita per il parametro: autovacuum_worker_slots

LEAST(GREATEST({DBInstanceClassMemory/32185783296}, 16), 32)

Per istanze di piccole e medie dimensioni (fino a 512 GiB di memoria), l'autovacuum adattivo è scalabile fino a 16 lavoratori. Per le istanze più grandi, il numero di worker aumenta proporzionalmente alla memoria fino a un massimo di 32. Ad esempio, un'istanza db.m5.4xlarge (64 GiB) ha un valore predefinito di 3. autovacuum_max_workers Quando MaximumUsedTransactionIDs supera 1 miliardo, Amazon RDS lo ridimensiona a 16 dipendenti.

Amazon RDS non diminuisce mai un valore che hai già configurato. Se la configurazione autovacuum_max_workers è già superiore al valore calcolato, Amazon RDS non la modifica.

Ogni autovacuum worker utilizza la memoria fino all'impostazione specificata. autovacuum_work_mem Quando l'autovacuum adattivo aumenta il numero di lavoratori, la memoria totale consumata dall'autovacuum aumenta proporzionalmente. Ad esempio, se autovacuum_work_mem è impostato su 1 GB e l'autovacuum adattivo è scalabile da 3 a 16 lavoratori, la memoria massima utilizzata dagli operatori con aspirapolvere automatico aumenta da 3 GB a 16 GB.

avvertimento

Assicurati che la combinazione di processi di lavoro e memoria sia uguale alla memoria totale che desideri allocare all'autovacuum.

Monitoraggio delle modifiche adattive dell'autovacuum

Quando Amazon RDS modifica autovacuum_max_workers qualsiasi altro parametro autovacuum, genera un evento per l'istanza DB interessata. Puoi visualizzare questi eventi nella Console di gestione AWS o tramite l'API Amazon RDS. Per ulteriori informazioni sugli eventi RDS, consulta le categorie di eventi e i messaggi di eventi di Amazon RDS. Per ricevere notifiche quando si verificano questi eventi, consulta Sottoscrizione alla notifica degli eventi di Amazon RDS.

Per visualizzare le impostazioni correnti dell'autovacuum in memoria, connettiti alla tua istanza DB ed esegui il seguente comando:

SHOW autovacuum_max_workers;

I valori del gruppo di parametri non vengono modificati. Amazon RDS modifica questi parametri solo in memoria sull'istanza DB. Quando MaximumUsedTransactionIDs scende al di sotto della soglia, Amazon RDS reimposta i parametri ai valori nel gruppo di parametri e genera un altro evento.