DPDK环境配置

DPDK环境配置

DPDK(Data Plane Development Kit)是一个开源的软件框架,最初由Intel开发,旨在提升数据包处理性能,尤其是在Intel架构的处理器上。它允许开发者在用户空间(user space)而不是传统的内核空间(kernel space)实现高速的数据包处理,从而绕过了Linux内核协议栈,减少了上下文切换和中断处理的开销。

DPDK的关键特点和优势包括:

  1. 高性能: 通过直接访问硬件资源(如大页内存、轮询模式的网卡驱动)和优化的数据路径,显著提高了数据包的处理速度和系统吞吐量。
  2. 用户空间处理: 应用程序可以直接在用户空间操作数据包,无需经过内核,降低了处理延迟。
  3. 支持多核并行处理: 充分利用多核CPU的并行处理能力,每个核心可以独立处理数据包,实现线性可扩展性。
  4. 广泛兼容性: 虽然最初针对Intel处理器优化,但DPDK已逐渐支持其他架构,如NXP的LS系列SoC。
  5. 丰富的库函数: 提供了一系列高度优化的库函数,包括内存管理、队列、定时器、Hash表等,便于开发者构建高性能的网络应用。
  6. 灵活的编程模型: 支持多种编程语言和模型,开发者可以根据需求选择最合适的开发方式。

DPDK常应用于需要高性能数据处理的场景,如软件定义网络(SDN)、网络功能虚拟化(NFV)、高性能路由器、负载均衡器、数据包过滤和分析等领域。由于其对数据平面处理的显著加速效果,DPDK已成为提升云服务和数据中心网络性能的重要工具之一。

1、虚拟机创建多块网卡,或者物理机安装多快网卡

在这里插入图片描述

2、安装相关依赖
# 基础工具更新安装
sudo apt-get update 
sudo apt-get upgrade 
apt install net-tools
apt install git
# DPDK编译依赖
apt-get install meson
apt install python3-pyelftools
apt-get install pkg-config
3、编译DPDK
# 下载dpdk软件包
wget https://fast.dpdk.org/rel/dpdk-22.07.tar.xz
tar xf dpdk-22.07.tar.xz
cd dpdk-22.07
meson  build
cd build
# 编译和安装
ninja
ninja install
4、编译igb_uio驱动
git clone http://dpdk.org/git/dpdk-kmods
cd dpdk-kmods/linux/igb_uio
make

编译DPDK例子

cd ./examples/helloworld
make

挂载igb_uio驱动

cd dpdk-kmods/linux/igb_uio
modprobe uio
insmod igb_uio.ko intr_mode=legacy
# 若出现insmod: ERROR: could not load module igb_uio.ko: No such file or directory错误,说明DPDK版本和igb_uio版本不对,需要重新编译igb_uio驱动
5、分配大页缓存
echo 512 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
6、DPDK绑定网卡
# 查看所有网卡信息
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e3:dd:b8 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e3:dd:c2 brd ff:ff:ff:ff:ff:ff
    altname enp2s5
4: ens38: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e3:dd:cc brd ff:ff:ff:ff:ff:ff
    altname enp2s6
# 将需要绑定的网卡下线
ifconfig ens37 down
ifconfig ens38 down
# dpdk绑定网卡
dpdk-devbind.py -b igb_uio ens37 ens38

查看网卡状态

root@xxx:/home/dpdk/dpdk-22.07/dpdk-kmods/linux/igb_uio# dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
0000:02:05.0 '79c970 [PCnet32 LANCE] 2000' drv=igb_uio unused=pcnet32,vfio-pci
0000:02:06.0 '79c970 [PCnet32 LANCE] 2000' drv=igb_uio unused=pcnet32,vfio-pci

