zoukankan      html  css  js  c++  java
  • nf_conntrack: table full, dropping packet 解决

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

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

    这里采取调整参数的方式进行调优。

    查看相关参数

    1 sysctl net.netfilter.nf_conntrack_max 可以查看当前值
    2 
    3 sysctl net.netfilter.nf_conntrack_count 可以查看tracking table数

    提高 net.netfilter.nf_conntrack_max

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

    提升hash-table的数量

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

    调整优化系统参数

     1 /etc/sysctl.conf配置调整
     2 
     3 net.netfilter.nf_conntrack_max  =   2097152  
     4 
     5 net.netfilter.ip_conntrack_tcp_timeout_established  =   3600  
     6 
     7 net.netfilter.nf_conntrack_tcp_timeout_close_wait  =   60  
     8 
     9 net.netfilter.nf_conntrack_tcp_timeout_fin_wait  =   120
    10   
    11 net.netfilter.nf_conntrack_tcp_timeout_time_wait  =   120 
  • 相关阅读:
    CentOS python升级到3.5时yum报错
    CentOS 7将Python 2.X.X升级到Python 3.X.X
    PL SQL Developer报错框乱码
    php遍历目录下文件,并读取内容
    Linux常用命令
    CentOS6.4安装go环境
    CentOS/RedHat rpm方式安装Apache2.2
    在Wamp 添加站点和域名
    印象笔记的导入与导出
    用csv文件读写一个人脸数据库,实现能够并显示对应的人脸结果
  • 原文地址:https://www.cnblogs.com/sshcy/p/10690829.html
Copyright © 2011-2022 走看看