Anntec ZKUXFT XT2 FGPA卡DPDK使用方法

news2024/9/23 21:23:14

1.   建议环境 

   CPU Architecture 

   x86_64、aarch64    

   CPU MHz:             

   2000以上    

   Memory    

   每个node空闲内存超过2G    

   硬盘    

   剩余空间大于100M    

   OS    

   Ubuntu,centos,银河麒麟,UOS等Linux    

   Linux kernel version      

   3.10.0及其以上    

   Boot setting    

   isolcpus=1-8nohz_full=1-8rcu_nocbs=1-8      

   root权限    

   使用dpdk尽量使用root权限    

2.  预先安装依赖库

 centos系统预先安装依赖库,命令如下: 

yum install numactl-devel  
yum install libpcap-devel    

ubuntu系统预先安装依赖库,命令如下: 

apt-get install libnuma-dev 
apt-get install libpcap-dev 

3.   解压、编译安装包 

tar zxf  anntec-<version>-<dpdkversion>.tar.gz 
cd  anntec -<version>-< dpdkversion > 
make 
make install 

4. 设置 DPDK 运行环境 

4.1设置大页内存 

x86 
echo 4096 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages 
arm 
echo 20 > /sys/devices/system/node/node0/hugepages/hugepages-524288kB/nr_hugepages 

4.2导入igb_uio驱动 

modprobeuio 
insmod ./kmod/igb_uio.ko  

4.3绑定网卡

 Ethernet 类型卡,绑定方式如下: 

./usertools/dpdk-devbind.py --bind=igb_uio<pci bus> 
注:pci bus 可以通过命令:lspci -n|grep 1e92|awk '{print $1}'查看例如:./usertools/dpdk-devbind.py --bind=igb_uio  01:00.0 

查看是否绑定成功 

./usertools/dpdk-devbind.py -s

绑定成功会在DPDK-compatible driver下面看见相应的pci信息,如下图: 

 非Ethernet 类型卡,绑定方式如下:   

echo 1e92 <devid> >/sys/bus/pci/drivers/igb_uio/new_id 
注: devid    可以通过命令:lspci -n|grep 1e92|awk -F: '{print $4}'查看
例如:echo 1e92 0022 >/sys/bus/pci/drivers/igb_uio/new_id 

  查看是否绑定成功 :

ls -l /sys/bus/pci/drivers/igb_uio/ 

绑定成功会在/sys/bus/pci/drivers/igb_uio/目录下看见pci的链接信息,如下图:  

 解除绑定 

echo <pci bus> > /sys/bus/pci/drivers/igb_uio/unbind 
例如:echo 0000:0c:00.0  > /sys/bus/pci/drivers/igb_uio/unbind 

5. 使用 TESTPMD 性能测试 

5.1设置共享库路径 

x86 
export LD_LIBRARY_PATH=/XXX/anntec-<version>-<dpdkversion>/build/x86_64/lib 
arm 
export LD_LIBRARY_PATH=/XXX/anntec-<version>-<dpdkversion>/build/aarch64/lib 
注:xxx表示存放anntec-<version>-<dpdkversion>的根路径 

 5.2使用testpmd x86 

x86
./build/x86_64/app/testpmd  -d  ./build/x86_64/lib/librte_pmd_xnic.so  -d  ./build/x86_64/lib/librte_pmd_xnic2.so  -d ./build/x86_64/lib/librte_mempool_ring.so -cff  -n4  -w <pci bus> -w  <pci bus>,desc_prefetch=1,cmpt_desc_len=16 -- -i --nb-cores=3 --rxq=1 --txq=1 -rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224  --total-num-mbufs=262144 
arm 
./build/aarch64/app/testpmd  -d ./build/aarch64/lib/librte_pmd_xnic.so   -d ./build/aarch64/lib/librte_pmd_xnic2.so -d  ./build/aarch64/lib/librte_mempool_ring.so  -cff  -n4  w <pci bus> -w  <pci bus>,desc_prefetch=1,cmpt_desc_len=16 -- -i --nb-cores=3 --rxq=1 --txq=1 --rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224  --total-num-mbufs=262144 
注:除了pci bus是需要根据实际环境变化的,其他参数尽量别修改 

5.2.1使用testpmd开始收发数据 

testpmd> start 

5.2.2使用testpmd查看收发数据状态 

testpmd> show port stats all 

 5.2.3使用testpmd结束收发数据 

testpmd>quit 

 5.2.4使用testpmd只发数据 

./build/x86_64/app/testpmd  -d  ./build/x86_64/lib/librte_pmd_xnic.so d  ./build/x86_64/lib/librte_pmd_xnic2.so  -d ./build/x86_64/lib/librte_mempool_ring.so -cff  -n4  -w <pci bus> -w  <pci bus>,desc_prefetch=1,cmpt_desc_len=16 -- -i --nb-cores=3 --rxq=1 --txq=1 -rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224  --total-num-mbufs=262144 
testpmd> set fwd txonly 
testpmd> set txpkts 1024   /设置发包大小,默认64
testpmd> start 
testpmd> show port stats all  
testpmd> quit 

