[netperf-talk] TCP_SENDFILE
Rick Jones
rick.jones2 at hp.com
Thu Mar 30 09:46:15 PST 2006
Simon Leinen wrote:
> Checking on some systems here, it seems that Rick is right - Solaris 8
> doesn't have sendfile(), but Solaris 9 and later do. You need to link
> with -lsendfile to use it (which doesn't exist on Solaris 8).
>
> By the way, just today I stumbled across a Web page with recent
> NETPERF results on a Solaris 11 (snapshot) Dual Opteron machine using
> PCI-Express 10GE adapters... quite impressive
>
> http://www.myri.com/Myri-10G/10gbe_performance.html
Not bad as netperf results writeups go. Still missing a bit of data
right there with the results, but better than many I've seen.
As far as TSO goes, my understanding is that 2.6.9 kernels aren't quite
where one wants to be - that Linux had lower 1500 byte MTU TCP_STREAM
numbers even with TSO suggests something wasn't completely happy.
The bit about Solaris not having TSO is "accurate" but perhaps a bit
misleading - they have a similar, software-only feature called "Multi
Data Transmit" whereby TCP can send a chain of segments to the driver at
one time. Upside is no need for explicit HW support, and no need for
much "oomph" on the NIC. Downside is it may not buy quite as much as
full TSO, but that is hard to judge.
The "No CPU affinity on multi-cpu machines" bit in the Solaris
description was a bit odd - I thought that reasonably contemporary
netperfs knew how to do affinity under Solaris. It also suggests that
affinity was used under Linux, but was not stated explicitly.
I go to all that trouble to have some indication of what was used in
those test banners and here people go not using it :)
For the 1500 byte tests, it _may_ have been better to bind the netperf
(or netserver) to the CPU _other_ than the one taking the NIC interrupts
to get a bit more parallelism.
Just a paranoid reminder - take the send side numbers of a UDP_STREAM
test with a large dose of salt - different stacks do different things on
outbound wrt intra-stack flow control and/or reporting ENOBUFS. Best to
stick with the receive side stats and consider using the
--enable-intervals stuff if one needs to pace the sends.
rick jones
More information about the netperf-talk
mailing list