zl程序教程

您现在的位置是:首页 >  其他

当前栏目

百度性能压测工具DPerf系列-2 编译intel DPDK

百度性能工具 系列 编译 Intel 压测 DPDK
2023-06-13 09:17:39 时间

在上一个章节中,我们讲述了百度的DPDK性能压测工具dperf的基本概念。

DPDK性能压测系列-1:dperf 工具简介‍

文章介绍了dperf是一款基于intel DPDK开发的一款高性能的开源网络压力测试仪,目前已经被收录至DPDK官方生态项目。

本文为dperf用户介绍如何编译DPDK-19.11,该方法也同样适合通过make方式编译其他版本的DPDK软件包。

准备工作

下载dpdk 源码包: https://core.dpdk.org/download/ 这里我们选择19.11.14版本。

首先:我们需要查看网卡型号

通过centos系统lspci命令,查看所有的PCIexpress网卡信息,其操作命令如下所示:

[root]# lspci | grep Ethernet
1a:00.0 Ethernet controller: Broadcom Limited BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller (rev 01)
1a:00.1 Ethernet controller: Broadcom Limited BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller (rev 01)
5e:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
5e:00.1 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx]

上述操作中我们可以明确的看到当前环境中使用的DPDK网卡信息为Broadcom BCM57414网卡 和 英伟达的CX-4网卡,且每张网卡有两个万兆口,他们的地址分别为1a:00.0和1a:00.1,.0/.1标识同一张网卡的网口的不同PCIexpress地址。

其次:需要配置DPDK

DPDK的配置文件config/common_base文件,我们可以在该文件修改相关的宏定义,来进行相关特性的使能和关闭。

再次:安装centos 依赖包

#使用华为网卡:
CONFIG_RTE_LIBRTE_HNS3_PMD=y
CONFIG_RTE_LIBRTE_HINIC_PMD=y

#KVM虚拟机
CONFIG_RTE_VIRTIO_USER=y

#vmware虚拟机
CONFIG_RTE_LIBRTE_VMXNET3_PMD=y

配置文件中相关的宏定义,y标识为使能,n标识为去使能,来决定相关特性的编译情况。

common_base配置文件描述

然后:安装编译intel DPDK需要的相关库

编译dpdk需要安装相关的依赖库,以centos 为例,需要安装numa和内核相关的工具库。我们可以通过 uname -r命令确定centos的内核版本信息。

所需命令展示:

uname -r
yum search numactl

yum search kernel-dev

yum install numactl-devel
yum install kernel-devel

然后:编译DPDK

1、设置编译的全局变量

进入DPDK软件包目录,设置Intel DPDK环境变量

export RTE_SDK=`pwd`

2、设置交叉编译工具链

export RTE_TARGET=x86_64-native-linuxapp-gcc

make config T=x86_64-native-linuxapp-gcc

3、配置生成.config文件

sed -ri 's,(PMD_PCAP=).*,\1y,' x86_64-native-linuxapp-gcc/.config

4、执行编译操作

make && make install

5、安装驱动

modprobe uio

insmod igb_uio.ko

lsmod igb_uio

6、查看网卡纳管情况

通过脚本dpdk-devbind.py脚本进行。

写在最后

主要讲述dperf使用的dpdk-19.11.14版本的dpdk的配置和编译方法,dperf 目前在github上已经有1.6K 个点赞,工具已经被intel DPDK官网收录,如果您觉得dperf很好,那么欢迎您在github上star一下。