High level of CPU interrupts from NICs
-
I'm getting around 20%, spiking up to 30% CPU interrupts with ~80 Mbps download traffic. Top and vmstat show most of them come from network interfaces (on separate IRQs, not shared with any other device).
This is only an Atom dual core (E3805) system with Realtek NICs, but officially it's rated for 2 Gbps firewall throughput (with Linux-based Sophos software). With this level of interrupts I doubt it could ever reach that.
Does anyone have suggestions to try and reduce the interrupt load? I have already tried:
- Disabling/enabling each of the offloading options under Advanced -> Networking
- Disabling MSI/MSIX
- Using the Realtek-provided driver instead of the FreeBSD default one
No noticeable positive impact from any of these and unexpectedly the Realtek provided driver actually made it worse with the interrupt load staying more consistently close to 30% during downloads.
It seems that polling was removed from the kernel at some point. Could compiling myself with polling enabled be something worth trying? Or does it simply belong in the past?
-
You won't see 2Gbps with that CPU and those NICs in pfSense.
The APU1 with Realtek NICs and a AMD G-T40E can pass ~350Mbps for example. I would expect it to scale quite well with that so 450-500Mbps.
What throughput do you actually see if you run an iperf3 test through it?
Steve
-
As it's on a DSL link, throughput is not the issue for me at this point - just the remaining processing power.
I found that with the Realtek official driver the interrupts go down to around 15% with selected offload settings:
Checksum offloading: Enabled
TCP segmentation offloading: Disabled
Large receive offloading: Enabled -
The fact it shows interrupt load is not a bad thing in itself, that's where the load from pf is shown.
If your required throughput is <500Mbps then you'll probably have no problem.
Steve