DPDK简介和原理

本文分享自天翼云开发者社区《DPDK简介和原理》,作者:s****n

DPDK是一种绕过内核直接在用户态收发包来解决内核性能的瓶颈技术。

什么是中断

了解DPDK之前,首先需要先了解什么是中断,其实中断就是电信号,中断分两种:硬中断和软中断。

什么是硬中断?硬中断是由与系统相连的外设(比如网卡、硬盘)自动产生的,主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。

什么是软中断?软中断为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。

硬中断和软中断有两个明显的区别:

其一软中断是执行中断指令产生的,而硬中断是由外设引发的;

其二硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。

了解DPDK网络处理流程

了解完中断的原理,我们来对比下传统网络处理流程和有DPDK加持下的处理流程有何不同。

传统网络处理流程: 

dpdk处理流程:

 

可以明显看出区别,dpdk可以感知中断,应用层通过内存映射实现和网卡的通讯,减少了IO处理流程。

DPDK的UIO机制 

 

为了让驱动运行在用户态,Linux提供UIO机制。使用UIO可以通过read感知中断,通过mmap实现和网卡的通讯。

要开发用户态驱动有几个步骤:

开发运行在内核的UIO模块,因为硬中断只能在内核处理

通过/dev/uioX读取中断

通过mmap和外设共享内存

DPDK核心优化:PMD模式

DPDK的UIO驱动屏蔽了硬件发出中断,然后在用户态采用主动轮询的方式,这种模式被称为PMD(Poll Mode Driver)

UIO旁路了内核,主动轮询去掉硬中断,DPDK从而可以在用户态做收发包处理,带来Zero Copy、无系统调用的好处,同步处理减少上下文切换带来的Cache Miss。

判断环境是否采用dpdk

检验判断环境中是否采用dpdk有两种常用的方法:

1、在计算节点上virsh dumpxml 虚机uuid ,看interface部分,tapxxx就是ovs kernel,vhuxxz就是ovs dpdk

2、nova show看vm详情,能看到flavor extra specs,有huge page基本就是用了ovs dpdk

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785494.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack 核心流程

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:霜序三个阶段 初始化阶段初始化参数:从配置文件、配置对象、shell 参数中读取,与默认的配置参数结合得出最后的参数。 创建编译器…

算法与数据结构——基本数据类型与编码

基本数据类型 基本数据类型是计算机CPU可以直接进行运算的类型,在算法中直接被使用,主要包括以下几种整数类型byte、short、int、long。 浮点数类型float、double,用于表示小数 字符类型char,用于表示各种语言的字母、标点符号甚至表情符号等。 布尔类型bool,用于表示“是…

中国电信公布2024年中期业绩!

2024年上半年,中国电信紧抓发展机遇,完整准确全面贯彻新发展理念,坚定履行建设网络强国和数字中国、维护网信安全责任,持续深入实施云改数转战略,加快推动数字信息基础设施智能化、绿色化演进升级,加大高质量产品和服务供给,加速战略新兴业务规模拓展,全面深化改革开放…

这是一款轻量存储黑科技!

近日,天翼云联合InfoQ举办了以“新存储,更轻量”为主题的线上技术分享会。天翼云存储产品线总监潘亚莲以“轻量级存储集群控制器HBlock的设计理念与场景实践”为主题,讲解了HBlock在产品理念、价值主张、应用场景等方面的内容。近日,天翼云联合InfoQ举办了以“新存储,更轻…

xlsx-js-style前端组装表格数据下载到本地

1.数据格式: 对象:key/valueconst data1 = {合同 主体信息:{\n "合同编号": "FWTsAEY-S1T-2023-01",\n "项目编号": "FTCG2023000265A",\n "项目名称": "福田区第二人民医院食堂服务采购项直",\n "总计…

Cookie,Session Filter,Listener详解

HTTP请求的无状态性HTTP的无状态性是其一个重要的特征,指的是HTTP协议本身并不保留客户端与服务器交互的历史信息,换而言之,即每次的HTTP请求都是独立的,服务器在处理每一个请求时都不会记住前一个请求的状态无状态的含义独立性:每次的HTTP请求都是独立的,不依赖于之前的请求,即…

探索风扇产品模型的3D可视化魅力

在这个科技日新月异的时代,每一个细微的创新都能为我们的生活带来前所未有的便捷与享受。今天,就让我们一起踏入一场视觉与科技的盛宴,探索风扇产品模型如何通过3D可视化技术,重新定义家居生活的舒适与美学。想象一下,在炎炎夏日,你无需亲临实体店,只需轻点鼠标或滑动指…

Tree组件的快速定位更新节点的状态,以及修改节点的数据属性等操作

当我们点击树节点的时候我们常常只能获得树的id,那么我么如何获快速定位到树节点的内容呢,除此之外,当树已经存在时,但是缺少我们想要的内容时,我们想在树节点上添加我们需要的额外的内容时该怎么办,那么就是用以下方法可以快速定位到我们需要的节点并可以快速添加内容当…

供应链管理系统(SCM) —— 企业物流的智能枢纽

SAP 供应链管理系统以打造数字化和集成化的供应链管理平台为使命,将传统的仓储管理系统、制造执行系统、产品管理系统等软件进行升级和上云管理,为企业提供面向客户、合作伙伴及员工的数字化SCM系统平台。SAP SCM系统从设计到运维,全面优化供应链,规避风险 供应链管理模式日…

Flannel IPsec 模式

Flannel IPsec 模式Flannel IPSec 模式 一、环境信息主机 IPubuntu 172.16.94.141软件 版本docker 26.1.4helm v3.15.0-rc.2kind 0.18.0clab 0.54.2kubernetes 1.23.4ubuntu os Ubuntu 20.04.6 LTSkernel 5.11.5 内核升级文档二、安装服务 kind 配置文件信息 $ cat install.sh#…

[Mysql]执行一条语句的过程

执行一条 select 语句,期间发生了什么? 学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句: // 在 product 表中,查询 id = 1 的记录 select * from product where id = 1;但是有没有想过,MySQL 执行一条 select 查询语句,在 MySQL …

Free Online 1080P Youtube Video Downloader All In One

Free Online 1080P Youtube Video Downloader All In One 免费在线 1080P Youtube 视频下载器IELTS 雅思Free Online 1080P Youtube Video Downloader All In One免费在线 1080P Youtube 视频下载器https://yt5s.io/en93https://yt5s.biz/enxj100/ demosIELTS 雅思https://www.…