【DPDK】DPDK1911+板载万兆网卡包转发性能测试

Amber@银河护卫队 发表于 2020/02/06 14:24:46 2020/02/06
【摘要】 【DPDK】DPDK1911+板载万兆网卡包转发性能测试案例 1 软硬件配置类别子项版本 硬件CPUKunpeng 920网络板载灵活网卡-25GE/10GE光口-4端口-SFP28存储SATA 4TOSCentOS7.6Kernel4.14.0-115.7.1.el7软件DPDK19.11GCC7.32 组网配置1、 DPDK包转发性能测试,采用服务器和发包工具(例如T...

DPDKDPDK1911+板载万兆网卡包转发性能测试案例

 

1      软硬件配置

类别

子项

版本

 

硬件

CPU

Kunpeng 920

网络

板载灵活网卡-25GE/10GE光口-4端口-SFP28

存储

SATA 4T

OS

CentOS

7.6

Kernel

4.14.0-115.7.1.el7

软件

DPDK

19.11

GCC

7.3

2      组网配置

1、 DPDK包转发性能测试,采用服务器和发包工具(例如TCIXIA设备)直连的方式进行测试。

2、 服务器配置支持DPDK特性的网卡。

3      编译安装

3.1      依赖安装

 

            步骤 1        配置yum

root用户登录Linux系统,将CentOS系统镜像挂载到物理光驱或者虚拟光驱,并执行如下命令:

image.png

#mount  /dev/sr0   /mnt

若已将CentOSiso镜像传到了Linux系统本地了,可以执行如下命令:

#mount      -o    loop   /root/ CentOS-7-aarch64-Everything-7.6.iso           /mnt

手动编写yum源所需的文件:

vi /etc/yum.repos.d/cdrom.repo

[cdrom] 

name=cdrom 

baseurl=file:///mnt 

enabled=1 

gpgcheck=0 

            步骤 2        yum安装依赖包

1)        DPDK程序依赖numa库和kernel-devel库,如果已经安装可以忽略,没有安装需要进行安装。

2)        编译DPDK19.11版本需要gcc5.0及以上版本,本文推荐使用gcc7.3.0

yum install -y *gcc*

yum install -y *glibc*

yum install -y *stdc*

yum install –y *gfortran*

yum install –y m4

yum install -y numactl*

yum install -y automake

            步骤 3        安装结束,卸载光驱。

#umount            /mnt

3.2      DPDK编译安装

1、  登录官网 http://core.dpdk.org/download/ ,下载DPDK19.11版本并解压到/hme目录,打开/home/dpdk-19.11./config/common_base文件中的板载网卡PMD驱动开关:

Line 286: # Compile burst-oriented HNS3 PMD driver

Line 288: CONFIG_RTE_LIBRTE_HNS3_PMD=y

2、配置环境变量

     export   RTE_SDK=/home/dpdk-19.11 (以当前环境DPDK源码实际路径为准)

     export   RTE_TARGET= arm64-armv8a-linuxapp-gcc (以当前环境CPU架构为准)

3、 在当前DPDK源码目录下编译DPDK

     make install   T=$RTE_TARGET -j 16

4      包转发性能测试

4.1      大页内存配置

arrch64 CentOS7.6系统默认内核支持2M512M大页。使用大页有助于整体性能的提升。最大支持1G大页,可以通过升级内核获取更大的页支持。下面以512M大页为例,根据实际情况开启所需的大页数量:

1、设置大页数量:

echo 64 >   /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages

 

2、查看各结点大页分数:

cat   /sys/devices/system/node/node*/meminfo |grep -i huge

 

或者执行脚本./usertools/dpdk-setup.sh

选择其中的选项49:设置大页,让每个numa   node均分同样的大页数量

 

 

4.2      绑定网卡到DPDK用户态

注意:网卡绑定前,请确保网卡对应驱动已升级到新版本。

可参考support网站用户指南的网卡驱动升级指导:https://support.huawei.com/enterprise/zh/doc/EDOC1100118649?idPath=7919749|9856522|9856629|250697162

 

1、 加载驱动模块

modprobe vfio

modprobe   vfio-pci

执行脚本   ./usertools/dpdk-setup.sh

选择其中的选项53:增加VFIO permission

      2、查看和绑定网卡接口:

./usertools/dpdk-devbind.sh   -s    #查看状态,获取网口pci地址

./dpdk-devbind.py   --bind=vfio-pci 0000:bd:00.0 0000:bd:00.1      #绑定指定网口,下图是示例图,请根据实际情况绑定对应网口的pci地址。绑定前网口在内核态,绑定后在DPDK用户态。


image.png


 

备注:使用VFIO需要BIOS开启SMMU 

 

 

4.3      运行DPDK

 

1numa node确认,绑核绑定到同一个node节点内的CPU

两种方法确认:

1cat   /sys/class/net/enp125s0f0/device/numa_node     

2lspci -vvv   | more   查看对应网口的PCI地址对应的NUMA   node

然后使用numactl -H 查看对应numa node下的CPU

 

2testpmd命令:绑定到网卡所在numa node内的核

./arm64-armv8a-linuxapp-gcc/app/testpmd   -l 64-72 -n 8 -w 0000:bd:00.0 -w 0000:bd:00.1 -- --rxd=1024 --txd=1024   --rxq=1 --txq=1 --nb-cores=4 -i

testpmd> show port stats all

testpmd> start

 

3、发包工具/仪器设备启动测试任务,测试完成后观察包转发测试结果。

测试过程中,也可以在testpmd交互界面,查看运行过程数据、是否有丢包等:

1show port xstats all 查看发包数量统计

2show port stats all 查看包率

 

 

附加testpmd参数说明:

-l

指定参与转发的CPU核

-n

指定系统内存通道个数

-w

指定参与DPDK转发的网口的PCIE地址

--rxd/txd

指定转发使用的网口队列深度

--txq/rxq

指定参与转发的网卡队列数

--nb-cores

指定实际参与转发的cpu核数

-i

交互模式启动程序

 

testpmd详细说明可参考:

https://software.intel.com/en-us/articles/testing-dpdk-performance-and-features-with-testpmd

http://doc.dpdk.org/guides/testpmd_app_ug/index.html

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。