Netfilter 是linux 内在的一个软件框架,用来记录管理网络数据包,Netfilter提供了5个hook 来记录管理网络包。

Netfilter进行包的管理,则需要记录每个连接的状态信息。这就是nf_conntrack的工作内容。

PREROUTING, 所有包都会经过这个hook
LOCAL INPUT, 进入本机的包会经过这个hook
FORWARD, 不进入本机的包,做转发的包会经过这个hook
LOCAL OUTPUT, 从本机出去的包会经过这个hook
POSTROUTING, 所有出去的包都会经过这个hook

一:ip_conntrack 与 nf_conntrack_ipv4 是一个相同的包,ip_conntrack是linux 2.6内核以前的名称。

基础云平台 > Linux Netfilter 内核参数调优 > image2021-9-28 13:47:46.png

二:调整一对参数,系统小于4G内存的 net.netfilter.nf_conntrack_buckets 默认值是16384, 大于4G内存的默认值是 65535,对于大于4G内存且并发比较大的系统建议调整为262144;同时net.netfilter.nf_conntrack_max默认就是65535;

基于线上都是CentOS7 x86_64 大于4G内存的系统,如果并发大建议这样设置(并发小于1W的,使用默认值)

32G内存推荐:

内存使用最大值:1048576* 376 + 262144 * 16 = 398458880(byte)=380MiB

net.netfilter.nf_conntrack_buckets = 131072

net.netfilter.nf_conntrack_max = 1048576

96G 内存推荐:
net.netfilter.nf_conntrack_buckets = 262144

net.netfilter.nf_conntrack_max = 2310720

内存使用最大值:2310720 * 376 + 262144 * 16 = 873025024(byte)=833MiB

计算公式: total_mem_used(bytes) = conntrack_max * sizeof(struct nf_conntrack) + conntrack_buckets * sizeof(struct list_head)

CONNTRACK_MAX = RAMSIZE (in bytes) / 65535 / 2 计算模型:(64(G) * 102410241024/65535/2)(2(G) * 102410241024/16384/2)

CONNTRACK_BUCKETS= CONNTRACK_MAX/8

基于线上都是CentOS7 x86_64:sizeof(struct nf_conntrack): 376 sizeof(struct list_head): 16

调整以上参数,是为了在大量tcp 并发的情况下,解决tcp不能连接及报nf_conntrack:table full dropping packet;

重点:执行echo “262144” > /sys/module/nf_conntrack/parameters/hashsize 才能修改net.netfilter.nf_conntrack_buckets = 262144 通过sysctl.conf 定义不生效会报错。
重点:如果系统没有启用nf_conntrack模块,可以忽略以上调优,K8S集群都是要求开启NAT此模块的,可以根据具体系统内存调整。
cat /proc/sys/net/netfilter/nf_conntrack_buckets

cat /proc/sys/net/netfilter/nf_conntrack_max


为了不让net.netfilter.nf_conntrack_max条目快速迭代,调整必要的参数,专门对TCP挥手做调整

条目路径:/proc/net/nf_conntrack

默认参数

net.netfilter.nf_conntrack_tcp_timeout_established = 432000 (5天)
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

调优参数

net.netfilter.nf_conntrack_tcp_timeout_established = 84600 (1天)
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 30
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60

记录状态

ipv4 2 tcp 6 299 ESTABLISHED src=192.168.1.1 dst=192.168.1.6 sport=58747 dport=22 src=192.168.1.6 dst=192.168.1.1 sport=22 dport=58747 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2

