1、本地连接远程Linux上PG数据库经常自动断开连接
原因:Linux设置的tcp的keepalive超时时间太长,如果网络状况不佳,可能会导致连接断掉。
[root@localhost ~]# sysctl -a | grep net.ipv4.tcp_keepalive
sysctl: reading key "net.ipv6.conf.all.stable_secret"
net.ipv4.tcp_keepalive_intvl = 75 #keep alive探测的时间间隔
net.ipv4.tcp_keepalive_probes = 9 #在这个连接被认为是断开之前,keep alive请求被重发的次数
net.ipv4.tcp_keepalive_time = 7200 #在第一次keep alive请求发送后,不活动连接的时间
解决:让pg更频繁地发出探测数据包来保持tcp连接(重启失效)。
[root@localhost ~]# sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_probes=3 net.ipv4.tcp_keepalive_intvl=10
永久修改方法:
打开文件/etc/sysctl.conf并添加以下内容
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 10
然后保存退出,执行以下语句使之生效
sysctl -p