DPDK-testpmd配置异常:核心数不生效、丢包及服务器崩溃问题排查
DPDK testpmd 问题排查与操作修正
1. set nbcore 4 配置不生效的原因
set nbcore必须在启动转发流程前配置,且需要重新启动转发才能生效。你仅执行了设置命令但未重启转发,所以show config fwd仍显示初始的1核配置。正确操作是先执行set nbcore 4,再执行start txonly(或对应转发模式),之后再查看配置才会更新。- 启动命令
-l 11-15指定了5个核心,testpmd默认会预留1个核心作为控制核,所以实际可用转发核为4个,核心数量配置本身是匹配的,只是未触发生效逻辑。
2. txonly模式需设置eth-peer的原因
txonly模式下,testpmd需要明确数据包的二层目的MAC地址才能让网卡正常发送帧。未设置eth-peer时,生成的数据包没有合法目的MAC,网卡硬件会直接丢弃这些无效帧,导致模式无法生效。必须先通过set eth-peer 0 <接收端网卡MAC>指定目的地址,再启动txonly模式。
3. 未修改突发延迟导致崩溃+无数据包的原因
- 你对10G以太网带宽的计算错误:10Gbps实际对应1250MBps(而非80MBps),testpmd默认的突发发送速率极高,会瞬间占满PCIe总线与CPU资源,直接导致系统因资源耗尽崩溃。
- 崩溃前发送的数据包要么因未设置目的MAC被网卡丢弃,要么因系统崩溃未完成发送流程,所以接收端tcpdump无法捕获到数据包。
修正后的完整操作流程
- 启动testpmd时可直接指定核心数(可选,减少交互步骤):
./dpdk-testpmd -l 11-15 -- --nb-cores=4 -i - 进入交互模式后,先配置接收端网卡MAC:
set eth-peer 0 aa:bb:cc:dd:ee:ff - 修改突发延迟限制发送速率:
set txdelay 100 - 启动txonly转发模式:
start txonly - 验证核心配置:
show config fwd
内容的提问来源于stack exchange,提问作者Nafiul Alam Fuji
相关产品推荐
相关产品推荐

