SG-4860 network interface optimization
-
I've done some searching on the forum as well as elsewhere, but I haven't been able to find any docs on what the recommended network interface settings are for this platform. Specifically, I'm considering enabling device polling, as I'm seeing up to 20% interrupt usage under load. The other settings are relevant as well. Is there a primer or doc somewhere that lays this out?
-
Polling is not viable on any hardware these days. We've actually removed the option entirely in 2.4. It hurts more than it helps on modern hardware.
The factory version of pfSense that ships on the 4860 is already tuned for performance.
What is it you're trying to achieve? What performance are you getting now?
-
Ah, bummer. I restored a backup onto the 4860 from an older homebuilt system the moment I got it, so I don't know what the original settings were. I'm mostly concerned about the interrupt usage, as it is approaching the limit of a single core under moderate network load. If the interupts aren't locked to a single core, then I have less to worry about. Any chance someone could show a screenshot of the factory settings?
-
Each NIC on those units uses multiple queues/cores by default (one queue per CPU core per NIC). 4 cores on that box means each NIC will use four queues.
You can confirm it by checking the output of this command:
ps uxawwH | grep '[i]gb' So unless that was changed to only run a single queue (e.g. hw.igb.num_queues=1 in /boot/loader.conf.local) then it will use multiple. And even with one queue per NIC it still gets spread out over multiple cores.[/i]
-
Good info. Looks like on this system, the igb0 and igb1 interfaces only have 2 queues each, while the remaining 4 interfaces have 4 queues each. I read something about that on some non-pfSense site that was doing network benchmarking with some BSD variant installed on this system. Time to re-assign some interfaces! ;)
-
I will be restoring configs to two new 4860s this week. Can you advise if the loader.conf settings will be carried forward from the old device during the restore? Also, what is the best way to to properly confirm/change these settings in loader.conf if needed?