![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DPDK
文章平均质量分 82
一个啥也不懂的菜鸟
这个作者很懒,什么都没留下…
展开
-
《深入浅出DPDK》——存储软件优化
基于DPDK的存储软件优化DPDK技术的诞生虽然主要是为了加速网络报文(小包)的处理, 但是相关技术亦可以应用到存储系统中,用以提高存储系统中网络的效 率,继而提升整个系统的性能。DPDK作为一个高速处理网络报文的框架,提供了以下重要的思想和技术。 用户态的网络驱动:使用轮询方式的用户态网络驱动,替换了基于中断模式的内核态网络驱动。 基于大页的内存管理:DPDK的大页机制是预先分配一块内存,进行独立的内存管理。 基于pthread的CPU调度机制:目前DPDK使用了pthr原创 2021-11-30 09:44:34 · 2543 阅读 · 0 评论 -
《深入浅出DPDK》——OVS中的DPDK性能加速
Open vSwitch(OVS)中的DPDK性能加速在NFV基础设施(NFVI)中有一个重要的组成部分,叫虚拟交换机。什么是虚拟交换机虚拟交换机是运行在通用平台上的一个软件层,可以连接虚拟机的网络端口、提供一套纯软件的路由交换协议栈的一个机制,帮助平台上运行的虚拟机实例(虚拟机之间、虚拟机与外部网络之间)。虚拟机的虚拟网卡对应虚拟交换机的一个虚拟端口,通用平台上的物理网卡作为虚拟交换机的上行链路端口。虽然是虚拟交换机,但是他的工作原理和物理交换机类似。虚拟交换机的主要好处体现在扩展灵活原创 2021-11-29 14:18:41 · 2384 阅读 · 0 评论 -
《深入浅出DPDK》——DPDK网络功能虚拟化
DPDK网络功能虚拟化NFV(Network Function Virtualization)即网络功能虚拟化。初衷是通过使用英特尔X86等通用服务器硬件平台以及虚拟化技术。来承载基于软件实现的网络功能。NFV包含的模块: NFVI(网络功能虚拟化基础设施),它提供了支持网络虚拟功能执行所需的虚拟化资源,包括符合COTS(Commercial-Off-The-Shelf) 开放式标准定义的硬件,必要的硬件加速器,可以虚拟和抽象底层硬件的软件层。 VNF(虚拟网络功能),是一个软件实现原创 2021-11-26 09:40:16 · 1708 阅读 · 0 评论 -
《深入浅出DPDK》——加速包处理的vhost优化方案
加速包处理的vhost优化方案vhost的演进和原理virtio-net的后端驱动经过从virtio-net后端,到内核态vhost-net,再到用户态vhost-user的演进过程。Qemu和virtio-netvirtio-net后端驱动最基本要素是虚拟队列机制、消息通知机制和中断机制。虚拟队列机制连接着客户机和宿主机的数据交互。消息通知机制主要用于客户机到宿主机的消息通知。中断机制主要用于从宿主机到客户机的中断请求和处理。下图是virtio-net后端模块进行报文处理的系统架构图。原创 2021-11-24 14:25:41 · 1668 阅读 · 0 评论 -
《深入浅出DPDK》——半虚拟化Virtio
半虚拟化Virtiovirtio是一种半虚拟化的设备抽象接口规范。与宿主机纯软件模拟I/O设备相比,Virtio可以获得更好的I/O性能。缺点是必须要求客户机安装特定的Virtio驱动使其知道运行在虚拟化环境中。Virtio使用场景现代数据中心大量采用虚拟化技术,设备的虚拟化是其中重要的一环。Virtio作为一种标准化的设备接口,主流的操作系统和应用都逐渐加入了对Virtio设备的直接支持,这给数据中心的运维带来了很多方便。Virtio同I/O透传技术相比,目前在网络吞吐率、时延以及原创 2021-11-22 15:21:25 · 2517 阅读 · 0 评论 -
《深入浅出DPDK》——学习笔记——X86平台上的I/O虚拟化
X86平台上的I/O虚拟化什么是虚拟化?抽象来说,虚拟化是资源的逻辑表示,它不受物理设备的约束。具体来说,虚拟化技术的实现形式是在系统中加入一个虚拟化层,虚拟化层将下层的资源抽象成另一种形式资源,提供给上层使用。通过空间上的分割,时间上的分时以及模拟,虚拟化可以将一份资源抽象成多份。反过来说,虚拟化也可以将多份资源抽象成一份。总的来说,虚拟化抽象了硬件层,允许多种不同的负载能共享一组资源。虚拟化的好处是什么?各大企业和商业机构从虚拟化中可以得到非常大的效率提升,因为虚拟化可以显著提高服务器的原创 2021-11-17 19:08:00 · 2058 阅读 · 0 评论 -
《深入浅出DPDK》——读书笔记——硬件加速与功能卸载
硬件加速与功能卸载与软件实现相比,同样的功能如果硬件来做,可以减少CPU的开销。通常硬件能力强,具有高并发处理特点,有助于大幅提高系统吞吐率与减少时延。硬件加速实现在哪里?可以实现在通用CPU上,也可以实现在芯片组,还可以实现在各种接口卡上。和网络数据最直接的接口是网卡,在网卡上进行网络数据卸载是主要思路。硬件的缺点在于资源局限,功能固化,一旦设计发布完成,再对功能进行改变就变得非常困难。且硬件的设计与发布时间长,更新周期无法与软件相比。硬件卸载简介硬件提供越来越多的功能,从以太网,IP原创 2021-11-16 20:35:07 · 1784 阅读 · 0 评论 -
《深入浅出DPDK》——学习笔记——流分类技术的应用
DPDK结合网卡Flow Director功能一个设备需要一定的转发功能来处理数据平面的报文,同时需要处理一定量的控制报文。对于转发功能而言,要求较高的吞吐量,需要多个core来支持。对于控制报文的处理,其报文量并不大,但需要保证其可靠性,并且其处理逻辑也不同于转发逻辑。那么,我们就可以使用 RSS来负载均衡其转发报文到多个核上,使用Flow Director将控制报文分配到指定的队列上,使用单独的核来处理。优点:帮助用户在设计时做到分而治之;节省了软件过滤数据报文的开销;避免了应用在不同核处理之间原创 2021-11-15 10:51:14 · 1859 阅读 · 0 评论 -
《深入浅出DPDK》——学习笔记——流分类
深入浅出DPDK——流分类与多队列流分类流分类指的是网卡依据数据包的特性将其分类的技术。分类的信息可以以不同不方式呈现给数据包的处理者,比如将分类信息记录于描述符中,将数据包丢弃或者将流导入某个或某些队列中。包的分类传统包的分类:IP、TCP、UDP甚至VXLAN、NVGRE等tunnel报文,该信息可以体现在数据包的接收描述符中。DPDK:Mbuf结构中含有相应的字段来表示网卡分析出的包的类型。网卡设备同时可以根据包的类型确定其关键字,从而根据关键字确定其收包队列。其中RSS和原创 2021-11-12 16:53:27 · 2883 阅读 · 0 评论 -
深入浅出DPDK——第八章第一节(多队列)
流分类与多队列多队列与流分类是当今网卡通用的技术。可以使网卡更好地与多核处理器、多任务系统配合,从而达到更高效率IO处理的目的。多队列网卡多队列的由来传统网卡的DMA队列有多个,网卡有基于多个DMA队列的分配机制。网卡多队列技术应该是与处理器的多核技术密不可分的。早期的计算机都是单核,但随着半导体技术的发展,处理器上的核数不断增加,此时单个处理器不足以满足高速网卡快速处理的需求。因此引入了多队列技术,可以将各个队列通过绑定到不同的核上来满足高速流量的需求。此外多队列技术也可以原创 2021-11-10 20:40:55 · 2147 阅读 · 0 评论 -
深入浅出DPDK学习笔记——网卡性能优化
@文章来源于《深入浅出DPDK》深入浅出DPDK学习笔记——网卡性能优化DPDK的轮询模式DPDK采用了轮询或者混杂中断的模式来进行收包和发包,此前主流运行在操作系统内核态的网卡驱动程序基本都是基于异步中断处理模式。异步中断模式当有包进入网卡收包队列后,网卡会产生硬件(MSIX/MSI/INTX)中断,进而触发CPU中断,进入中断服务程序,在中断服务程序(包含下半部)来完成收包的处理。当然为了改善包处理性能,也可以在中断处理过程中加入轮询,来避免过多的中断响应次数。总体而言,基于异步中断信号模式的原创 2021-11-09 21:55:27 · 1265 阅读 · 0 评论