Jun 19

Too many connectionsConnection closed by foreign host 解决方法 不指定

bkkkd , 22:49 , 开发应用 , 评论(1) , 引用(0) , 阅读(24394) , Via 本站原创 | |
今日在服务器的mysql出现了”Too many connectionsConnection closed by foreign host “错误。这个错误之前在测试机也出现过,当时没有留意,只是将测试机中的web服务器定时重启,以解决该问题。而今日出现的在外网的服务器,不能如些操作。可惜在baidu上根据没有找到有用的资料。都是一些小白写的文章。

后来经朋友分析,可能是iptables引起。由于linux下的iptables都是使用ip_conntrack进行跟踪,所有的进出数据包都会记录在连接跟踪表中,包括tcp,udp,icmp等,一旦连接跟踪表被填满以后,就会发生丢包,导致网络不稳定。

而我这一次刚好是由于昨天晚上增加了新的iptables条件,在大量访问下,出现了掉包的情况。引起mysql错误,而最后mysql由于没有获取到正确的连接,而完全没有占用cpu.

解决方法:
首先需要先加载ip_conntrack 模块,再通过以下接口进行调整,例如:

引用
modprobe  ip_conntrack
sysctl –w net.ipv4.netfilter.ip_conntrack_max = 655360


如果需要支持655360条跟踪记录的话,只需要将hash bucket设置为81920即可:

引用
modprobe  ip_conntrack  hashsize=81920


或者添加到 /etc/modprobe.conf 配置文件中:

引用
options ip_conntrack  hashsize=81920


通过这种方式就可以做到在ip_conntrack模块被加载时就设置好连接跟踪表的大小。

参考:http://bkeep.blog.163.com/blog/static/12341429020120303114594/
史咸匹妾 Email Homepage
September 17, 2013 10:46
不是很明白啊。
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]