- 博客(19)
- 收藏
- 关注
原创 19 DPDK 探索 DPDK20.08 21.11 meson ninja
/ python升级参考 https://blog.youkuaiyun.com/laoliushequ/article/details/130030115。4. ./configure //这里有可能因python版本过低失败,需升级python https://www.python.org/ftp/python/./testpmd -l 0-3 -n 4 -- -i --portmask=0x1 --nb-cores=2(实际上要比这些多)--burst=N 将每个突发的数据包数设置为 N。
2025-05-21 16:16:14
329
原创 17 DPDK 探索 加速NFV数据面:SR-IOV和DPDK
然而,最令人欣慰的是,经过修改的 DPDK OVS 实现了 SR-IOV 中 90% 的性能。如前所述,您还可以将 DPDK 加速 vSwitch 放入通用主机中,甚至同时使用两者(使用正确的 SR-IOV 目标 VNF 以及适合处理此类复杂性的 NFV 基础架构管理器),如果从部署的角度来看,这样做是有意义的。虽然据称,通过 OVS 2.1,这导致了“可笑的速度” 5 增强,但 Megaflow 的“加速”OVS 的能力仍然取决于数据包的特性和行为以及通过它的流量模式,因此因应用程序而异。
2025-05-21 16:13:05
687
原创 16 DPDK 探索 dpdk-pdump对l2fwd二层转发抓包
1、安装dpdk-pdump所需的依赖,修改配置。再打开一个界面,启动dpdk-pdump进程作为client端向primary进程发送开始或者停止抓包请求,primary进程拷贝一份数据包到ring中,secondary进程从ring中读取出来,自己可以指定保存。pdump启动参数设置如下: ./dpdk-pdump – --pdump ‘port=0,queue=*,rx-dev=/tmp/rx.pcap’(对端口port0进行抓包,全部队列,Dev为抓包存放路径,保存为rx.pcap文件)
2025-05-21 16:11:24
97
原创 15 DPDK 探索 什么是SR-IOV?
SR-IOV全称single root input/output virtualization,直译过来就是单根I/O虚拟化,怎么理解呢?首先SR-IOV最初的应用(也是我仅知的应用)是在网卡上,下图是一张SR-IOV示意图,单根的“根”即图片最底层的物理网卡,SR-IOV起到的作用是把一张物理网卡虚拟化成多个虚拟网卡给虚拟机(VM)用。跳过产生背景、原理、优劣,我们先直接看实现。
2025-05-13 15:07:48
683
原创 14 DPDK 探索 DPDK收发包流程分析
DPDK是intel工程师开发的一款用来快速处理数据包的框架,最初的目的是为了证明传统网络数据包处理性能低不是intel处理器导致的,而是传统数据的处理流程导致,后来随着dpdk的开源及其生态的快速发展,dpdk成为了高性能网络数据处理的优秀框架。本篇文章主要介绍DPDK接收与发送报文的流程,包括CPU与网卡DMA协同工作的整个交互流程、数据包在内存、CPU、网卡之间游走的过程。CPU 有转移数据、计算、控制程序等很多功能,但其实转移数据(尤其是转移大量数据)是可以不需要 CPU 参与。
2025-05-13 15:05:37
989
原创 13 DPDK 探索 DPDK内存管理发展分析
至少在现阶段,内存管理是所有程序都脱离不开的,所以GC是当前一个研究的热门。很多语言Go,Java,Python等都有自己的GC。其实GC就是一种更强大的内存管理,如果有机会接触就会发现,DPDK中的内存管理在它们面前是小弟弟,不过话又说回来,应用的场景不同,DPDK肯定会是有自己独到的一面,最主要的当然是大内存。学习别人的框架,在初期当然是通盘吃透。但这样做太沉重,到了后期,重点是学习别人的特质,而不永远通盘全吃。正所谓:“独观其大略”。
2025-05-13 14:59:34
313
原创 12 DPDK 探索 l2fwd学习
DPDK的简单应用。二层转发是DPDK数据报处理应用里一个比较简单的example,代码只有几百行,全部看懂也大约只要半天时间。在计算机网络中,二层是链路层,是以太网所在的层,识别的是设备端口的MAC地址。DPDK作为用户态驱动,主要的目的也就是不需要让报文经过操作系统协议栈而能实现快速的转发功能。网卡驱动在二层上的作用就是根据设定的目的端口,转发报文到目的端口。将两台机器用网线相连,一台用pktgen发送数据,一台用l2fwd转发数据,l2fwd的运行界面:l2fwd运行界面.png。
2025-05-08 15:12:19
593
原创 11 DPDK 探索 大页内存原理
在分析dpdk大页内存的源码之前,有必要对内存管理的原理以及大页内存的原理有个了解,缺少这些底层基础知识,分析dpdk大页内存的源码将举步维艰。这篇文章详细介绍下linux内存管理以及大页内存的方方面面,为分析dpdk大页内存源码扫除障碍。
2025-05-08 15:03:42
680
原创 10 DPDK 探索 ringbuf如何实现无锁和零拷贝的
core1和core2同时往ring中写入数据,对于core1来说,首先会在入队函数中定义局部变量prod_head和prod_next和cons_tail,prod_head由r->prod.head赋值,cons_tail由r->cons.tail赋值。当收包的时候,会另外申请一个buffer,然后对buffer进行一系列操作,包括dma映射,随后将指向这个buffer的指针替换环形队列中的指针,在报文的生存周期内,上层操作的指针始终是指向这个原始报文的内存,这样就完成了零拷贝。
2025-05-08 15:01:04
427
原创 9 DPDK 探索 — TestPMD
默认的行为是将 src MAC 地址设置为转发接口的 MAC 地址,将 dst MAC 地址设置为预设的 MAC 地址,可以通过 eth-peer 或 eth-peers-configfile 命令参数,在程序启动时配置预设 MAC 地址。这表明 TestPMD 正使用默认的 IO 转发模式,同时也表明 lcore 2(第二个启用的 Core)将用于轮询 Port 0 上的数据包并转发到 Port 1,反之亦然。对于一个核不足以转发所有收到的包的场景中,多核可以用于处理来自不同端口的数据包。
2025-05-08 14:57:18
787
原创 7 DPDK 探索 理解DPDK
优化技术PMD用户态驱动,使用无中断方式直接操作网卡的接收和发送队列;采用HugePage减少TLB Miss;DPDK采用向量SIMD指令优化性能;CPU亲缘性和独占;内存对齐:根据不同存储硬件的配置来优化程序,确保对象位于不同channel和rank的起始地址,这样能保证对象并并行加载,性能也能够得到极大的提升;Cache对齐,提高cache访问效率:NUMA亲和,提高numa内存访问性能;减少进程上下文切换:保证活跃进程数目不超过CPU个数;减少堵塞函数的调用,尽量采样无锁数据结构;
2025-05-07 15:02:28
777
原创 5 DPDK探索 DPDK原理概述
DPDK中普遍采用纯轮询模式进行数据包收发,所有的收发包有关的中断在物理端口初始化的时候都会关闭。物理端口上的每一个收包队列,都会有一个对应的由收包描述符组成的软件队列来进行硬件和软件的交互。DPDK驱动程序负责初始化好每一个收包描述符,其中包含把包缓冲内存块的物理地址填充到收包描述符对应的位置,并把对应的收包成功标志复位,通知网卡硬件把收到的包进行填充。网卡硬件将收到的包一一填充到对应的收包描述符表示的缓冲内存块中,将必要信息填充到收包描述符内,标记好收包成功标志。
2025-05-07 14:56:55
614
原创 3 DPDK探索 dpdk-18.11开发库编译安装
点击[下载地址](http://core.dpdk.org/download/),选择合适的版本下载。这里下载[DPDK 18.11.0 (LTS)](http://fast.dpdk.org/rel/dpdk-18.11.tar.xz)版本。进行编译自己写的dpdk程序时,在Makefile中要加入头文件目录 -I/usr/local/include/dpdk。如果没有T参数和DESTDIR参数或者环境变量,默认安装到/usr/local下面。编译最后会有如下打印信息,表示安装完成。
2025-05-07 14:52:23
399
原创 2 DPDK探索 什么是DPDK
对于用户来说,它可能是一个性能出色的包数据处理加速软件库;对于开发者来说,它可能是一个实践包处理新想法的创 新工场;对于性能调优者来说,它可能又是一个绝佳的成果分享平台。DPDK用软件的方式在通用多核处理器上演绎着数据包处理的新篇 章,而对于数据包处理,多核处理器显然不是唯一的平台。支撑包处理 的主流硬件平台大致可分为三个方向。硬件加速器网络处理器多核处理器在类似 IA(Intel Architecture)多核处理器为目标的平台上,网络数据包处理远早于DPDK而存在。
2025-05-07 14:49:52
442
原创 1 DPDK探索 学习DPDK多队列网卡的原理
网卡多队列,顾名思义,也就是传统网卡的DMA队列有多个,网卡有基于多个DMA队列的分配机制。多队列网卡已经是当前高速率网卡的主流。
2025-05-07 14:47:37
797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人