Jun
	19
	
	
		Too many connectionsConnection closed by foreign host 解决方法  
  
		
		
	
	 	今日在服务器的mysql出现了”Too many connectionsConnection closed by foreign host “错误。这个错误之前在测试机也出现过,当时没有留意,只是将测试机中的web服务器定时重启,以解决该问题。而今日出现的在外网的服务器,不能如些操作。可惜在baidu上根据没有找到有用的资料。都是一些小白写的文章。
后来经朋友分析,可能是iptables引起。由于linux下的iptables都是使用ip_conntrack进行跟踪,所有的进出数据包都会记录在连接跟踪表中,包括tcp,udp,icmp等,一旦连接跟踪表被填满以后,就会发生丢包,导致网络不稳定。
而我这一次刚好是由于昨天晚上增加了新的iptables条件,在大量访问下,出现了掉包的情况。引起mysql错误,而最后mysql由于没有获取到正确的连接,而完全没有占用cpu.
解决方法:
首先需要先加载ip_conntrack 模块,再通过以下接口进行调整,例如:
如果需要支持655360条跟踪记录的话,只需要将hash bucket设置为81920即可:
或者添加到 /etc/modprobe.conf 配置文件中:
通过这种方式就可以做到在ip_conntrack模块被加载时就设置好连接跟踪表的大小。
参考:http://bkeep.blog.163.com/blog/static/12341429020120303114594/
	后来经朋友分析,可能是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
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/
		史咸匹妾  
  
 
			
		 
  
 
			September 17, 2013 10:46    
		
			不是很明白啊。
			
		
		
	
	 分页: 1/1   1
  1   
 
	
 1
  1   
 
	 SVN常用命令实例
SVN常用命令实例 查看 SELinux状态及关闭SELinux
查看 SELinux状态及关闭SELinux  
 
