Was bedeutet der IDLE-Status in einer Reihe von pg_stat_activity?

14

Kann jemand meine unten stehenden Zweifel pg_stat_activityin Bezug auf Postgres 9.5 lösen?

  1. Können einige mir mitteilen, was das state IDLEin der Zeile von bedeutet pg_stat_activity? Ist es so, als würde es alle offenen Verbindungen zu postgres prüfen und wenn die Verbindung keine IDLEAbfrage ausführt, wird die letzte von der Verbindung ausgeführte Abfrage angezeigt ?
  2. In der Ausgabe von select * from pg_stat_activitysehe ich Zeilen mit state IDLEund die query_start_datemehr als 2 Tage alt? Was bedeutet das? Sollte ich mir darüber Sorgen machen?
  3. Kann mir jemand mitteilen, wie pg_stat_activity ausgefüllt ist? Wenn ich eine Abfrage ausführe, wie Select * from pg_stat_activityerzeugt sie die Details aus einem von postgres verwalteten Snapshot oder prüft sie die aktuellen Verbindungen, die in postgres geöffnet sind, um die Details bereitzustellen?
Tuk
quelle
zu 1): postgresql.org/docs/current/static/…
a_horse_with_no_name

Antworten:

11

Dies wurde in der Postgres- Mailingliste beantwortet

Jede Zeile in pg_stat_activity repräsentiert eine von einem Client hergestellte Verbindung zum Server. "idle" bedeutet, dass der Client derzeit weder eine Abfrage noch eine Transaktion ausführt.

Wenn query_start_date 2 Tage alt ist, bedeutet dies, dass die letzte Abfrage, die für diese Verbindung ausgeführt wurde, vor zwei Tagen ausgeführt wurde.

Kein Grund zur Sorge, es sei denn, Sie haben so viele Verbindungen geöffnet, dass mehr RAM verbraucht wird, als Sie sich leisten können. Im Allgemeinen ist es wünschenswert, dass ein Verbindungspool einige inaktive Verbindungen aufweist, damit bei Abfragen nicht die Wartezeit für das Herstellen einer neuen Verbindung auftritt.

Tuk
quelle