iperf3.7 UDP测试发送端出现静默间隙导致吞吐量偏低相关咨询
iperf3 3.7 UDP高负载吞吐量异常问题解答
问题根因
你观测到的发送端10.8ms静默间隙属于iperf3 3.7版本的UDP多流速率控制逻辑缺陷:
- 该版本用户态令牌桶限速模块在处理单流带宽超过500M、总带宽超过4G的UDP多流测试场景时,会出现周期性整数溢出,导致计数器重置期间发送端停止发包
- 更换客户端IP后测试恢复正常的原因是:iperf3服务端按客户端IP关联速率统计上下文,新IP会重置溢出状态的计数器,因此问题临时消失
版本修复说明
- 该问题为3.7版本已知Bug,官方Issue编号为#1092
- 3.8版本已正式修复UDP速率计算整数溢出问题,3.9版本对该场景做了额外的稳定性优化,升级到3.8及以上版本可彻底解决静默间隙问题
临时规避参数
如果暂时无法升级版本,可通过以下启动参数降低问题出现概率:
- 使用Linux内核fq队列限速替代iperf3用户态限速,新增
--fq-rate参数,调整后客户端命令如下:
iperf3 -c 32.0.161.84 -u -l 1360 -b 550M -P 8 -w 16M -R -t 3000 --fq-rate 4.4G
- 降低单流带宽配置,将
-b 550M调整为-b 400M,同时将-P 8调整为-P 11,避免单流速率阈值触发票桶溢出 - 新增
-Z参数启用零拷贝发包模式,降低用户态调度延迟对速率控制的影响
验证建议
优先将服务端、客户端的iperf3同时升级到3.9及以上稳定版本,升级后可通过连续12小时以上压测确认静默间隙问题是否完全消失。
内容的提问来源于stack exchange,提问作者Nicke
相关产品推荐
相关产品推荐

