How multithreaded is networking in FreeBSD 15.1?
Brett Glass <[email protected]>
| Newsgroups | gmane.os.freebsd.questions |
|---|---|
| Message-ID | <[email protected]> |
All: I need to build a high-performance FreeBSD-based router that will handle gigabits of traffic. It'll be connected via aggregated Ethernet connections (at least upstream and maybe downstream too) and so will need to be able to handle LACP-based LAGs efficiently. The router will also use IPFW to firewall and filter packets as well as some kernel-based NAT. (Not all traffic will go through NAT, but some will.) I have ny choice of several computing platforms: Some with more cores, the other with higher clock speed and fewer higher performance cores. Which is likely to perform better under FreeBSD 15.1? I'm especially concerned that, due to locks, the LAGs and the hashing algorithms that split the packets between the interfaces could be a bottleneck. Given the current multithreading in the network stack, IPFW, and the NAT library, does it pay to go for lots of cores? Or due to locking is it more efficient to storm on through with fewer very-high-performance cores? What tuning will provide the best results in the latest kernel? (There are plenty of tutorials on FreeBSD network tuning, but many go back to MUCH earlier versions and may longer contain valid advice.) --Brett Glass