5.2.5使用testpmd只接收数据 

./build/x86_64/app/testpmd  -d  ./build/x86_64/lib/librte_pmd_xnic.so d  ./build/x86_64/lib/librte_pmd_xnic2.so  -d ./build/x86_64/lib/librte_mempool_ring.so -cff  -n4  -w <pci bus> -w  <pci bus>,desc_prefetch=1,cmpt_desc_len=16 -- -i --nb-cores=3 --rxq=1 --txq=1 -rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224  --total-num-mbufs=262144 
testpmd> set fwd rxonly 
testpmd> start 
testpmd> show port stats all  
testpmd> quit 

5.2.6 批处理运行

nicarg=" "

nic_pci=`lspci -nn|grep -E '1e92|0022'|awk '{print $1}'`
for i in $nic_pci
do
	nicarg="$nicarg -w $i"
done

pwd=`pwd`
arch=`uname -m`
export LD_LIBRARY_PATH=$pwd/build/$arch/lib
echo $LD_LIBRARY_PATH

./build/$arch/app/testpmd -d ./build/$arch/lib/librte_pmd_xnic.so -d ./build/$arch/lib/librte_pmd_xnic2.so -d ./build/$arch/lib/librte_mempool_ring.so -c3 -n4 $nicarg -- -i --nb-cores=1 --rxq=1 --txq=1 --rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224 --total-num-mbufs=262144

5.3 虚拟NET_TAP网卡使用

export LD_LIBRARY_PATH=/opt/anntec-1.2.1-dpdk19.11.3gcc4.8.5/build/x86_64/lib
网闸模式
./build/x86_64/app/testpmd -d./build/x86_64/lib/librte_pmd_anntec.so -d ./build/x86_64/lib/librte_mempool_ring.so -cf -n4 -w 04:00.1 -w 04:00.0,desc_prefetch=1,cmpt_desc_len=16 -- -i --nb-cores=3 --rxq=1 --txq=1 --rxd=2048 --txd=2048 --burst=64 --mbuf-size=4224 --total-num-mbufs=262144
虚拟网卡模式
./build/x86_64/app/testpmd -d ./build/x86_64/lib/librte_pmd_anntec.so -d ./build/x86_64/lib/librte_pmd_tap.so -d ./build/x86_64/lib/librte_mempool_ring.so -cf -n4 -w 01:00.0 --vdev=net_tap0,iface=enp1s0f0,mac='00:64:74:61:70:12'  -- -i --txq=1 --rxq=1 --txd=2048 --rxd=2048 --burst=64 --mbuf-size=4224 --total-num-mbufs=262144

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊 CTO Werner Vogels:2023 年及未来五大技术趋势预测

近年来&#xff0c;几次全球性危机占据了我们的日常生活&#xff0c;因此看看我们是否可以利用技术来解决这些棘手的人类问题。如今&#xff0c;我们可以从很多互联设备获取数据&#xff0c;例如&#xff1a;可穿戴设备、医疗设备、环境传感器、视频捕捉设备等&#xff0c;数据…

DiffKit -- 世上最牛且开源的表数据对比工具

DiffKit -- 世上最牛且开源的表数据对比工具1. DiffKit Introduction1.1 Introduction1.2 Compatibility1.3 Download2. Quick Start3. User Guide4. Code5. Waken1. DiffKit Introduction 1.1 Introduction DiffKit Website: http://www.diffkit.org/index.html. 1.2 Compati…

excel数据分析

目录1. 对比分析2. 结构分析3. 分布分析3.1 VLooKup模糊匹配功能进行分组3.2 数据透视表进行数值型数据分组1. 对比分析 2. 结构分析 3. 分布分析 定义&#xff1a;根据分析目的&#xff0c;将数值型数据进行等距或不等距的分组 消费分布分析收入分布分析年龄分布分析 定量…

[附源码]Python计算机毕业设计Django交通事故档案管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

思派健康通过上市聆讯:半年亏损约35亿元,马旭广为董事长

12月2日&#xff0c;思派健康科技有限公司&#xff08;下称“思派健康”&#xff09;在港交所递交了聆讯后资料集。这代表着&#xff0c;思派健康已经通过港交所上市聆讯&#xff0c;将很快发行并在港交所IPO。 招股书显示&#xff0c;思派健康目前经营三条业务线&#xff0c;…

[附源码]JAVA毕业设计家庭理财管理系统(系统+LW)

[附源码]JAVA毕业设计家庭理财管理系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

RTK-RTD-SBAS-WAAS-PPP-PPK-WADGPS

1. RTD&#xff1a;英文全称Real Time Differential&#xff0c;中文意思是实时动态码相位差分技术。工作方法是基准站将伪距&#xff08;或者坐标&#xff09;修正值&#xff08;差分值&#xff09;发给用户接收机&#xff0c;用户接收机根据差分值与本身的观测值算出精确位置…

事业编招聘:共青团市委所属事业单位2022年公开招聘公告

