it-swarm.com.de

Die CPU-Auslastung ist nach dem Upgrade von Postgres 9.5 auf 9.6 auf 10.6 konstant hoch

Ich habe meine RDS-Instanz (db.t2.medium) vor ein paar Tagen von Postgres 9.5 auf 9.6 aktualisiert. Seit dem Upgrade war die CPU-Auslastung fast 100%. Dies brachte meine Bewerbung zum Erliegen. Unter der Annahme, dass das Problem bei der Version 9.6 liegt, habe ich ein weiteres Upgrade auf 10.6 durchgeführt. Es wurde besser, aber immer noch erheblich höher als die CPU-Auslastung für die ursprüngliche 9.5-Version.

Ich habe den Anwendungscode während des Upgrades nicht geändert. Wie kann ich den Grund für die erhöhte CPU-Auslastung überprüfen und möglicherweise beheben?

(enter image description here

ANALYZE VERBOSE;

Mit dem obigen Befehl müssen Sie eine ANALYSE Abfrage für die gesamte Datenbank ausführen.

Das Problem ist, dass die von postgres generierten Abfragepläne für die vorherige Version von postgres optimiert sind. Wenn Sie ein RDS-Update durchführen, werden diese Pläne nicht implizit neu generiert. Dies muss manuell erfolgen (ich bin sicher, es gibt einen Grund, warum AWS dies nicht tut mache das nicht manuell, aber ich habe wirklich keine Ahnung warum).

In meinem Fall sah ich ungefähr eine Woche mit extrem hoher CPU-Auslastung, genau wie in Ihrem Fall. Nachdem ANALYZE ausgeführt wurde, fiel meine CPU auf die vorherige Basis zurück. Wie Sie in der Abbildung unten sehen können, wurde das Upgrade (in meinem Fall von 9.4 - 9.5) am 27.11. Ausgeführt, die Analyseabfrage am 12.02.

(Die VERBOSE ist nicht unbedingt erforderlich, aber es ist nützlich, den Fortschritt des Befehls verfolgen zu können.)

(Postgres RDS CPU usage over the course of a week

5
tannart