nf

    技术2022-07-11  158

    系统连接数高的时候,机子出现掉包,查看日志发现报错,nf_conntrack: table full, dropping packet,解决办法就是调整参数。

    有的人建议关闭防火墙,但是对于linux来说,iptables就是一个命令好像没有关闭开启之说。

    这里采取调整参数的方式进行调优。 查看相关参数 sysctl net.netfilter.nf_conntrack_max 可以查看当前值 sysctl net.netfilter.nf_conntrack_count 可以查看tracking table数

    提高 net.netfilter.nf_conntrack_max

    默认的net.netfilter.nf_conntrack_max 是 65536 这里我们首先提高 net.netfilter.nf_conntrack_max , 当然,肯定不是越高越好,如果你的机器是一个64GB 64bit的系统,那么最合适的值是 CONNTRACK_MAX = 64*1024*1024*1024/16384/2 = 2097152 即时生效使用 /sbin/sysctl -w net.netfilter.nf_conntrack_max = 2097152 确保重启后也生效使用 echo net.ipv4.netfilter.ip_conntrack_max = 2097152 >> /etc/sysctl.conf

    提升hash-table的数量

    哈希表一般是net.netfilter.nf_conntrack_max的1/8 ```bash hashsize = nf_conntrack_max / 8 更改哈希表的值 echo 262144 > /sys/module/nf_conntrack/parameters/hashsize 并且添加到模块/etc/modprobe.conf options ip_conntrack hashsize=262144

    调整优化系统参数

    /etc/sysctl.conf配置调整 net.netfilter.nf_conntrack_max = 2097152 net.netfilter.ip_conntrack_tcp_timeout_established = 3600 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

    原文:https://www.cnblogs.com/sshcy/p/10690829.html

    Processed: 0.008, SQL: 9