Network devices using kernel driver
===================================
0000:02:01.0 '79c970 [PCnet32 LANCE] 2000' if=ens33 drv=pcnet32 unused=igb_uio,vfio-pci *Active*
7、执行dpdk案例
root@xxx:/home/dpdk/dpdk-22.07/examples/helloworld/build# ./helloworld
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: VFIO support initialized
TELEMETRY: No legacy callbacks, legacy socket not created
hello from core 1
hello from core 2
hello from core 3
hello from core 4
hello from core 5
hello from core 6
hello from core 7
hello from core 0
8、解绑网卡
# 查看网卡 pci 设备号
root@xxx:/home/dpdk/dpdk-22.07/dpdk-kmods/linux/igb_uio# lspci | grep Eth
02:01.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
02:05.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
02:06.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
# 解绑两个网卡的 igb_uio 驱动,绑定 e1000 驱动:
dpdk-devbind.py -u 02:05.0 02:06.0
dpdk-devbind.py -b e1000  02:02.0 02:03.0
# 启动网卡
ifconfig ens37 up
ifconfig ens38 up

专属学习链接:https://xxetb.xetslk.com/s/36yiy3

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

个人在家如何获取World Scientific文献的经验分享

今天有位同学求助一篇World Scientific文献&#xff0c;他的学校虽然有这个数据库&#xff0c;但订购的该数据库资源内容有限&#xff0c;这位同学所需的文献不在学校订购范围内所以下载不了。今天小编就分享一个在家就可获取各个数据库文献的方法。本文以这篇求助文献为例&…

Linux服务器上激活conda环境conda: error: argument COMMAND: invalid choice: ‘activate‘

正常我们使用如下来流程&#xff1a; 创建环境&#xff1a;conda create -n 环境名称 激活环境&#xff1a;conda activate 环境名称 但是&#xff0c;在Linux服务器上&#xff0c;使用conda activate 环境名称&#xff0c;出现如上图所示的报错。conda: error: argument CO…

一文看懂人工智能、机器学习、深度学习是什么、有什么区别!

引言&#xff1a;走进智能的世界 曾经&#xff0c;人工智能&#xff08;AI&#xff09;是科幻小说中的概念&#xff0c;与飞船、外星人并肩而立。 然而&#xff0c;随着时间的推移&#xff0c;AI不再仅仅是幻想的产物&#xff0c;它已经成为我们日常生活中不可或缺的一部分。 在…

虚拟机Ping不通主机

1.问题描述 虚拟机IP&#xff1a; 192.168.3.133 主机ip&#xff1a;192.168.3.137 虚拟机Ping不通主机 主机可以ping通虚拟机 2.解决方案 设置桥接模式 控制面板找到网络和Internet设置 3.问题解决

如何用Xcode创建你的第一个项目?学起来

前言 上一期&#xff0c;咱们已经有安装XCode的教程了。有小伙伴说建议跳过&#xff0c;嗯。。。如果你对开发很熟悉&#xff0c;那可以。但如果不熟悉&#xff0c;建议还是按照教程一步步来哦&#xff01; 毕竟统一了开发工具&#xff0c;咱们后续讲的内容学习起来也会简单一…

第二十章 迭代器模式

目录 1 迭代器模式介绍 2 迭代器模式原理 3 迭代器模式实现 4 迭代器模式应用实例 5 迭代器模式总结 1 迭代器模式介绍 迭代器模式(Iterator pattern)又叫游标&#xff08;Cursor&#xff09;模式&#xff0c;它的原始定义是&#xff1a;迭代器提供一种对容器对象中的各…

基于Matlab的BP神经网络的车牌识别系统(含GUI界面)【W7】

简介&#xff1a; 本系统结合了图像处理技术和机器学习方法&#xff08;BP神经网络&#xff09;&#xff0c;能够有效地实现车牌的自动识别。通过预处理、精确定位、字符分割和神经网络识别&#xff0c;系统能够准确地识别各种车牌图像&#xff0c;并在智能交通管理、安防监控等…

tyflow线相关教程二

线条生长一 生长静脉二 绳索动画三 两个球线连接四 扫帚五

SRAM和DRAM

1.SRAM&#xff08;静态RAM&#xff09; 把存放一个二进制位的物理器件称为存储元&#xff0c;它是存储器最基本的构件。 地址码相同的多个存储元构成一个存储单元。 存储单元的集合构成存储体。 静态RAM的存储元是用双稳态触发器&#xff08;六晶体管MOS&#xff09;来记忆…

4.华为三层交换机 配置VLAN 基于全局开启DHCP

