ixgbe 网络负载较高时,%soft CPU 使用率较高

ixgbe 网络负载较高时,%soft CPU 使用率较高

我们有一个 Intel 82598EB 10GBE NIC。网络负载由大量小型 UDP 数据包组成。为了模拟 DDoS,我们从另一台服务器推送了 ~100k pps 小型 UDP 数据包(仅几兆比特的带宽)。当我们这样做时,%soft CPU 使用率会达到 100%,导致服务器无法使用并丢弃数据包。

内核是 3.8.5,ixgbe 3.13.10 我们已经做了一些调整来降低中断率(rx-usecs:300),但问题并没有解决。有没有办法检查为什么软中断会占用这么多 CPU,即使中断率不高?

谢谢你!

答案1

我知道这已经过时了;但我主要是为了回复遇到类似问题的用户。

有几种方法可以检查中断:

  • cat /proc/interrupts记录每个 CPU 和 IO 设备的中断。
  • grep cpu /proc/stat第 6 列和第 7 列包含irq统计softirq数据。
  • tophtop;观察si,如果您将 htop 更改为 CPU 的高级显示模式,您可以看到sihi
  • 要获取历史数据请安装sysstat;要获取特定中断数据请参见sar -I XALL
  • 您也可以使用perf

因为这很可能是驱动程序问题(或者 NIC 出现故障),所以我会检查接口上是否有任何overrunserrors;如果没有,请查看驱动程序是否有更新。

相关内容