Что означает состояние IDLE в строке pg_stat_activity?

14

Может ли кто-нибудь разрешить мои ниже сомнения по поводу pg_stat_activitypostgres 9.5?

  1. Могут ли некоторые дать мне знать, что state IDLEобозначает ряд в ряду pg_stat_activity? Как будто он проверяет все открытые соединения с postgres и если соединение не выполняет какой-либо запрос, то IDLEобозначает последний запрос, выполненный соединением?
  2. В выводе select * from pg_stat_activityя вижу строки с state IDLEи query_start_dateболее 2 дней? Что это значит? Должен ли я беспокоиться об этом?
  3. Может кто-нибудь сообщить мне, как заполняется pg_stat_activity? Если я выполняю запрос наподобие Select * from pg_stat_activityтого, производит ли он детали из некоторого снимка, поддерживаемого postgres, или проверяет текущие соединения, открытые в postgres, чтобы предоставить подробности?
тук
источник
ре 1): postgresql.org/docs/current/static/…
a_horse_with_no_name

Ответы:

11

На этот вопрос ответили в списке рассылки postgres

Каждая строка в pg_stat_activity представляет собой установленное соединение с сервером от клиента. «бездействующий» означает, что клиент в настоящее время не выполняет ни запрос, ни транзакцию.

Если query_start_date имеет значение 2 дня, это означает, что последний запрос, который должен быть выполнен для этого соединения, был два дня назад.

На самом деле это не повод для беспокойства, если у вас не так много открытых соединений, что они потребляют больше оперативной памяти, чем вы можете себе позволить. Как правило, желательно, чтобы пул соединений имел несколько незанятых соединений, чтобы запросы не страдали задержкой установления нового соединения.

тук
источник