在网络上连接远程服务器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分钟方便开发人员使用。
如果你觉得我的文章对你有帮助,请分享出去,捐赠本站