一、故障背景某运营商城域网部署了一套基于DPDK实现的软件交换机集群。系统承担:二层交换VLAN转发VXLAN接入网关EVPN接入用户汇聚硬件配置如下:项目配置CPUIntel Xeon Gold 6338Socket2Core64网卡ConnectX-6 Dx 100GDPDK23.11Hugepage1G系统设计目标:64B: 148.8Mpps 100G Line Rate上线半年运行稳定。某天凌晨,NOC监控告警:用户时延升高 业务抖动 丢包增加二、故障现象监控数据显示:RX PPS 148Mpps TX PPS 35Mpps大量报文未能正常转发。然而查看交换机资源:show cpu结果:PMD-0 100% PMD-1 100% PMD-2 100% ... PMD-31 100%全部CPU满载。查看网卡状态:show interface statistics结果:RX CRC Error 0 RX Missed Error 0 RX No Buffer 0 TX Error 0全部正常。此时故障变得非常诡异。因为:CPU正常工作 NIC正常工作 链路正常工作但性能却下降了超过75%。三、第一步:排除DPDK常见性能问题很多DPDK工程师第一反应会想到:NUMA错误Cache MissRing竞争RSS不均衡因为这些是最常见的性能瓶颈。首先检查RSS。统计各队列流量:show port rss结果:Queue0 4.5Mpps Queue1 4.6Mpps Queue2 4.4Mpps ... Queue31 4.5Mpps负载均衡。排除RSS倾斜。继续检查NUMA。查看:lspci -vv确认:NIC NUMA Node 0线程绑定:taskset确认:RX PMD Worker TX PMD 全部位于Node0没有跨NUMA访问。继续查看:perf stat结果:IPC 2.1 Cache Miss 3.4%非常健康。说明:这次故障不是传统DPDK性能问题。四、发现异常统计进一步查看交换机内部统计:show l2 statistics结果:FDB Hit Rate 31%/
从148Mpps跌到35Mpps:一次未知单播风暴引发的软件交换机性能雪崩
一、故障背景某运营商城域网部署了一套基于DPDK实现的软件交换机集群。系统承担:二层交换VLAN转发VXLAN接入网关EVPN接入用户汇聚硬件配置如下:项目配置CPUIntel Xeon Gold 6338Socket2Core64网卡ConnectX-6 Dx 100GDPDK23.11Hugepage1G系统设计目标:64B: 148.8Mpps 100G Line Rate上线半年运行稳定。某天凌晨,NOC监控告警:用户时延升高 业务抖动 丢包增加二、故障现象监控数据显示:RX PPS 148Mpps TX PPS 35Mpps大量报文未能正常转发。然而查看交换机资源:show cpu结果:PMD-0 100% PMD-1 100% PMD-2 100% ... PMD-31 100%全部CPU满载。查看网卡状态:show interface statistics结果:RX CRC Error 0 RX Missed Error 0 RX No Buffer 0 TX Error 0全部正常。此时故障变得非常诡异。因为:CPU正常工作 NIC正常工作 链路正常工作但性能却下降了超过75%。三、第一步:排除DPDK常见性能问题很多DPDK工程师第一反应会想到:NUMA错误Cache MissRing竞争RSS不均衡因为这些是最常见的性能瓶颈。首先检查RSS。统计各队列流量:show port rss结果:Queue0 4.5Mpps Queue1 4.6Mpps Queue2 4.4Mpps ... Queue31 4.5Mpps负载均衡。排除RSS倾斜。继续检查NUMA。查看:lspci -vv确认:NIC NUMA Node 0线程绑定:taskset确认:RX PMD Worker TX PMD 全部位于Node0没有跨NUMA访问。继续查看:perf stat结果:IPC 2.1 Cache Miss 3.4%非常健康。说明:这次故障不是传统DPDK性能问题。四、发现异常统计进一步查看交换机内部统计:show l2 statistics结果:FDB Hit Rate 31%/