And*_*dré 3 linux postgresql ubuntu timeout
我是Linux服务器配置的初学者,我对它没有太多的了解.我使用linux ubuntu root服务器来建立一个带postgres数据库的网站.我的电脑上的操作系统是Windows 7.
几分钟后(我不太确定,需要多长时间,可能是5分钟左右,不是很多)没有做任何事情我失去了联系,这真的很烦人.我用谷歌搜索了如何解决它,但没有真正找到解决方案,或者没有理解它们.
例如,我尝试更新我的postgresql.conf并编辑了这些值:
#tcp_keepalives_idle
#tcp_keepalives_interval
#tcp_keepalives_count
Run Code Online (Sandbox Code Playgroud)
哪个没有真正的帮助.我希望有机会闲置30分钟,而不会失去连接.
然后我读了另一个解决方案
http://www.gnugk.org/keepalive.html
老实说我真的不明白,我必须添加哪些内容.因为当我检查这个时:
sysctl -A | grep net.ipv4
Run Code Online (Sandbox Code Playgroud)
它告诉我:
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
Run Code Online (Sandbox Code Playgroud)
这应该意味着我不会失去我的连接2小时,不是吗?
我也不太了解线路的用途......这是否意味着客户端连接的每项服务,即使他处于非活动状态,他仍然可以连接2小时?无论是例如postgresql还是ftp还是什么?
请帮我!谢谢!
安德烈
好吧,似乎我解决了这个问题.虽然这里没有答案,但我只是想解释一下我的解决方案.
当我在连接上闲置几分钟时,我的ISP似乎很快就断开了我的连接.似乎是CGN(运营商级NAT)的问题.
我解决了这个问题,用sysctl设置keepalive包.
所以我使用了那些参数值:
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 20
net.ipv4.tcp_keepalive_time = 180
Run Code Online (Sandbox Code Playgroud)
这意味着3分钟后将发送第一个keepalive包,当每分钟(60秒)没有活动连接时,将发送一个新的keep alive包,这20次.总而言之,这阻止了我的连接分手.
也许如果另一个人在这里也有这个问题,这可能是一个解决方案.
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |