gpt4 book ai didi

linux - 使用 postgresql 在 ubuntu 上努力设置连接空闲超时

转载 作者:可可西里 更新时间:2023-11-01 11:49:03 26 4
gpt4 key购买 nike

我是 linux 服务器配置的初学者,对此我了解不多。我将 linux ubuntu 根服务器用于带有 postgres 数据库的网站。我电脑上的操作系统是 windows 7。

几分钟后(我不太确定,需要多长时间,可能 5 分钟左右,不是很多)但我什么也没做就失去了连接,这真的很烦人。我用谷歌搜索了如何修复它,但没有真正找到解决方案,或者不理解它们。

例如,我尝试更新我的 postgresql.conf 并编辑了这个值:

#tcp_keepalives_idle 
#tcp_keepalives_interval
#tcp_keepalives_count

这并没有真正帮助。我想有机会闲置 30 分钟,而不会断开连接。

然后我看了另一个解决方案:

http://www.gnugk.org/keepalive.html

老实说,我真的不明白,我必须添加的那些行是干什么用的。因为当我检查这个时:

sysctl -A | grep net.ipv4

它告诉我:

net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200

这应该意味着我不会在 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

这意味着在 3 分钟后将发送第一个 keepalive 包,并且当每分钟(60 秒)没有连接事件时,将发送一个新的 keepalive 包并且这 20 次。总而言之,这可以防止我的连接中断。

也许如果另一个人在这里也有这个问题,那可能是一个解决方案。

关于linux - 使用 postgresql 在 ubuntu 上努力设置连接空闲超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com