当PostgreSQL进程"在事务中空闲" 时,它意味着什么?
在我正在查看的服务器上,"ps ax | grep postgres"的输出我看到9个PostgreSQL进程,如下所示:
postgres: user db 127.0.0.1(55658) idle in transaction
这是否意味着某些进程挂起,等待事务提交?任何指向相关文档的指标都表示赞赏.
的PostgreSQL的手动指示,这意味着该事务是打开的(内部BEGIN)和空闲.这很可能是使用正在思考或打字的显示器连接的用户.我的系统上也有很多这些.
但是,如果您使用Slony进行复制,则Slony-I FAQ建议idle in transaction
可能意味着网络连接突然终止.有关详细信息,请查看该常见问题解答中的讨论.
正如这里提到的:Re:BUG#4243:闲置在事务中最好检查你的pg_locks表,看看被锁定的是什么,这可能会让你更好地了解问题所在.