站点图标 星露谷值班站长

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

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 分钟方便开发人员使用。

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

捐赠本站

退出移动版