Подтвердить что ты не робот

Как использовать pg_stat_activity?

Я хотел бы посмотреть, какие запросы выполняются в реальном приложении Django и сколько памяти они занимают. Я прочитал, что pg_stat_activity может быть полезен для мониторинга базы данных Postgres.

Я посмотрел документацию Postgres, но у меня есть очень простой вопрос, на который, похоже, нет ответа.

Как мне начать работу с pg_stat_activity? Что я набираю, чтобы использовать его, и где его ввести?

4b9b3361

Ответ 1

Смотрите этот близкий ответ.

pg_stat_activity - это представление в схеме pg_catalog.

Вы можете запросить его SELECT ing из него, как и любую другую таблицу, например SELECT * FROM pg_stat_activity. Страница руководства, с которой вы связались, объясняет ее столбцы.

Иногда вы захотите присоединиться к другим таблицам, например, pg_class (таблицы), pg_namespace (схемы) и т.д.

pg_stat_activity не предоставляет информацию об использовании задней памяти. Для этого вам необходимо использовать средства уровня операционной системы. Он сообщает вам идентификатор процесса, активный пользователь, текущий выполняемый запрос, статус активности, время последнего запуска запроса и т.д. Это полезно для определения длительных сеансов idle in transaction, очень длинных запросов и т.д.

Откровенно говоря, встроенный мониторинг PostgreSQL довольно рудиментарный. Это одна из областей, в которых не так интересно работать, и коммерческие клиенты не часто готовы финансировать ее. Большинство людей объединяют инструменты, такие как check_postgres с Icinga и Munin, или используют Zabbix или другие внешние средства мониторинга.

В вашем случае это звучит так, как будто вы действительно хотите pg_stat_statements и/или анализ журнала PgBadger с подходящими настройками ведения журнала и, возможно, модулем auto_explain.