Postgresql 博士后;“交易中闲置”;13个小时
我们最近看到一些查询在相当长的一段时间内“在事务中空闲”Postgresql 博士后;“交易中闲置”;13个小时,postgresql,Postgresql,我们最近看到一些查询在相当长的一段时间内“在事务中空闲” pid | usename | state | duration | application_name | wait_event | wait_event_type ------+---------+---------------------+----------+------------------+------------+---------------- 31620 | results | idle
pid | usename | state | duration | application_name | wait_event | wait_event_type
------+---------+---------------------+----------+------------------+------------+----------------
31620 | results | idle in transaction | 12:52:23 | bin/rails | |
这在交易中几乎是13个小时的空闲时间
你知道是什么原因让他们陷入闲置状态,或者如何深入挖掘吗?我们确实注意到一些后台作业的OOM错误
也有很多“空闲”查询,但感谢您的评论,这些似乎很好:
编辑#2:在事务处理过程中发现13小时空闲这些会话实际上都是空闲的,因此它们没有问题
idle
与事务中的idle
有很大不同:后者是一个打开的事务,持有锁并阻止VACUUM
,前者是无害的
OOM错误必须有不同的原因
您应该配置机器,以便
shared_buffers + max_connections * work_mem <= available RAM
shared\u buffers+max\u connections*work\u mem这些在事务中都是空闲的,只是空闲,这本身不是问题。您是否确实看到任何状态为“事务中空闲”的进程?“空闲”表示没有活动查询,仅此而已。除非您的应用程序100%的时间都在使用每一个连接,否则您将看到这一点。如果您确实看到100%的利用率,这通常表明您需要一个更好的服务器,因为查询可能已积压。很抱歉造成混淆。似乎我们有很多“空闲”的查询,这些查询都很好。但我们确实有一个13小时的“空闲事务”查询,我们最终只是终止了它。这可能是OOM引起的?必须关联事件的时间。事务中空闲的会话可能分配了一些内存,但不会增长。此外,它不应该导致其他会话使用更多RAM。