2016-12-02 1 views
0

Ich führe eine RDS postgresql-Instanz. Hin und wieder erlebt die Instanz einen Anstieg der Schreibaktivität auf der Festplatte, und die Abfrageleistung scheint darunter zu leiden. Der Spike dauert 5 - 10 Minuten und geht von alleine weg.Was verursacht Schreibaktivitäten

Die Datenbank unterstützt eine Vielzahl von Arbeitsauslastungen einschließlich Webabfrage und Chargendaten. Ich möchte die Spitze der Schreibaktivität mit einer bestimmten Art von Arbeitslast korrelieren, z. ein Anstieg des Web-Datenverkehrs oder ein Datensatz, der größer als gewöhnlich geladen ist, aber bisher nicht erfolgreich war.

Ich frage mich, ob Postgresql Server Instrumentierung, die ich für diesen Zweck verwenden könnte? Gibt es beispielsweise eine Möglichkeit, Laufwerkschreibvorgänge bestimmten Abfragen/Transaktionen zuzuordnen? Wenn dem so ist, könnte ich solche Informationen aggregieren, um festzustellen, welcher Typ von Transaktionen die meisten Schreibvorgänge auf der Festplatte verursacht hat.

Ich weiß, das ist ziemlich vage. Irgendwelche Vorschläge würden geschätzt werden.

Antwort

0

Abhängig von Ihrer Umgebung - zum Beispiel ich hauptsächlich Terminal-Befehlszeile Zeug verwenden, damit ich Zeit Schnappschüsse von Top-I/O-Prozesse mit sudo iotop -b -n 1|head -15 oder top ‚postgres‘ Prozesse sudo iotop -b -n 1 -u postgres müssen sich einloggen - hier würde ich TID finden, Top-I/O-Prozesse.

Mit psql -U ... -d ... -t -c "select pid, query from pg_stat_activity where state='active' " kann ich TID mit pid in PostgreSQL Prozessliste übereinstimmen.

Aber diese Spikes können auch durch "stats collector" oder Autovacuum-Prozesse verursacht werden und das können Sie nur auf Betriebssystemebene sehen.