首页/网络/抓包与流量分析速查/软中断与单队列瓶颈
丢包与时延定位60 条

软中断与单队列瓶颈

收包集中在单 CPU(软中断饱和)时高流量下丢包明显:观察各核软中断占比与网卡队列(RSS)分布,确认是否单核打满。

单核收包瓶颈

报文被网卡收下之后的处理发生在软中断上下文里。如果这些处理都落在同一个处理器核上,高流量时这个核会先饱和:整体吞吐上不去、丢弃计数增长,而其他核却明显空闲。判断线索包括各核软中断占用分布、网卡队列数量以及中断的绑定设置。多队列网卡可以把处理分散到多个核,单队列或中断集中在一核时就会形成单核瓶颈。

基本信息

适用平台Linux(多核主机上的收包路径观察)
命令mpstat -P ALL 1、ethtool -l、查看中断统计
观察点各核软中断占比是否严重不均
影响因素网卡队列数、中断绑定、核心隔离配置

典型使用场景

  • 高流量下丢包但整体处理器占用不高,寻找瓶颈核
  • 压测吞吐无法线性扩展,确认是否卡在单核收包
  • 对比启用多队列或调整绑定前后的效果
  • 容器环境中定位宿主侧收包瓶颈
  • 为网卡队列与绑定配置提供依据
  • 排查中断集中在固定核造成的抖动

观察要点

观察要点
mpstat -P ALL 1                            # 看各核软中断占比
ethtool -l eth0                            # 查看队列数量与当前值
grep '' /proc/net/softnet_stat              # 第 2 列为丢弃计数
cat /proc/interrupts | grep eth0           # 中断是否集中在某个核
# 单核软中断接近打满而其他核空闲 → 典型单核收包瓶颈

观察项逐项读法

观察项含义判读方向
各核软中断分布收包处理是否均衡单核显著偏高即为瓶颈信号
队列数量网卡可用的收发队列队列过少无法分散处理
丢弃计数处理不及时造成的丢弃高流量时段增长说明跟不上
中断分布中断落在哪些核集中在单核会导致该核先饱和
中断均衡服务未运行或网卡只有单队列时,中断集中在一核属于常见配置形态,不一定代表故障配置。
在多队列网卡上队列与核的映射不均同样会造成单核饱和,需要核对映射关系而非只看队列数量。

易错点

  • 只看整体处理器占用:单核打满时整体数值可能不高,容易被误判为性能充足
  • 把队列数当成处理能力:多队列但映射不均时依旧单核饱和
  • 容器内直接观测宿主视图:不同上下文看到的统计含义不同,容易张冠李戴
  • 只加队列不看应用侧:收包瓶颈解决后压力会转移到应用读取,需一并评估

数据来源与参考

  • Linux 内核文档(RSS/RPS)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