Kernel Bypass & Offload 介绍
系统网络优化可以有两方面的工作可以做:1 绕开内核(bypass);2 用硬件替代软件(offload)。
具体包括:
1. 绕开内核:
- 不使用内核内核子系统的功能,采用自己实现的相同功能的代码来处理。
- 从用户空间直接访问和控制设备内存—避免数据从设备拷贝到内核,再从内核拷贝到用户空间。
2. 用硬件替代:
- 用专用的硬件设备替代软件的部分功能。
- 典型的用硬件替代软件的例子有:DMA engines, GPUs, Rendering screens, cryptography, TOE(TCP Offload Engines).
为什么要做两方面的工作呢?主要原因可以归结为:
1. UNIX经过设计和优化,目前它的主要任务是支持多个进程同时运行,并且避免任何进程因为缺少资源而长时间挂起。 但是在高频交易领域,我们希望某些特定的进程处理每条消息的响应时间快,延迟波动小,而不需要所在机器上所有进程的平均性能很好。
2. TCP/IP协议栈被优化为防止链接丢失和有效的利用带宽。
目前已经有很多成熟的解决方案可以用了,他们是:
- ntop.org DNA
- netmap
- Intel DPDK
- Myricom Sniffer10G and DBL
- 6WINDGate
- SolarFlare OpenOnload
- Napatech
这些解决方案每个都有他们自己的解决思路。
- 定制设备驱动。.netmap和DNA在标准Intel驱动的基础上加入了I/O内存到用户空间的映射。
- 定制硬件。Myricom和Napatech有他们自己定制的硬件以及对应的驱动(Myricom用的是ASIC, Napatech用的是FPGA)。
- 用户空间的库。这些解决方案每个都提供了用于访问他们扩展功能的库。这些功能差异极大:以太网I/O、libpcap的兼容、多进程处理的硬件辅助的消息包分发、缓存管理、整个TCP/IP层的功能。
- Licensing。netmap是开源的,DNA用户库需要适度的license。Napatech需要NDA,而且还要依赖昂贵的硬件。
参考文章:
http://ttthebear.blogspot.com/2008/07/linux-kernel-bypass-and-performance.html
<Kernel in the Way Bypass and Offload Technologies> -- Christoph Lameter
http://lukego.github.io/blog/2013/01/04/kernel-bypass-networking/
Kernel Bypass & Offload 介绍的更多相关文章
- [knowledge][DPI] kernel bypass 高性能网络包处理的宏观思路
高性能网络包处理,这个问题的出现,主要原因在于linux内核协议栈的处理能力,已经跟不上日益增长的网卡吞吐量以及数据量. 有关详细的内核协议栈瓶颈的阐述,可以参考如下这篇文章: <Improvi ...
- 网络安全设备Bypass功能介绍及分析
from:http://netsecurity.51cto.com/art/200910/159948.htm 网络安全平台厂商往往需要用到一项比较特殊的技术,那就是Bypass,那么到底什么是Byp ...
- 如何实现内核旁路(Kernel bypass)?
转到 :http://blog.jobbole.com/94976/ 在前两篇文章中,我们讨论了<如何生成每秒百万级别的HTTP 请求?> 以及 如何减少往返时间 .我们在 Linux 上 ...
- 最新安全狗 apache v4.0 sql注入 bypass
前言 最近没事学习一下 waf 的 bypass , 本文介绍下 bypass 安全狗的笔记.个人感觉 bypass 的总思路(正则匹配型 waf)就是利用各种语法特性来逃避正则(当然要保证语法正确性 ...
- Linux DMA Engine framework(2)_功能介绍及解接口分析
http://www.wowotech.net/linux_kenrel/dma_engine_api.html 补充 http://www.zhimengzhe.com/linux/259646.h ...
- VNF网络性能提升解决方案及实践
VNF网络性能提升解决方案及实践 2016年7月 作者: 王智民 贡献者: 创建时间: 2016-7-20 稳定程度: 初稿 修改历史 版本 日期 修订人 说明 1.0 20 ...
- RDMA
什么是RDMA? 来源 https://blog.csdn.net/u011459120/article/details/78469098 1. 概述 RDMA是Remote Direct Memor ...
- [SPDK/NVMe存储技术分析]008 - RDMA概述
毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把.在介绍NVMe over Fabrics ...
- RDMA的基础概念
一张图可以简单明确的说明,目前RDMA的几种技术的差别: RDMA是remote Direct memory access的简称,有几个最基本的特点: CPU offload kernel bypas ...
随机推荐
- Operfire/XMPP
Operfire/XMPP 关于Openfire.XMPP协议.IM相关知识 基于开源 Openfire 聊天服务器 - 开发聊天记录插件 posted @ 2013-03-29 11:03 hooj ...
- Publisher/Subscriber(发布/订阅者)消息模式开发流程
该模式的作用是发布者和订阅者 可以相互发送消息 发布者和订阅者都充当 生产者和消费者 发布者 package publisher.to.subscriber; import java.awt.font ...
- VC++中 wstring和string的互相转换实现
在VC++开发中,经常会用到string和wstring,这就需要二者之间的转换,项目中封装了wstring和string相互转换的2个函数,实现如下: //将wstring转换成string std ...
- 31、三层架构、AJAX+FormsAuthentication实现登陆
三层架构 前段时间公司要求修改一个网站,打开后我疯了,一层没有都是调用的DB接口,遍地的SQL语句,非常杂乱. 什么是三层架构? 三层架构是将整个项目划分为三个层次:表现层.业务逻辑层.数据访问层.目 ...
- Jquery 限制文本框输入字数【转】
<script type="text/javascript" src="js/jquery.min.js" ></script> < ...
- proxy.ini文件调用
self.CONFIG_FILENAME = os.path.splitext(os.path.abspath(__file__))[0]+'.ini' 改为: self.CONFIG_FILENAM ...
- QueryString传值的加密与解密方法 .
//加密 Response.Redirect("DetailInfo.aspx?id=" + Convert.ToBase64String(System.Text.Encoding ...
- MyEclipse中配置自己的JRE和tomcat
MyEclipse中配置自己的JRE:windows>Preference>java>Installed JREs>Add>Stantard VM>next> ...
- orainstRoot.sh到底执行了哪些操作
1 #!/bin/sh 1 #!/bin/sh 2 AWK=/bin/awk 3 CHMOD=/bin/chmod 4 CHGRP=/bin/chgrp ...
- OC - 18.监听iPhone的网络状态
使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...