WinXP<->Linux samba server test results

BG - Ben Armstrong BArmstrong at dymaxion.ca
Mon Sep 20 19:57:12 GMT 2004


Hi,

Here is an analysis of my next test, supplemental to my earlier
observations about WinXP -> OpenVMS samba write performance.

If you want to skip the details and cut to the chase, it seems that both
when WinXP talks to a Linux samba server and when Linux talks to a
OpenVMS server, efficiencies of the SMB protocol are being taken
advantage of that are missing in the WinXP to OpenVMS server
conversation.  I am supplying my further analysis below in case it helps
resolve this mystery, and particularly in case it helps us tune our
server and/or clients to perform optimally.

Details below.  Hardhats required.

In this test, I ran bench.rb on WinXP against a Linux samba server.  I
see a slightly different pattern happening here that bears some
similarity to both the Linux client -> OpenVMS server case and the WinXP
client -> OpenVMS server case.

As in the Linux -> OpenVMS server case, Write AndX is used instead of
Write.  But similar to the WinXP -> OpenVMS server case, I am seeing
these one-byte writes.  Only this time, surprisingly, they make sense to
me.  These writes appear to be intended to pre-extend the file up to
however much the WinXP client has buffered up and is prepared to write.
Furthermore, the QUERY_FILE_INFO requests are getting actual allocation
and EOF figures back.  Initially, there is a flurry of these which
finally settle down once the file has been preextended to 1057791 bytes,
after which the first Write AndX happens.

This is the second surprise: these writes are sent 64K at a time, unlike
the prior two tests.  I guess this corresponds to the send buffer size.
These are of course chopped up into 1460 byte packets to fit MTU = 1500.
As before, there are netbios-ssn ACKs along the way, and after each 64K
sent, a Write AndX ACK is sent back from the Linux server.

Finally, the writes catch up with the pre-extended size of the file, and
another flurry of extensions happen.  The session continues alternating
between extending and writing in this fashion until the whole data
stream is written.

I can't compare throughput.  While our test Samba OpenVMS server has a
10 MBit interface, my test Samba Linux server has 100 MBit.  I could
force my Linux server down to 10 MBit half duplex to match the OpenVMS
server with mii-tool if that would help.  Please let me know if further
tests are needed to isolate the differences we are seeing between
platforms.

As before, I have raw packet capture data for analysis if anyone wants
to look at it.

Thanks,
Ben



More information about the samba-vms mailing list