问题描述
某飞腾 arm 设备,运行 dpdk-19.11 l2fwd,两个核小包纯转发在 55% 以上,运行 dpdk-16.04 l2fwd,两个核小包纯转发 21%。
小包性能远低于预期!
备注:绑核情况相同!
问题分析
- dpdk-19.11 优化了 rte_mbuf 中的结构,对性能有影响
- dpdk-19.11 l2fwd 使用的描述符的数量与 dpdk-16.04 l2fwd 可能存在差异
- dpdk-19.11 rte_mbuf 结构调整,arm neno 向量收发包函数有几个指令的优化,性能要比 dpdk-16.04 更优,但是差别不会特别大
- 设备架构为单 numa 结构,不存在跨 numa 问题
在 x86 上,dpdk-19.11 在一些平台能够使用 avx2、avx512 收发包函数,对小包性能有明显的优化。
主要分析方向:
- 确认描述符数量差异
- 确认向量收发包函数差异
- 确认其它配置上的差异
描述符数量差异
dpdk-16.04
#define RTE_TEST_RX_DESC_DEFAULT 128
#define RTE_TEST_TX_DESC_DEFAULT 512