首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >dperf的环境搭建和测试(全程操作,暂无理论)

dperf的环境搭建和测试(全程操作,暂无理论)

原创
作者头像
用户11925929
修改2025-11-23 12:49:19
修改2025-11-23 12:49:19
90
举报

点赞,关注,希望能带来更多的好的文章,共同进步

dperf的运行机制与iperf存在本质差异,其核心在于模拟真实业务流量而非单纯打流。经过查阅文档才意识到,需先定义场景模板、配置会话参数及报文行为,才能正确发起压测。

以下是正确的操作流程: 克隆源码 git clone https://github.com/baidu/dperf.git cd dperf

编译

make

运行测试查看是否成功

./build/dperf -h

在进行编译的时候出现下面的错误: root@oitech-pc:/home/oitech/桌面/dperf# make /bin/sh: 1: pkg-config: not found Makefile:44: *** "no installation of DPDK found"。 停止。

表明编译dperf需要依赖DPDK,但是系统中没有安装DPDK

将dperf安装到系统路径中:sudo cp build/dperf /usr/local/bin/

从源码安装DPDK:

安装编译依赖

sudo apt install -y build-essential meson ninja-build python3-pip

下载并编译 DPDK

wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz tar -xf dpdk-22.11.4.tar.xz cd dpdk-22.11.4

配置和编译

meson build cd build ninja sudo ninja install

设置环境变量

echo 'export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

source ~/.bashrc

这个环境变量复制不好可以扔给AI进行查询

回到 dperf 目录重新编译

cd /home/oitech/桌面/dperf make clean make

出现编译错误,麒麟软件源中没有对librte_net_bond的驱动,直接在makefile中将相应的驱动进行移除,然后在进行编译:

在 dperf 目录中

cd dperf

备份原 Makefile

cp Makefile Makefile.backup

移除对 librte_net_bond 的引用

sed -i 's/-lrte_net_bond//g' Makefile

重新编译

make clean make

查看官方文档 进行相应的参数的补充(完成)

现在查看dpdk是否安装正确,以及相应的网卡是否绑定到PMD驱动(dpdk相应的驱动没有完成)

查看相应网卡的地址:lspci

在DPDK目录下,将网卡驱动绑定到DPDK下: 网卡一般处于活动状态: 步骤1:需要先关闭网络接口:网卡:eno1 关闭eno1接口:ip link set eno1 down 验证接口状态:ip link show eno1

步骤2:将网卡重新绑定到vfio-pci:网卡号:01:00.0 绑定:./usertools/dpdk-devbind.py --bind=vfio-pci 0000:01:00.0 验证绑定结果:./usertools/dpdk-devbind.py --status net

预期成功输出: Network devices using DPDK-compatible driver ============================================ 0000:01:00.0 'I210 Gigabit Network Connection' drv=vfio-pci unused=igb

Network devices using kernel driver =================================== 0000:02:00.0 'I210 Gigabit Network Connection' if=eno2 drv=igb unused=vfio-pci Active

然后设置大页内存:

1. 设置大页内存

echo 1024 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

2. 挂载大页文件系统

sudo mkdir -p /dev/hugepages sudo mount -t hugetlbfs nodev /dev/hugepages

3. 验证设置

grep Huge /proc/meminfo

预期成功输出: HugePages_Total: 1024 HugePages_Free: 1024 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB

两种文件示例: server.conf: mode server server 192.168.100.1 listen 5201 1 port 0000:01:00.0 192.168.100.1 192.168.100.2 duration 10s cps 100 client 192.168.100.2 1 cpu 0

client.conf: mode client cpu 1 port 0000:02:00.0 192.168.100.2 192.168.100.1 duration 10sx cps 100 client 192.168.100.2 server 192.168.100.1

在进行dpdk的配置的时候,不知道它的相应的网口的ip该如何进行配置: 在将网口的驱动挂载到dpdk之后,不能使用ifconfig等查询网口的ip地址,但是在配置文件中又需要相应的ip地址,那么根据官方文档的描述,不需要查询相应的ip,直接编辑一个虚拟的ip地址,进行相互连接就可以,例如服务器:192.168.100.1 客户端:192.168.100.2

在后面环境配置完成后,进行相应的文件配置的时候,使用配置文件,在官方进行查询 附带工具:

dperf-1.9.0.zip

dpdk暂时传不上来,我用的22.11.10,可以在dpdk的官网上进行下载,这个dpdk的环境一定要搭建好,环境变量和编译这些涉及到系统环境的时候一定要记得检查对比

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 点赞,关注,希望能带来更多的好的文章,共同进步
  • 编译
  • 运行测试查看是否成功
  • 安装编译依赖
  • 下载并编译 DPDK
  • 配置和编译
  • 设置环境变量
  • 回到 dperf 目录重新编译
  • 在 dperf 目录中
  • 备份原 Makefile
  • 移除对 librte_net_bond 的引用
  • 重新编译
  • 1. 设置大页内存
  • 2. 挂载大页文件系统
  • 3. 验证设置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档