在 ixgbe 上的高网络负载期间高 %soft CPU 使用率

Sav*_*ini 5 networking performance

我们有一个 Intel 82598EB 10GBE 网卡。网络负载由许多小尺寸的 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.

由于这很可能是驱动程序问题(或网卡出现故障),我会检查接口上是否有任何overruns或;errors如果没有,请查看驱动程序是否有更新。