Linux Netfilter 内核参数调优相关推荐

  1. java linux 调用32位so_Linux上TCP的几个内核参数调优

    Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优.光TCP的调优参数就有50多个.在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数.在此分享出来,希望对大家 ...

  2. linux内核参数调优,缓冲区调整,tcp/udp连接管理,保持,释放优化,gossary,terms

    linux内核参数调优,缓冲区调整,tcp/udp连接管理,保持,释放优化,gossary,terms changing a readonly file (linu single user mode) ...

  3. Linux云计算架构-系统调优【CPU、IO、网络、内核参数调优】

    文章目录 Linux云计算架构-系统调优[CPU.IO.网络.内核参数调优] 1. CPU调优 2. IO调优 3. 网络调优 3.1 网络冗余(主备模式) 3.2 负载均衡模式 4. 内核参数调优 ...

  4. Linux内核参数调优以应对SYN攻击

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Linux内核参数调优以应对SYN攻击. 一.SYN攻击简介 所谓SYN攻击,即利用TCP三次握手原理,向服务器发送大量的SYN数据包,却不响应 ...

  5. Linux Page Cache参数调优在kafka中的应用

    文章目录 完整优化方案地址: 一.优化背景 二.基本概念 1.什么是Page Cache? 2.读Cache 3.写Cache 4.Page Cache缓存查看工具 三.参数调优 1.如何查看Page ...

  6. CentOS7 内核版本3.10 内核参数调优参考

    查看网络上大部分内核参数文档,整理出如下内容,如有错误请指正,过程很辛苦,转载请附上原地址. 前言 常用的Linux内核参数,具体优化值要参考应用场景. 通过/var/log/message查看系统日 ...

  7. CPU-IO-网络-内核参数调优

    一. 有关使用CPU资源的调优 1. nice概述 在LINUX系统中,Nice值的范围从-20到+19(不同系统的值范围是不一样的),正值表示低优先级,负值表示高优先级,值为零则表示不会调整该进程的 ...

  8. Linux内核参数调优

    用法: vim /etc/sysctl.conf#修改内容sysctl -p #生效 相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_ ...

  9. linux中tcp连接内核参数调优somaxconn

    永久生效: vim /etc/sysctl.conf net.core.somaxconn=32768 sysctl -p 立即生效: sysctl -w net.core.somaxconn=327 ...

最新文章

  1. 那些进入 Alexa 排名前 250 的 WordPress 网站
  2. 8. An Introduction to MCMC for Machine Learning (1)
  3. MySQL为关联表添加数据
  4. .Net Core应用框架Util介绍(四)
  5. 前端学习(2784):首页轮播图的渲染
  6. mysql 静态表 是不是 myisam_mysql的静态表和动态表的区别,MyISAM和InnoDB的区别
  7. Qt关于Tcp通信步骤的总结
  8. vue生成静态html文件_vue单文件组件,如何生成.html文件
  9. android studio安装教程完整,Android Studio 安装配置方法完整教程【小白秒懂】
  10. 关于GTID模式下备份时 --set-gtid-purged=OFF 参数的实验【转】
  11. 数据结构Java版之排序算法(二)
  12. MySQL 入门(六)—— 索引
  13. Ubuntu下VLC播放器安装配置以及VLC常用快捷键记录
  14. 单相半桥两电平电压型逆变器的正弦脉宽调制(SPWM)——Matlab程序
  15. memory exhausted mysql 42000 1064
  16. android app权限_如何限制Android App权限
  17. 洛谷P3354 [IOI2005]Riv 河流——“承诺”DP
  18. 个人评测酷盘 kanbox 网络硬盘的使用体验
  19. CentOS 7.2 安装 Oracle 11g 报错:Error in invoking targ
  20. 城市交通指挥与应急疏导广播系统解决方案

热门文章

  1. 进击高手【第十期】树
  2. Linux断电开机后时间重置问题解决方法
  3. 8086汇编语言寻址方式、基本指令和调试指令
  4. 考上好大学,然后进入IT行业是穷人孩子晋级中产的唯一出路?(好多年不转载别人的文章了,本文的话题是我非常关注的,一直没有写)
  5. [转载] 独家 | 他生前就想好了墓志铭:褚时健,属牛!
  6. 内部排序与外部排序简单比较
  7. 求1~100所有的偶数,输出!
  8. android平台移植boost库
  9. 电子邮箱格式怎么填写才正确举个例子
  10. 怎么提升商品销量以及店铺权重?