Ich habe eine ziemlich große Tabelle (1 Million Zeilen) und meine Datenbank befindet sich in einem Autovakuum (> 30 Minuten) in dieser Tabelle, wodurch die gesamte Datenbank blockiert wird. Die Anwendung wird jetzt nicht einmal geladen.
-00:37:31.137859 autovacuum: VACUUM public.users
SELECT n_tup_del, n_tup_upd FROM pg_stat_all_tables WHERE relname = 'users';
Dies sind meine Autovakuum-Einstellungen in meiner Benutzertabelle:
autovacuum_vacuum_scale_factor=0.0,
autovacuum_vacuum_threshold=5000,
autovacuum_analyze_scale_factor=0.0,
autovacuum_analyze_threshold=5000
Diese vorgeschlagenen Einstellungen habe ich von Slow PostgreSQL Performance verwendet? Vergessen Sie nicht, Ihre Datenbank zu staubsaugen
Muss ich nur abwarten? Was sind meine Optionen?
Aktualisieren
Ich habe ein Upgrade auf Postgres 9.5 durchgeführt und mein RDS-IOPS auf 900 erhöht. Der Vakuumprozess maximiert immer noch das IOPS und kann nichts anderes mit der Datenbank tun. Der Prozess wurde 1 Tag vor dem Upgrade zu einem bestimmten Zeitpunkt ausgeführt.
Ich habe auch die benutzerdefinierten Autovakuum-Einstellungen entfernt, die ich hatte, und verwende jetzt nur die Standardeinstellungen.
Hier ist ein Anhang der Ergebnisse dieser Abfragen;
SELECT * FROM pg_stat_activity;
SELECT * FROM pg_stat_database;
SELECT * FROM pg_stat_user_tables;
SELECT * FROM pg_stat_user_indexes;
SELECT * FROM pg_locks;
vacuum_cost_limit
auf etwas Höheres einstellen , aber schwer zu sagen, wie das mit dem IOPS-Problem zusammenhängt, das Sie sehen