目的&#xff1a;PC1 PC2 PC3三个网段通过 DHCP获取自己对应网段的IP地址 LSW1配置 [Huawei]vlan batch 10 20 30 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type trunk [Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan all [Huawei]dhcp enable …

1V升3V升压LED驱动WT7013

1V升3V升压LED驱动WT7013 WT7013是一款专业的高亮度LED驱动芯片&#xff0c;其具备提供1A驱动电流以支持3W的LED设备运行的能力。此款芯片以其高效率和低功耗的特性&#xff0c;使其在适用于使用1到2个碱性电池或者锂电池供电的LED照明设备中表现卓越。 WT7013 还配备有开路保…

iOS18那些隐藏有趣的新功能分享!

WWDC 2024开幕式结束后&#xff0c;苹果迅速向开发者推送了iOS 18的首个测试版更新。很多果粉和小编一样&#xff0c;第一时间进行了升级。 自定义应用图标位置和颜色、应用锁、隐藏图标、全新控制中心、新增密码应用以及照片重新排版等新功能都表现出色。这些明面上的新功能大…

风光储一体化园区 | 图扑新能源可视化

随着全球能源结构转型加速&#xff0c;可再生能源成为能源发展的重要方向。风能、太阳能作为清洁、绿色的能源&#xff0c;得到了广泛的开发和应用。与此同时&#xff0c;储能技术的发展为解决风能和太阳能发电的间歇性和波动性问题提供了有效途径。 风光储园区作为整合风电、…

24小时售出115万单,夏日瘦身经济开始走什么路线?

随着气温日渐升高&#xff0c;“减肥”二字出现的频率变得越来越高&#xff0c;减肥市场竞争激烈&#xff0c;各大品牌纷纷加大对市场的推广力度。食品、饮品、器械、服饰都在抢占专属份额。 随着消费者对健康减脂的意识提高&#xff0c;对服饰、器械和相关食品的要求也不断提升…

新能源充电桩测试系统:技术创新与发展

随着全球能源危机的加剧和环境污染问题的日益严重&#xff0c;新能源电动汽车的发展已经成为了全球汽车行业的重要趋势。而作为新能源汽车的重要组成部分&#xff0c;充电桩的性能和稳定性直接影响到新能源汽车的使用体验和市场接受度。因此&#xff0c;新能源充电桩测试系统的…

牛客周赛 46 F 祥子拆团

原题链接&#xff1a;F-祥子拆团 题目大意&#xff1a;多测&#xff0c;每次给a,b&#xff0c;要将a分解成b个数相乘&#xff0c;问有多少种分的方法。 思路&#xff1a;对a进行质因数分解&#xff0c;对每一个质数计数&#xff0c;然后分到b个篮子里面&#xff0c;允许篮子里…

有没有和ai聊天的软件?介绍这三款聊天软件

有没有和ai聊天的软件&#xff1f;在科技飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;其中AI聊天软件以其独特的魅力&#xff0c;赢得了越来越多用户的青睐。今天&#xff0c;我们就来一起探索三款智能聊天软件的功…

如何使用视频文案提取帮手将手机上视频里的声音转成文字?

在自媒体短视频日益增加的时候不少自媒体创作者如何将视频转文字的需求日益增加。本次将给大家分享一款针对广大职场青年用户群体的视频转文字工具&#xff0c;旨在为用户提供高效、准确的视频转文字服务。 如何将手机上的视频转成文字呢 视频转文字工具具有转换速度快&#…

天锐绿盾的数据防泄密系统有哪些功能呢

天锐绿盾的数据防泄密系统具备多种功能&#xff0c;这些功能共同协作以确保企业数据的安全性。以下是天锐绿盾数据防泄密系统的主要功能&#xff1a; www.drhchina.com 文件加密&#xff1a;系统能够自动对指定类型的文件进行透明加密&#xff0c;确保文件在存储、使用和传输过…

让RAG更进一步的利器:教你使用两种出色的Rerank排序模型

在高级RAG的应用中&#xff0c;常常会有一些“检索后处理&#xff08;Post-Retrieval&#xff09;”的环节。顾名思义&#xff0c;这是在检索出输入问题相关的多个Chunk后&#xff0c;在交给LLM合成答案之前的一个处理环节。在这个环节中&#xff0c;可以做一些诸如相似度过滤、…