协助运维同学诊断慢查询,发现php的慢查询九千多个数据了连接超时的记录。想不通,后来运维同学从系统日志发现输出:

ip_conntrack: table full, dropping packet.

搜了下,对比其他负载的portal:

cat /proc/sys/net/ipv4/ip_conntrack_max

这台异常的确实比另外的设备少了个0。

按照文档调:

# vim /etc/sysctl.conf 
net.ipv4.netfilter.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 12
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
# sysctl -p 使其生效

或者,不加载ip_conntrack模块(推荐
修改 /etc/sysconfig/iptables-config配置文件(就不需要上面方法调整的那些参数了,因为不加载了模块了,加了反而会在sysctl -p时提示报错)

# vim /etc/sysconfig/iptables-config 
IPTABLES_MODULES=""

以上方法整理自:http://www.ttlsa.com/linux/ip_conntrack-table-full-dropping-packet-solution/

经验:系统诊断应该连系统日志也要看一下才更专业。

Related Posts: ip_conntrack: table full, dropping packet. 解决方案 :

avatar