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 PLEASE READ THIS IMPORTANT ETIQUETTE MESSAGE BEFORE POSTING: http://www.catb.org/~esr/faqs/smart-questions.html
