Thomas has obtained the Ethernet captures, as requested in my previous post,
and has emailed them to me for analysis with WireShark.

Thomas said he used the iperf option '-l 512' to force the size
of the read/write buffer to be 512 (iperf default is normally 8192).

So we have two capture files of iperf traffic, for 2 seconds duration, 
one with OpenSolaris as client, and the other with Linux as client.
In both cases Linux is the server.

Here is my preliminary assessment:

:---------------------------------------:

First file 'osol.iperf.cap' - OpenSolaris client.

Approx 6MB file, capturing 62471 packets.
The 1st packet, a SYN, shows MTU 1460, SACK permitted,
Windows Scale Zero (*1)

In WireShark, 'Analyze > Expert Info Composite' shows:

Warning 'ACKed lost segment' count of 2079
Warning 'Previous segment lost' count of 398
Note 'Window update' count of 379
Note 'Window is full' count of 7

Data packets are of TCP size 512 (Ethernet 566), or 1024 (Ethernet 1078)
So OpenSolaris is respecting the '-l 512' buffer size request.

In WireShark, 'Statistics > TCP Stream Graph > Time-sequence graph'
shows a curved line that starts diagonal, but then begins to level off.

:---------------------------------------:

Second file 'linux.iperf.cap' - Linux client.

Approx 10MB file, capturing 104634 packets.
The 1st packet, a SYN, shows MTU 1460, SACK permitted,
Windows Scale 7 (*128), and Timestamps.

Wireshark shows all packets are using the TCP timestamps option.

In WireShark, 'Analyze > Expert Info Composite' shows:

Warning 'ACKed lost segment' count of 7193
Warning 'Previous segment lost' count of 14786

There are no notes mentioning change in Window size.

Data packets are all of TCP size 1448 (Ethernet 1514).
So Linux does NOT seem to be respecting the '-l 512' request.

In WireShark, 'Statistics > TCP Stream Graph > Time-sequence graph'
shows a nice straight diagonal line.

:---------------------------------------:

The warnings about lost segments do not seem to be affecting performance.

So the difference seem to be that Linux is using TCP timestamps,
and the windows scaling option.

And Linux performance is probably helped by not respecting
the request for a 512 R/W buffer.

Maybe we do need some help from experts across on the network-discuss
mailing list to fully understand this.  But I would say that it would
be worth, on the OpenSolaris client, enabling tcp timestamps
and window size scaling.

I've asked Thomas if he would consent to making these capture files
publicly available from my web site, so other can take a look
and give an opinion.

Thanks
Nigel Smith
-- 
This message posted from opensolaris.org
_______________________________________________
storage-discuss mailing list
storage-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/storage-discuss

Reply via email to