wget 命令从官方仓库下载 DPDK 23.11 源码压缩包并解压。wget https://fast.dpdk.org/rel/dpdk-23.11.tar.gztar -xf dpdk-23.11.tar.gzcd dpdk-23.11
numactl-devel 依赖库(需要 root 权限)。yum install numactl-devel -y
pip3 install meson ninja pyelftools
meson 进行项目构建(设置最大逻辑核心数为1024)。meson build -Dmax_lcores=1024
ninja 编译项目。ninja -C build
git clone http://dpdk.org/git/dpdk-kmods
git clone git://dpdk.org/dpdk-kmods
igb_uio 目录并进行编译。cd ./dpdk-kmods/linux/igb_uiomake
uio 和 igb_uio 内核模块(需要 root 权限)。modprobe uioinsmod ./dpdk-kmods/linux/igb_uio/igb_uio.ko
ethtool -i eth0 | grep bus-info

ifconfig eth0 down
igb_uio 驱动(注意替换为实际 PCI 地址)。./usertools/dpdk-devbind.py --bind=igb_uio 0000:02:01.0 #0000:02:01.0 需要替换为您实际的网卡 PCI 地址
echo 8192 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
C=4; Q=32; ./build/app/dpdk-testpmd -l 0-47 --proc-type primary --file-prefix bench -a 0000:1b:00.0 -- --burst=128 --nb-cores=$C --txd=4096 --rxd=4096 --txq=$Q --rxq=$Q --forward-mode=rxonly --stats-period=1
C=4; Q=32; S=10.31.0.80; D=10.31.0.240; ./build/app/dpdk-testpmd -l 0-47 --proc-type primary --file-prefix bench -a 0000:1b:00.0 -- --burst=128 --nb-cores=$C --tx-ip $S,$D --txonly-multi-flow --txpkts=64 --txd=4096 --rxd=4096 --txq=$Q --rxq=$Q --forward-mode=txonly --stats-period=1
参数 | 说明 |
-a 0000:1b:00.0 | 指定要使用的网卡 PCI 地址,需根据实际环境替换。 |
--tx-ip S,D | TX 端发包的目标 IP 地址,按云服务器网卡地址替换。 |
--txonly-multi-flow | 启用多流发送模式(不设置则只发送单条流)。 |
--txpkts=64 | 报文长度(字节,包含 MAC 头),测试 PPS 场景建议 64。 |
-l 0-47 | |
--txq / --rxq = $Q | 发送/接收队列数量,可通过 ethtool -l eth0 | grep Combined 查看。 |
--nb-cores=$C | 实际参与测试的 CPU 核心数,推荐 2 ≤ C ≤ Q。 |
--stats-period=1 | 每秒输出一次统计信息。 |

dpdk-devbind.py 工具将网卡还原到默认驱动:./usertools/dpdk-devbind.py -b virtio-pci 0000:00:08.0 # 注意:0000:00:08.0 需替换为实际 PCI 地址
echo 0000:1b:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind #0000:1b:00.0按需替换echo virtio-pci > /sys/bus/pci/devices/0000\\:1b\\:00.0/driver_override #设置 driver_override 为 virtio-pciecho 0000:1b:00.0 > /sys/bus/pci/drivers/virtio-pci/bind #重新绑定到 virtio-pci
echo 0 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
ifconfig eth1 up
wget https://lag-dpdk-1326316016.cos.ap-guangzhou.myqcloud.com/dpdk_core_advisor.sh
sh dpdk_core_advisor.sh eth0
lag_dpdk.patch:
lag_dpdk.patch 补丁脚本。wget https://lag-dpdk-1326316016.cos.ap-guangzhou.myqcloud.com/lag_dpdk.patch
git apply lag_dpdk.patch# 等效命令(二选一即可)patch -p1 < lag_dpdk.patch
meson build -Dmax_lcores=1024ninja -C build
文档反馈