文档首页 > > 故障排除> Linux操作系统> Web访问超时系统日志打印:nf_conntrack:table full, dropping packet

Web访问超时系统日志打印:nf_conntrack:table full, dropping packet

分享
更新时间: 2019/11/06 GMT+08:00

问题现象

客户端访问web时出现time out。 服务端系统日志/var/log/messages打印kernel: nf_conntrack:table full, dropping packet。

图1 系统日志

适用场景

本节操作适用于CentOS系统,且系统开启了主机防火墙,其他Linux系统可能存在差异。

约束与限制

本节操作涉及修改系统内核参数,在线修改内核参数会出现内核不稳定,建议修改后在合理的时间重启系统,请评估风险后操作。

根因分析

iptables的connection-tracking模块使用系统内存的一部分来跟踪表中的连接。“ table full, dropping packet”表明连接跟踪表已满,不能为新连接创建新的条目,因为没有更多的空间。因此出现“dropping packet”问题。

解决方案是增加连接跟踪条目的数量。

CentOS 6系列操作系统处理方法

  1. 执行以下命令,查看nf_conntrack_max参数。

    # sysctl net.netfilter.nf_conntrack_max

  1. 检查当前正在跟踪的连接数。

    # cat /proc/sys/net/netfilter/nf_conntrack_count

    如果该值达到nf_conntrack_max值则会出现包被丢弃的现象。

  2. 提高 net.netfilter.nf_conntrack_max值(以内存为64G,net.netfilter.nf_conntrack_max值2097152为例)。

    执行以下命令,使配置即时生效。

    # sysctl -w net.netfilter.nf_conntrack_max=2097152

    执行以下命令确保重启后配置仍然生效。

    # echo "net.netfilter.nf_conntrack_max = 2097152" >> /etc/sysctl.conf

    • .net.netfilter.nf_conntrack_max 不是越高越好,通常根据内存大小进行设置。
    • nf_conntrack_max计算公式(64位)

      CONNTRACK_MAX = RAMSIZE (inbytes)/16384/2

      例如你的机器是一个64GB 64bit的系统,那么最合适的值是

      CONNTRACK_MAX = 64*1024*1024*1024/16384/2 = 2097152

  3. 如果conntrack表中的条目数量显着增加(例如超过前一个值的4倍),则还应增加存储conntrack条目的哈希表的大小以提高效率。

    计算新的哈希值:在CentOS6和更新版本中,计算公式是hashsize = conntrack_max/4

  4. 执行以下命令,设置新的哈希大小。

    # echo "options nf_conntrack expect_hashsize=131072 hashsize=131072" >/etc/modprobe.conf

  5. 重启iptables。

    # service iptables restart

CentOS 7系列操作系统处理方法

  1. 执行以下命令,在/etc/modprobe.d/firewalld-sysctls.conf中设置conntrack条目的哈希值。

    在CentOS6和更新版本中,计算公式是hashsize = conntrack_max/4

    # echo "options nf_conntrack expect_hashsize=131072 hashsize=131072" >> /etc/modprobe.d/firewalld-sysctls.conf

  1. 重启firewalld。

    # systemctl restart firewalld

  1. 确认参数修改成功。

    # sysctl -a |grep nf_conntrack_max

参考文档:https://access.redhat.com/solutions/8721

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区