High %soft CPU usage during high network load on ixgbe
We have an Intel 82598EB 10GBE NIC. The network load is composed of lot of small sized UDP packets. To simulate a DDoS, from another server we pushed ~100k pps small UDP packet (just some Mbit of bandwidth). When we do, %soft CPU usage goes to 100% making the server unusable and dropping packets.
Kernel is 3.8.5, ixgbe 3.13.10 We have already made some tunings to lower interrupts rate (rx-usecs: 300) but didn't solve the problem. Is there a way to check why softirqs use so much CPU even if interrupts rate is not high?
Thank you!
Solution 1:
I know this is old; but I'm mainly replying for users who come here with similar issues.
There are a few ways to check interrupts:
-
cat /proc/interrupts
records interrupts per CPU and IO device. -
grep cpu /proc/stat
column 6 and 7 containirq
andsoftirq
stats. -
top
andhtop
; observesi
and if you change htop to advanced display mode for CPUs you can seesi
andhi
. - To get historical data install
sysstat
; to get specific interrupt data seesar -I XALL
. - You can also use
perf
.
Since this is most likely a driver issue (or the NIC is failing) I'd check for any overruns
or errors
on the interface; if there are none see if there is an update to the driver.