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 
  • 相关阅读:
    python3中的文件操作
    python3网络爬虫实现有道词典翻译功能
    C++11 thread condition_variable mutex 综合使用
    goland scope pattern 设置
    Go 1.11 Module 介绍
    hustOJ 添加 golang 支持
    docker 搭建 hustoj
    最长重复字符串题解 golang
    golang 结构体中的匿名接口
    使用aliyun cli工具快速创建云主机
  • 原文地址:https://www.cnblogs.com/sshcy/p/10690829.html
Copyright © 2011-2022 走看看