各位看官非常对不起,本文是用因为写的,如果多有不便敬请见谅
代码是在商业公司编写的,在商业产品中也不能开源,再次抱歉
This presentation will highlight our efforts on optimizing the
Linux TCP/IP stack for providing networking in an
OpenStack environment, as deployed at our industrial customers.
 
 
Our primary goal is to provide a high-quality and highly performant TCP/IP stack.
To achieve this, we have to identify the performance bottlenecks in
the Linux TCP/IP stack for networking in OpenStack. We have performed a lot of
Linux TCP/IP stack performance tuning, related to NIC, CPU cache hit rate, spin lock,
memory alloc and others. However, we learned while measuring that conntrack NAT
uses too much CPU such for instance for the ipt_do_table function.
Linux conntrack is very good, but it is too heavy and many functions are not used.
Instead, we implemented FAST NAT in the Linux TCP/IP stack.
 
 
We will present our efforts on reducing the performance costs.
First, FAST NAT uses spin lock instead of global connection table but the entry to greatly reduces the CPU waiting time,
and user policies is instead stored as a hash table not a list. The connection table and user
policy is per-NUMA, this would avoid CPU through QPI waste much time and increase delay.
Second, FAST NAT does not record the TCP status,
but only record a tuple with relevant connection formation for NAT forward.
This can reduce much check for forwarding packet.
Entry in the connection table can be set to expire on
an absolute expiration time or relative expiration time basis.
Relative expiration time will incresae by per forwarding packet.
Global connection table don't synchronize for reducing lock's using. This may casue one TCP stream in
per-NUMA connection table. If we use Intel Ixgbe NIC with Flow Director ATR mode, the incoming
stream and outcoming stream will have same index for multiple queues. The mentioned limit above
will disappear.
 
Limitations of FAST NAT only TCP and UDP are supported.
Although some limitations exist, our work has paid off and resulted in 15-20 percentage pps improvement.

转载于:https://www.cnblogs.com/scottieyuyang/p/5816168.html

Linux内核协议栈 NAT性能优化之FAST NAT相关推荐

  1. linux pppoe优化性能,基于Linux内核模式的PPPoE优化与实现.pdf

    基于Linux内核模式的PPPoE优化与实现.pdf 第18卷第7期 电子设计工程 2010年7月 V01.18 No.7 Electronic Jul.2010 DesignEngineering ...

  2. linux内核协议栈 TCP数据发送之发送窗口

    目录 1 发送窗口概述 2 snd_una 和 snd_wnd 的更新 2.1 发送窗口初始化 2.1.1 客户端初始化 2.1.2 服务器端初始化 2.2 本地接收窗口 rcv_wnd 通告 2.2 ...

  3. linux内核协议栈 TCP层数据发送之TSO/GSO

    目录 1 基本概念 2 TCP延迟分段判定 2.1 客户端初始化 2.2 服务器端初始化 2.3 sk_setup_caps() 3 整体结构 4. TCP发送路径TSO处理 4.1 tcp_send ...

  4. 《嵌入式linux内存使用与性能优化》读书笔记

    <嵌入式linux内存使用与性能优化>读书笔记 前言 本书的重点分为系统内存和性能优化,前4章着重内存使用,尽量减少进程的内存使用量,定位和发现内存泄漏:后5章着重与如何让系统性能优化,加 ...

  5. 《嵌入式Linux内存使用与性能优化》笔记

    <嵌入式Linux内存使用与性能优化>笔记 这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相 ...

  6. 【Linux 内核 内存管理】优化内存屏障 ③ ( 编译器屏障 | 禁止 / 开启内核抢占 与 方法保护临界区 | preempt_disable 禁止内核抢占源码 | 开启内核抢占源码 )

    文章目录 一.禁止 / 开启内核抢占 与 方法保护临界区 二.编译器优化屏障 三.preempt_disable 禁止内核抢占 源码 四.preempt_enable 开启内核抢占 源码 一.禁止 / ...

  7. #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)

    Linux + JVM + Mysql高级性能优化课程 课程名称:      Linux + JVM + Mysql高级性能优化 QQ群:      243242580(小白.菜鸟勿进)跟Java.M ...

  8. linux 优化 sysctl.conf,Linux内核sysctl.conf的优化设置

    Linux内核sysctl.conf的优化设置 Linux #sysctl.conf #优化2012-05-12 10:23 可以通过/etc/sysctl.conf控制和配置Linux内核及网络设置 ...

  9. linux内核协议栈 netfilter 之连接跟踪子系统的L3 L4协议栈模块初始化与自定义注册

    目录 1 L3.L4协议跟踪初始化 nf_conntrack_proto_init() 1.1 L3协议管理 1.1.1 struct nf_conntrack_l3proto 1.1.2 L3协议注 ...

最新文章

  1. OceanBase是如何解决城市级故障容灾的
  2. 第 14 章 Networking
  3. 要管理组策略 您必须以域用户账户登录此计算机,组策略设置:使普通用户登陆域控制器的电脑...
  4. 电脑公司Win11 64位全新旗舰版镜像V2021.08
  5. Python 简单函数入门之“计算器“
  6. 5G O-RAN 一体式小基站硬件白盒化的参考架构
  7. centos 7.5 安装ruby -bash: ruby: command not found
  8. cgi技术, 感觉讲的不错,转一下
  9. B站视频、音频分开传输
  10. 时间换算(UTC是世界协调时,BJT是北京时间)
  11. 苹果手机升级13无法开机_苹果11更新ios13.7卡在开机页面
  12. 75-CentOS-Docker构建nginx镜像
  13. CorelDRAW VBA - 读取XML文件,根据内容批量创建图形
  14. 一代王者回归?滴滴暂停563天,恢复新用户下载,江湖格局又生变
  15. 辉芒微IO单片机FT60F112
  16. 加拿大留学计算机专业好移民吗,加拿大最适合留学转移民的热门专业——计算机科学及信息技术...
  17. 第一代商用计算机是由,计算机基础辅导资料
  18. 京东单品页前端开发那些不得不说的事儿
  19. el-table 点击单元格可编辑 点击表头可修改 右击表头删除表头和内容
  20. 基于springboot的校园二手交易系统-JAVA【数据库设计、论文、源码、开题报告】

热门文章

  1. 【托管服务qin】WEB网站压力测试教程详解
  2. asp.net操作IIS主机头的问题总结
  3. GC 调优(实战篇) - GC参考手册
  4. dll文件的c++制作dll文件的c++制作
  5. Django2 Web 实战03-文件上传
  6. 一张图看懂云栖大会·上海峰会重磅产品发布
  7. MySQL之数据库对象查看工具mysqlshow
  8. 用 vue2 和 webpack 快速建构 NW.js 项目(1)
  9. 解密阿里云七武器之高性能消息服务ONS
  10. 用户体验可视化指南pdf_R中增强可视化的初学者指南