Postgresql 远程连接时间过长自动中断问题解决

在网络上连接远程服务器postgresql时,不活动时间稍长就会自动断开连接,不利于操作

postgresql支持TCP_KEEPLIVE机制。有三个系统变量tcp_keepalives_idle,tcp_keepalives_interval ,tcp_keepalives_count 来设置postgresql如何处理死连接。
 对于每个连接,postgresql会对这个连接空闲tcp_keepalives_idle秒后,主动发送tcp_keeplive包给客户端,以侦探客户端是否还活着 ,当发送tcp_keepalives_count个侦探包,每个侦探包在tcp_keepalives_interval秒内没有回应,postgresql就认为这个连接是死的。于是切断这个死连接。
Linux下面默认是2小时. tcp的keepalives包发送间隔以及重试次数. 如果你的网络环境中有设备自动断开空闲会话,那么建议你设置心跳时间小于网络设备的断链接阈值。
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 6

需要更改相关参数postgresql.conf

tcp_keepalives_idle = 0             TCP空闲= 0 单位秒 选择系统默认#0

tcp_keepalives_idle = 600

这里我将时间改为10分钟方便开发人员使用。

如果你觉得我的文章对你有帮助,请分享出去,捐赠本站

捐赠本站

发表回复