关于postgresql:Postgres删除空闲用户多长时间

How long for Postgres to drop idle user

本问题已经有最佳答案,请猛点这里访问。

我有一个用户遇到了我们的应用程序崩溃的问题,并没有正确关闭他与数据库的连接 - 最终达到他的连接限制,无法重新登录。

没关系。 问题最终得到解决,应用程序正在关闭连接。

我想知道,如果用户达到他的连接限制,并且没有我做任何事情,Postgres 9.1的默认设置是什么?它自己断开连接?


那么,对于你的实际问题:

if a user reaches his connection limit, and without me doing anything, what is the default setting for Postgres 9.1 to drop the connection on its own?

如果您正在谈论的连接是与真实客户端的活动连接(即客户端仍然存在,没有崩溃和退出,并且可以读取和写入其连接套接字),Postgres将不会"自行断开连接"。 如果您对修剪这些闲置客户的方式感兴趣,请参阅此问题。

另一方面,Postgres后端可能名义上连接到一个真正崩溃或以其他方式退出的客户端,正如您之前提到的那样。 在这种情况下,Postgres可能不会注意到客户端已经消失,而不是仅仅处于空闲状态一段时间。 我相信确切的时间将由"TCP keepalive time"操作系统设置控制,或者您甚至可以通过连接参数在您的客户端中调整此设置:请参阅各种与Keepalive相关的设置。