it-swarm.com.de

Wie benutzt man pg_stat_activity?

Ich möchte sehen, welche Abfragen in einer Live-Anwendung Django ausgeführt werden und wie viel Speicher sie belegen. Ich habe gelesen, dass pg_stat_activity Nützlich sein kann, um eine Postgres-Datenbank zu überwachen.

Ich habe in der Postgres-Dokumentation nachgesehen , aber ich habe eine sehr einfache Frage, die dort nicht beantwortet zu sein scheint.

Wie fange ich eigentlich mit pg_stat_activity An? Was gebe ich ein, um es zu verwenden, und wo gebe ich es ein?

25
Richard

Siehe diese eng verwandte Antwort .

pg_stat_activity Ist eine Ansicht im Schema pg_catalog.

Sie können es abfragen, indem Sie wie jede andere Tabelle SELECT daraus abrufen, z. B. SELECT * FROM pg_stat_activity. Auf der von Ihnen verlinkten Handbuchseite werden die Spalten erläutert.

Sie werden manchmal feststellen, dass Sie anderen Tabellen wie pg_class (Tabellen), pg_namespace (Schemata) usw. beitreten möchten.

pg_stat_activity Macht keine Informationen über die Verwendung des Back-End-Speichers verfügbar . Sie müssen dafür Einrichtungen auf Betriebssystemebene verwenden. Es gibt Ihnen die Prozess-ID, den aktiven Benutzer, die aktuell ausgeführte Abfrage, den Aktivitätsstatus, den Zeitpunkt, zu dem die letzte Abfrage gestartet wurde usw. an. Ausführen von idle in transaction - Sitzungen, sehr lange laufenden Abfragen usw.

Ehrlich gesagt ist die in PostgreSQL integrierte Überwachung eher rudimentär. Es ist einer der Bereiche, an denen es nicht so spannend ist, zu arbeiten, und gewerbliche Kunden sind nicht oft bereit, ihn zu finanzieren. Die meisten Leute kombinieren Tools wie check_postgres mit Icinga und Munin oder verwenden Zabbix oder andere externe Überwachungsagenten.

In Ihrem Fall klingt es so, als ob Sie wirklich pg_stat_statements Und/oder PgBadger-Protokollanalyse mit geeigneten Protokollierungseinstellungen und möglicherweise dem Modul auto_explain Möchten.

42
Craig Ringer