Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Adaptive Autovacuum-Verbesserungen in PostgreSQL Version 18
Beginnend mit RDS für PostgreSQL Version 18 verbessert Amazon RDS den adaptiven Autovacuum-Mechanismus, um dynamisch zu skalieren, autovacuum_max_workers wenn sich Ihre DB-Instance dem Transaktions-ID-Wraparound nähert. In früheren PostgreSQL-Versionen war für die autovacuum_max_workers Änderung ein Neustart erforderlich. PostgreSQL 18 erstellt autovacuum_max_workers einen dynamischen Parameter, sodass Amazon RDS ihn ohne Neustart anpassen kann.
PostgreSQL 18 führt auch einen neuen Parameter einautovacuum_worker_slots, der Backend-Prozessplätze für Autovacuum-Worker beim Serverstart reserviert. Dieser Parameter legt die Obergrenze fest, wie viele Autovakuum-Worker jemals gleichzeitig arbeiten können. Dieser Wert darf nicht überschritten werden. autovacuum_max_workers Im Gegensatz autovacuum_max_workers dazu ist für die Änderung ein Neustart autovacuum_worker_slots erforderlich. Weitere Informationen finden Sie autovacuum_worker_slots
Wie das adaptive Autovakuumsystem Mitarbeiter skaliert
Wenn die MaximumUsedTransactionIDs CloudWatch Metrik auf einer PostgreSQL 18-Instance 1 Milliarde überschreitet, erhöht autovacuum_max_workers Amazon RDS mithilfe der folgenden Formel, die auch die Standardformel für den Parameter ist, auf den autovacuum_worker_slots autovacuum_worker_slots Wert:
LEAST(GREATEST({DBInstanceClassMemory/32185783296}, 16), 32)
Für kleine und mittlere Instanzen (bis zu 512 GiB Speicher) kann das adaptive Autovakuumsystem auf 16 Arbeiter skaliert werden. Bei größeren Instanzen skaliert die Anzahl der Worker proportional zum Arbeitsspeicher bis zum Maximum von 32. Beispielsweise hat eine db.m5.4xlarge-Instance (64 GiB) den Standardwert 3. autovacuum_max_workers Bei MaximumUsedTransactionIDs mehr als 1 Milliarde Mitarbeitern skaliert Amazon RDS die Anzahl auf 16 Mitarbeiter.
Amazon RDS verringert niemals einen Wert, den Sie bereits konfiguriert haben. Wenn Ihr konfigurierter autovacuum_max_workers Wert bereits höher als der berechnete Wert ist, ändert Amazon RDS ihn nicht.
Jeder Autovakuum-Arbeiter verwendet Speicher bis zur autovacuum_work_mem Einstellung. Wenn die adaptive Autovakuierung die Anzahl der Arbeiter erhöht, nimmt der Gesamtspeicherverbrauch durch das Autovakuieren proportional zu. Wenn der Wert beispielsweise auf 1 GB festgelegt autovacuum_work_mem ist und die adaptive Autovakuierung von 3 bis 16 Mitarbeitern skaliert wird, erhöht sich die maximale Speicherbelegung durch Mitarbeiter mit der automatischen Vakuumierung von 3 GB auf 16 GB.
Warnung
Stellen Sie sicher, dass die Kombination aus Arbeitsprozessen und Arbeitsspeicher dem Gesamtspeicher entspricht, den Sie für die automatische Vakuumierung reservieren möchten.
Überwachung von Änderungen bei der adaptiven Autovakuierung
Wenn Amazon RDS Änderungen autovacuum_max_workers oder einen anderen Autovacuum-Parameter ändert, generiert es ein Ereignis für die betroffene DB-Instance. Sie können diese Ereignisse in der AWS-Managementkonsole oder über die Amazon RDS-API anzeigen. Weitere Informationen zu RDS-Ereignissen finden Sie unter Amazon RDS-Ereigniskategorien und Ereignismeldungen. Informationen zum Empfang von Benachrichtigungen, wenn diese Ereignisse eintreten, finden Sie unter Amazon RDS-Ereignisbenachrichtigung abonnieren.
Um die aktuellen In-Memory-Autovacuum-Einstellungen einzusehen, stellen Sie eine Verbindung zu Ihrer DB-Instance her und führen Sie den folgenden Befehl aus:
SHOW autovacuum_max_workers;
Die Werte der Parametergruppen werden nicht geändert. Amazon RDS ändert diese Parameter nur im Speicher der DB-Instance. Wenn der Schwellenwert MaximumUsedTransactionIDs unterschritten wird, setzt Amazon RDS die Parameter auf die Werte in Ihrer Parametergruppe zurück und generiert ein weiteres Ereignis.