You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pktgen生成64B包长100Mpps流量?脚本性能受限求优化

问题排查与优化建议

一、脚本存在的明显错误

你当前的lua脚本存在参数配置错位的问题,是性能不达标的核心原因之一:

-- 原错误配置
pktgen.set(sendport, "size", burst_cnt); -- 你把包长参数设为了128,而非你想要的64
pktgen.set(sendport, "burst", 64); -- 你把单次发送的突发包数设为了64,而非你定义的128

修正后的配置为:

pktgen.set(sendport, "size", pkt_size);
pktgen.set(sendport, "burst", burst_cnt);

二、运行参数优化

  • 核心隔离与绑定:不要将逻辑核0分配给pktgen使用,核0默认处理系统中断与调度任务,会带来额外开销。建议提前在系统内核启动参数中添加isolcpus=1-8 nohz_full=1-8 rcu_nocbs=1-8隔离指定核心,运行命令修改为:
    sudo pktgen -l 1-8 -n 4 -- -N -P -m "[1-4].0" -f script.lua
    
  • 关闭多余功能:测试性能时去掉-T参数,该参数用于开启终端动态UI显示,会占用大量CPU资源,影响转发性能。
  • 多队列映射:ConnectX-5 100G网卡单队列最高只能达到约40Mpps的64B小包转发性能,你当前35Mpps正好是单队列单核的性能水平。建议将发送端口0绑定到多个核心的多队列上,比如[1-4].0表示给端口0分配4个队列,分别绑定核1~4,充分利用多核能力。

三、系统与网卡层面优化

  • 大页配置:使用1G大页替代默认的2M大页,至少配置16G以上的1G大页,减少TLB miss开销,提升内存访问效率。
  • 网卡参数调整:用ethtool关闭网卡的LRO、GRO、TSO等大包offload功能,关闭网卡节能模式,将PCIe最大 payload 设置为4096。
  • 驱动与编译优化:使用对应版本的MLNX_OFED官方驱动,编译DPDK和pktgen时开启-O3最高优化等级,开启mlx5 PMD的多队列、快速发送等特性。

调整后64B小包的发送性能可以达到140~180Mpps,接近网卡标称的200Mpps上限。


内容的提问来源于stack exchange,提问作者SoliRaven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:06:02