我想查看在实时Django应用程序上正在执行哪些查询,以及它们占用了多少内存。我已经读过,pg_stat_activity
对于监视Postgres数据库可能很有用。
我看了Postgres文档,但是我有一个非常简单的问题,似乎没有得到回答。
我实际上是如何开始的pg_stat_activity
?我键入什么来使用它,在哪里键入?
看到这个密切相关的答案。
pg_stat_activity
是pg_catalog
架构中的视图。
您可以SELECT
像其他任何表一样通过查询来查询它SELECT * FROM pg_stat_activity
。您链接到的手册页解释了其列。
有时您会发现自己想加入pg_class
(tables),pg_namespace
(schemas)等其他表。
pg_stat_activity
并没有公开有关后端的内存使用信息。您需要为此使用操作系统级别的设施。它确实告诉您进程ID,活动用户,当前正在运行的查询,活动状态,最后一次查询开始的时间等。它对于识别长时间运行的idle in transaction
会话,运行时间非常长的查询等非常有用。
坦白说,PostgreSQL的内置监视功能非常初级。这是一个工作上并不令人兴奋的领域之一,商业客户并不经常愿意为此提供资金。大多数人将check_postgres
Icinga和Munin等工具与工具结合使用,或者使用Zabbix或其他外部监视代理。
在您的情况下,听起来像您真正想要的pg_stat_statements
,和/或具有适当的日志记录设置(可能还有auto_explain
模块)的PgBadger日志分析。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句