dpdk简介和原理-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 265161
  • 博文数量: 619
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5320
  • 用 户 组: 普通用户
  • 注册时间: 2022-03-07 15:28
个人简介

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、cdn、云电脑、大数据及ai等全线产品和场景化凯发app官方网站的解决方案。

文章分类

全部博文(619)

文章存档

2024年(170)

2023年(247)

2022年(202)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 云计算

2024-08-23 16:04:28

本文分享自天翼云开发者社区《》,作者: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

阅读(64) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图