杭州青少年活动中心为共青团杭州市委所属财政适当补助事业单位&#xff0c;因工作需要&#xff0c;公开招聘事业编制工作人员3名。根据《关于贯彻落实国家人事部〈事业单位公开招聘人员暂行规定〉的实施办法》&#xff08;杭人政〔2006〕5号&#xff09;和《杭州市事业单位公开…

计网个人作业03

R14. True or false? a a. Suppose Host A is sending a large file to Host B over a TCP connection. If the sequence number for a segment of this connection is m, then the sequence number for the subsequent segment will necessarily be m 1. 假设主机A通过一…

厉害了!阿里内部都用的Spring+MyBatis源码手册,实战理论两不误

目前大部分的 Java 互联网项目&#xff0c;都是用 Spring MVC Spring MyBatis 搭建平台的。 使用 Spring IoC 可以有效的管理各类的 Java 资源&#xff0c;达到即插即拔的功能&#xff1b;通过 Spring AOP 框架&#xff0c;数据库事务可以委托给 Spring 管理&#xff0c;消除…

slam学习 - 基本VO代码学习

本打算学习 orb -slam3 源码&#xff0c;但还是先把《slam 14》上的代码看完再说&#xff0c;至少把整个流程走一遍。 相关参考 https://blog.csdn.net/weixin_44684139/article/details/105305564 https://blog.csdn.net/qq_35590091/article/details/97111744 代码需求分析…

蚁群算法(ant system,AS)

蚁群算法蚂蚁系统(ant system,AS)由Dorigo于1996年发表&#xff0c;文章题目为[《The Ant System : optimization by a colony of cooperating agents》](https://www.docin.com/p-1565494487.html)。在耳熟能详的TSP旅行商问题上AS算法有着不错的效果&#xff0c;这也是被大多…

Dynamsoft Barcode Reader C, C++, .NET, Java SDK

Dynamsoft Barcode Reader 9.6.0 支持 win/mac/linux,没有Python版本提供 Adds support for handling barcode image orientation. November 30, 2022 - 16:06 New Version Features C, C, .NET, Java and Python SDK Added support for handling image orientation. With …

为什么数据库不应该使用外键

当我们想要持久化地存储数据时&#xff0c;使用关系型数据库往往都是最稳妥的选择&#xff0c;这不仅因为今天的关系型数据库种类非常丰富并且稳定&#xff0c;还因为不同社区对关系型数据库的支持都非常完备。我们在前面的文章中曾经分析过 为什么 MySQL 的自增主键不单调也不…

利用Python处理excel表格,pandas分割表格、拆分表格

前言 记录一下&#xff0c;在使用pandas处理excel表格表格时候&#xff0c;关于分割(切分)表格这一块儿的操作。 这个系列会有三篇左右文章&#xff0c;这是第一篇&#xff0c;excel表格切割 我们常说的 excel文件&#xff0c; 在广义上&#xff0c;是指以 xls 或 xlsx 为后缀…

Compose 动画艺术探索之灵动岛

本文为稀土掘金技术社区首发签约文章&#xff0c;14天内禁止转载&#xff0c;14天后未获授权禁止转载&#xff0c;侵权必究&#xff01; 本篇文章是此专栏的第五篇文章&#xff0c;本篇文章应该是此专栏中最后一篇直接关于动画的文章了&#xff0c;之后文章中可能会提到&#…

SpringBoot @InitBinder注解实现Bean国际化校验

参考资料 参考&#xff1a; 妥当性チェックのエラーメッセージ出力方法 (需翻墙)springMVC之InitBinder的用法1springMVC之InitBinder的用法2springMVC之InitBinder 和 ValidatorSpring MVCにおけるフォームバリデーションの適用事例【後編】 目录一. 前期准备1.1 自定义校验注…

【spark】第一章——Spark简介及环境配置

文章目录1. Spark 概述1.1 Spark 是什么1.2 Spark and Hadoop1.3 Spark or Hadoop1.4 Spark 核心模块2. Spark 快速上手2.1 创建 Maven 项目2.1.1 增加 Scala 插件2.1.2 增加依赖关系2.1.3 WordCount2.1.4 异常处理3. Spark 运行环境3.1 Local 模式3.1.1 解压缩文件3.1.2 启动 …

MATLAB源码-GRABIT从图像文件中提取数据点。

源码链接&#xff1a; https://download.csdn.net/download/tgs2033/87238015https://download.csdn.net/download/tgs2033/87238015 GRABIT从图像文件中提取数据点。 GRABIT启动用于从图像文件中提取数据的GUI程序。它能够读取BMP、JPG、TIF、GIF和PNG文件&#xff08;IMREAD…

12月3日:thinkphp模型与数据库相同的部分

定义 定义一个模型类 <?phpnamespace app\index\model; use think\Model;//定义一个User模型类 class User extends Model{//默认主键为自动识别&#xff0c;如果需要指定&#xff0c;可以设置属性//protected $pk uid; //$pk代表主键&#xff0c;primary key的缩写 } …