当PostgreSQL进程"空闲时"是什么意思?

时间:2020-03-05 18:49:45  来源:igfitidea点击:

当PostgreSQL进程"空闲时"是什么意思?

在我正在查看的服务器上," ps ax | grep postgres"的输出显示了9个PostgreSQL进程,如下所示:

postgres: user db 127.0.0.1(55658) idle in transaction

这是否意味着某些进程已挂起,正在等待事务提交?任何指向相关文档的指针都将受到赞赏。

解决方案

回答

PostgreSQL手册指出这意味着事务是打开的(在BEGIN内部)并且是空闲的。最有可能是用户正在使用正在思考或者打字的监视器进行连接。我的系统上也有很多。

但是,如果我们使用Slony进行复制,则Slony-I FAQ建议"事务空闲"可能意味着网络连接突然终止。查看该常见问题解答中的讨论以获取更多详细信息。

回答

如此处所述:Re:BUG#4243:空闲处理中,最好检查pg_locks表以查看被锁定的内容,这可能会给我们一个更好的线索,表明问题所在。