FreeBSD 10Gbs Networking Working
Isaac (.ike) Levy
ike at blackskyresearch.net
Wed Mar 12 10:36:18 EDT 2014
Hi All,
Just a quick excited post to share:
Using commodity hardware and 10Gbit Intel nics, and FreeBSD 10.0, I'm
pushing an actual 9.1-9.3Gbps (netperf tests), across 4x nics, no
tuning.
--
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.16.0.1 ()
port 0 AF_INET : histogram : interval : dirty data : demo
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
65536 32768 32768 10.01 9388.17
--
Not a joke. I've been running these in loops simultaneously on all 4
ports. Game changed, mind blown.
Best,
.ike
------------
more details
The OS is stock FreeBSD 10, dmesg posted here:
http://nycbug.org/?action=dmesgd&do=view&dmesgid=2527
That HW costs about 3200 bucks. (Ponder that.)
The only tuning I did was in bios- to disable hyperthreading (pci
interrupts), and disable cpu virtualization.
The two pci cards each have 2x SFP slots, with fiber SFP's. The 1u
chassis puts them both on a X16 pcie3 bus, (each becomming X8 pci).
The driver is ix,
http://downloadmirror.intel.com/14688/eng/README.txt
I think the man page for it is ixgbe(4), (but I may be wrong here?)
http://www.freebsd.org/cgi/man.cgi?query=ixgbe&apropos=0&sektion=0&manpath=FreeBSD+10.0-RELEASE&arch=default&format=html
General Notes:
Apparently I'm CPU bound here, but using somewhat "typical" CPU's here,
could increase the number cores and see what happens next. It's
delightful to finally have a problem we can throw CPU at in the world
again :)
--
Additionally, I'm running tests using pfSense, (2.1.1-prerelease has
the driver fixes to support these cards.)
Since pfSense is based on FreeBSD 8.3, the performance is not obviously
as stunning- but out the gate, with minimal fuss, I'm able to reliably
push 4+Gbps across 2 ports (4Gbps each direction for total 8Gbps
throughput), and 2+Gbps each direction when saturating all 4 ports
(total 8Gbps throughput again).
CPU is pegged, so I'm pretty certain that dropping in more cores will
help, as well as more tuning.
We've got some bigger boxes in the works, (8x total 10Gbe ports, 4x
GigE ports on the motherboard, and a dedicated PCI slot for each card),
so we'll be dropping more CPU cores in the box here too... We'll see
what improvements this brings.
While I'm personally looking forward to a bright shiny 10.x based
pfSense in the future, I'm likewise impressed with the overall
stability and responsiveness with this hardware.
--
Some urls on tuning:
I don't know much of this project, but these tuning urls have been
fascinating,
http://bsdrp.net/documentation/technical_docs/performance
Other interesting 10Gbps nics,
http://www.freebsd.org/cgi/man.cgi?query=cxgb&sektion=4&apropos=0&manpath=FreeBSD+10.0-RELEASE
http://www.freebsd.org/cgi/man.cgi?query=cxgbe&sektion=4&apropos=0&manpath=FreeBSD+10.0-RELEASE
Yeah yeah yeah Calomel, great notes on PCI calculations:
https://calomel.org/network_performance.html
More information about the talk
mailing list