一、故障背景
某大型数据中心部署了一套基于DPDK的软件交换机集群。
主要承担:
- VXLAN Gateway
- EVPN Leaf
- L2 Switching
- IPv4/IPv6 Routing
- ACL过滤
- ERSPAN镜像
硬件配置:
| 项目 | 配置 |
|---|---|
| CPU | Intel Xeon Gold 6430 |
| 网卡 | Intel X710 10G |
| DPDK | 23.11 |
| PMD Core | 32 |
| RX Queue | 32 |
| TX Queue | 32 |
系统长期运行稳定。
一次业务扩容后:
转发流量:
48Mpps
↓
63Mpps
↓
81Mpps
开始出现异常。
现网告警:
- RTT偶发升高
- VXLAN Overlay时延抖动
- TCP重传率上升
- 微丢包告警
但所有PMD线程依然:
100% CPU
运行。
二、第一轮排查
首先查看网卡统计:
rte_eth_stats_get();
结果:
imissed = 0
ierrors = 0
rx_nombuf = 0
无异常。
查看RSS分布:
32个Queue负载均衡
正常。
查看ACL:
Lookup Cycles
稳定
正常。
查看路由查找:
LPM Lookup
稳定
正常。
查看Mempool:
Free Objects > 85%
正常。
几乎所有传统DPDK排查方向都被排除。
三、一个反常现象
运维团队发现:
RX侧统计正常。
但:
TX Queue Occupancy
偶尔会快速上升。
又快速恢复。
持续时间:
20ms ~ 100ms
非常短。
这种现象无法通过常规监控捕获。
于是开始重点分析发送路径。
四、重新理解DPDK发送流程
很多开发人员理解的发送流程:
Packet
↓
rte_eth_tx_burst()
↓
NIC
↓
Wire
实际上远没有这么简单。
现代网卡发送路径:


9

被折叠的 条评论
为什么被折叠?



