Thread (32 messages) 32 messages, 8 authors, 2008-02-01

Re: e1000 full-duplex TCP performance well below wire speed

From: Bruce Allen <hidden>
Date: 2008-02-01 07:54:39

Hi Bill,
I started musing if once one side's transmitter got the upper hand, it 
might somehow defer the processing of received packets, causing the 
resultant ACKs to be delayed and thus further slowing down the other 
end's transmitter.  I began to wonder if the txqueuelen could have an 
affect on the TCP performance behavior.  I normally have the txqueuelen 
set to 10000 for 10-GigE testing, so decided to run a test with 
txqueuelen set to 200 (actually settled on this value through some 
experimentation).  Here is a typical result:

[bill@chance4 ~]$ nuttcp -f-beta -Itx -w2m 192.168.6.79 & nuttcp -f-beta -Irx -r -w2m 192.168.6.79
tx:  1120.6345 MB /  10.07 sec =  933.4042 Mbps 12 %TX 9 %RX 0 retrans
rx:  1104.3081 MB /  10.09 sec =  917.7365 Mbps 12 %TX 11 %RX 0 retrans

This is significantly better, but there was more variability in the
results.  The above was with TSO enabled.  I also then ran a test
with TSO disabled, with the following typical result:

[bill@chance4 ~]$ nuttcp -f-beta -Itx -w2m 192.168.6.79 & nuttcp -f-beta -Irx -r -w2m 192.168.6.79
tx:  1119.4749 MB /  10.05 sec =  934.2922 Mbps 13 %TX 9 %RX 0 retrans
rx:  1131.7334 MB /  10.05 sec =  944.8437 Mbps 15 %TX 12 %RX 0 retrans

This was a little better yet and getting closer to expected results.
We'll also try changing txqueuelen.  I have not looked, but I suppose that 
this is set to the default value of 1000.  We'd be delighted to see 
full-duplex performance that was consistent and greater than 900 Mb/s x 2.
I do have some other test systems at work that I might be able to try 
with newer kernels and/or drivers or maybe even with other vendor's GigE 
NICs, but I won't be back to work until early next week sometime.
Bill, we'd be happy to give you root access to a couple of our systems 
here if you want to do additional testing.  We can put the latest drivers 
on them (and reboot if/as needed).  If you want to do this, please just 
send an ssh public key to Carsten.

Cheers,
 	Bruce
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help