您当前的位置: 首页 > 服务器教程 > Linux教程 > iptables的conntrack表满了导致访问网站很慢

iptables的conntrack表满了导致访问网站很慢

作者:不详 来源:网络 发布时间: 2014-07-04 16:48 点击:
现象:突然发现访问网站很慢,服务器的cpu、内存和磁盘使用率都正常 分析过程及解决方案:查询/var/log/message日志发现有这样的记录“ip_conntrack table full dropping packet”。kernel 用 ip_conntrack 模块来记录 iptables 网络包的状态,并保存到 table 里(这个

iptables的conntrack表满了导致访问网站很慢

  现象:突然发现访问网站很慢,服务器的cpu、内存和磁盘使用率都正常

  分析过程及解决方案:查询/var/log/message日志发现有这样的记录“ip_conntrack table full dropping packet”。kernel 用 ip_conntrack 模块来记录 iptables 网络包的状态,并保存到 table 里(这个 table 在内存里),如果网络状况繁忙,比如高连接,高并发连接等会导致逐步占用这个 table 可用空间,一般这个 table 很大不容易占满并且可以自己清理,table 的记录会一直呆在 table 里占用空间直到源 IP 发一个 RST 包,但是如果出现被攻击、错误的网络配置、有问题的路由/路由器、有问题的网卡等情况的时候,就会导致源 IP 发的这个 RST 包收不到,这样就积累在 table 里,越积累越多直到占满,满了以后 iptables 就会丢包,出现外部无法连接服务器的情况。

  解决方案:Iptables启动的是会在日志里提示当前的buckets和conntrack_max的值以及每条跟踪连接需要消耗多少内存:

  也就是说304MB内存将支持1048576条跟踪连接记录,所以需要按照服务器的内存大小来配置合适的值。

  永久修改ip_conntrack_max和hashsize

  1) 增大 ip_conntrack_max(设置为 2^20,默认值是 2^16=65536)

  # vi /etc/sysctl.conf

  net.ipv4.ip_conntrack_max = 1048576

  2) 增大 hashsize (在i386架构上,HASHSIZE = CONNTRACK_MAX / 8)

  # vi /etc/modprobe.conf

  options ip_conntrack hashsize=131072

  然后重启 iptables 服务,在 messages中可以看到参数已生效:

  # service iptables restart

  
分享到:
本文"iptables的conntrack表满了导致访问网站很慢"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4