searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Pktgen-DPDK性能测试工具编译安装

2024-04-09 01:19:05
570
0

Pktgen-DPDK 是一个基于 DPDK(Data Plane Development Kit)的高性能数据包生成器。它主要用于网络性能测试、基准测试和流量发生器,可以在高速网络上生成大量的数据包,用于测试网络设备、协议栈和应用程序的性能,支持多种常见的网络协议(如 IPv4、IPv6、TCP、UDP)以及自定义报文格式,可以灵活地模拟不同类型的流量。本篇文章将介绍该工具的编译安装流程。

一、版本使用

  • DPDK:23.11.0-rc1
  • Pktgen:23.10.2

      注意:Pktgen对应DPDK使用版本的依赖比较苛刻,需要匹配合适的版本才能编译通过。

二、前提依赖

  • meson:>= 0.47.1

  • ninja:>= 1.7.1

  • Pktgen编译过程中碰到的其他所需依赖:
    yum install libpcap-devel
    yum install numactl-devel
    yum install numactl-libs
    pip3 install pyelftools

三、获取DPDK与Pktgen-DPDK

git clone github.com/DPDK/dpdk.git
git clone github.com/pktgen/Pktgen-DPDK.git

四、编译DPDK

cd dpdk
mkdir dpdklib       # 安装目录
mkdir dpdkbuild     # 构建目录
meson -Denable_kmods=true -Dprefix=$(pwd)/dpdklib dpdkbuild
cd dpdkbuild
ninja
ninja install    # 安装在dpdk/dpdklib下

五、编译Pktgen

 设置PKG_CONFIG_PATH变量,需要指定libdpdk和numa所对应pkgconfig路径,否则meson build会报错

# 查找到numa库的pkgconfig路径为/usr/lib64/pkgconfig
export PKG_CONFIG_PATH=<YOUR PATH>/dpdk/dpdklib/lib64/pkgconfig:/usr/lib64/pkgconfig
cd Pktgen-DPDK
meson -Denable_kmods=true -Dexamples=all build

需要修改的地方:

(1)build.ninja,指定c99编译

vim build/build.ninja

在rule c_COMPILER下的command = cc $ARGS -MD -MQ ... 这行补充-std=c99

(2)pktgen-pcap.c 第313行,强制转化为无符号类型

vim app/pktgen-pcap.c

 pktgen-pcap.c 第313行,MAX_MBUFS_PER_PORT结果返回值强制转化为无符号类型

最后,保存并执行,完成构建

cd build && ninja
0条评论
0 / 1000
c****k
6文章数
0粉丝数
c****k
6 文章 | 0 粉丝
原创

Pktgen-DPDK性能测试工具编译安装

2024-04-09 01:19:05
570
0

Pktgen-DPDK 是一个基于 DPDK(Data Plane Development Kit)的高性能数据包生成器。它主要用于网络性能测试、基准测试和流量发生器,可以在高速网络上生成大量的数据包,用于测试网络设备、协议栈和应用程序的性能,支持多种常见的网络协议(如 IPv4、IPv6、TCP、UDP)以及自定义报文格式,可以灵活地模拟不同类型的流量。本篇文章将介绍该工具的编译安装流程。

一、版本使用

  • DPDK:23.11.0-rc1
  • Pktgen:23.10.2

      注意:Pktgen对应DPDK使用版本的依赖比较苛刻,需要匹配合适的版本才能编译通过。

二、前提依赖

  • meson:>= 0.47.1

  • ninja:>= 1.7.1

  • Pktgen编译过程中碰到的其他所需依赖:
    yum install libpcap-devel
    yum install numactl-devel
    yum install numactl-libs
    pip3 install pyelftools

三、获取DPDK与Pktgen-DPDK

git clone github.com/DPDK/dpdk.git
git clone github.com/pktgen/Pktgen-DPDK.git

四、编译DPDK

cd dpdk
mkdir dpdklib       # 安装目录
mkdir dpdkbuild     # 构建目录
meson -Denable_kmods=true -Dprefix=$(pwd)/dpdklib dpdkbuild
cd dpdkbuild
ninja
ninja install    # 安装在dpdk/dpdklib下

五、编译Pktgen

 设置PKG_CONFIG_PATH变量,需要指定libdpdk和numa所对应pkgconfig路径,否则meson build会报错

# 查找到numa库的pkgconfig路径为/usr/lib64/pkgconfig
export PKG_CONFIG_PATH=<YOUR PATH>/dpdk/dpdklib/lib64/pkgconfig:/usr/lib64/pkgconfig
cd Pktgen-DPDK
meson -Denable_kmods=true -Dexamples=all build

需要修改的地方:

(1)build.ninja,指定c99编译

vim build/build.ninja

在rule c_COMPILER下的command = cc $ARGS -MD -MQ ... 这行补充-std=c99

(2)pktgen-pcap.c 第313行,强制转化为无符号类型

vim app/pktgen-pcap.c

 pktgen-pcap.c 第313行,MAX_MBUFS_PER_PORT结果返回值强制转化为无符号类型

最后,保存并执行,完成构建

cd build && ninja
文章来自个人专栏
DPDK压测与性能调优
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0