前面章节我们简单的介绍了dperf的相关基础概念,本章节我们将要讲述如何编译和使用dperf这款DPDK的性能压测工具。
项目地址:如果您对本项目感兴趣,欢迎您在github上给本项目点个star。
github:https://github.com/baidu/dperf
dperf是一款基于intel DPDK开发的高性能的开源网络压力测试仪,目前已经被DPDK官方生态项目收录。本文以centos 为例,介绍如何编译运行dperf。
首先:我们需要准备什么?
我们需要一台CentOS,所需要的配置如下图所示:仅供参考
其次:我们需要配置多大的大页内存什么?
在讲述这个的时候,我们需要回答为什么DPDK技术需要配置大页内存?这样配置的好处是什么呢?
大页(hugepage)技术主要优势在于增加单页的数据量,主要运用于需要较大内存的运用场景可以减少页面的切换,提升查询效率。高速网络的数据存储场景正是需要较大的数据缓存,因此大页技术可以很好地提升其效率。
问题2:那么怎么查看系统支持多大的大页内存,我们又该如何分配呢?
在centos 上,我们通过free -g命令可以查看系统有多少大页内存,其结果如下图所示:
[root]# free -g
total used free shared buff/cache available
Mem: 376 146 208 1 20 227
Swap: 3 0 3
从上面可以看到系统有376 G内存。推荐设置的大页数为系统内存的一半,如果dperf报告内存不够,再增加大页即可。
在现实的开发场景中,我们大多数使用常见是将大页内存的大小分配为1G大小,不过这个受到芯片规格的制约,我们可以通过查看CPU特性,来确定系统是否支持1G的大页内存。我们以X86 xeon为例子,通过虚拟文件系统/proc下的cpuinfo,查看其支持特性中是否支持pdpe1gb,命令如下所示:
cat /proc/cpuinfo | grep pdpe1gb
然后,我们如何查看大页内存的配置情况
[root]# cat /proc/meminfo | grep Huge
AnonHugePages: 0 kB
HugePages_Total: 140
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
我们可以看到配置的大页内存的总数为140个。
然后,我们如何编译intel DPDK
百度性能压测工具DPerf系列-2 编译intel DPDK
如何编译intel DPDK已经在上一个章节中有所介绍,本次章节不再重复介绍如何编译intel DPDK,和dpdk 纳管网口的方法。
然后,如何编译性能压测工具dperf
1、下载dperf 官方源码
git clone https://github.com/baidu/dperf.git 下载官方源码
如果遇到上述问题:
fatal: unable to access 'https://github.com/baidu/dperf.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
解决方法:
git config --global --unset http.proxy
git config --global --unset https.proxy
然后重新下载:
2、进入到dperf的工程路径进行编译
在dperf的工程文件夹下,docs主要是存放文档相关的文件;script用于存放编译运行需要的脚本文件;src路径下则是dperf的代码实现逻辑部分。
cd /root/dperf
make -j2 RTE_SDK=/root/dpdk-stable-19.11.10 RTE_TARGET=x86_64-native-linuxapp-gcc
注意:我们这里j2 表示使用 2个核来编译dperf。
3、如何启动dperf压测工具
./build/dperf -c server.conf
server.conf 为运行dperf server端的配置,同理,如果需要使用客户端,也需要类似的配置。
4、配置文件参数配置 (官方参考示例)
假设: 1. 客户端的IP是6.6.241.31 2. 服务器的IP是6.6.241.27 3. 假设网关是6.6.241.1
mode server
cpu 0
duration 10m
port 0000:7d:00.1 6.6.241.27 6.6.241.31
client 6.6.241.31 1
server 6.6.241.27 1
listen 80 1
参数说明:
1、mode: dperf采用server模式运行;
2、cpu: dperf线程绑定在cpu 0上;
3、duration:运行时长为10分钟;
4、port: 绑定网卡的PCI号是0000:7d:00.1,接口IP为6.6.241.27,网关为6.6.241.31;这个实验中客户端与服务器在同一个局域网,dperf把网关直接指向客户端;
5、client:只有6.6.241.31才能访问dperf server;其他IP访问dperf,dperf会丢弃;
6、server:dperf服务器监听IP是6.6.241.27
7、listen:dperf服务器监听端口是80
写在最后:
本章节主要讲述dperf使用环境的dpdk的配置和编译方法以及简单的配置和运行dperf工具的基本方法,后续我们会继续介绍该工具如何进行性能压测和测试网元性能等等。dperf 目前在github上已经有1.6K 个点赞,工具已经被intel DPDK官网收录,如果您觉得dperf很好,那么欢迎您在github上star一下。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有