一、故障背景
某云计算数据中心部署了一套基于DPDK的软件交换机。
系统承担:
- VXLAN Overlay网络
- 大规模二层转发
- 三层路由转发
- ACL访问控制
- 镜像流量复制
- Telemetry采集
硬件配置如下:
| 项目 | 配置 |
|---|---|
| CPU | Intel Xeon Gold 6338 |
| 网卡 | Intel X710 Dual Port 10G |
| DPDK | 22.11 LTS |
| PMD线程 | 16 |
| NUMA | 双路 |
| ACL规则 | 12万条 |
| MAC表 | 200万条 |
系统上线初期运行稳定。
随着租户增长:
ACL规则 2万 ↓ 5万 ↓ 8万 ↓ 12万问题逐渐暴露。
业务侧开始反馈:
- TCP重传增加
- SSH偶发卡顿
- VXLAN Overlay时延波动
- BGP邻居偶发重连
最奇怪的是:
所有PMD线程始终100%。
因此最初排除了CPU资源不足的问题。
二、故障现象分析
查看交换机监控。
发现:
| 指标 | 数值 |
|---|---|
| CPU利用率 | 100% |
| PPS | 9.8M |
| 链路利用率 | 63% |
| 丢包率 | 0.03% |
| NIC Error | 0 |
没有明显异常。
继续查看:
rte_eth_stats_get()统计:
imissed = 0 ierrors = 0 rx_nombuf = 0说明:
不是网卡丢包。
三、第一层定位:交换机转发路径
系统转发架构如下。