[Samba] Friendly Reminder: Huge number of small files performance regression from 3.5.16 to 4.6.5 with identical smb.conf
awl1 at mnet-online.de
Sat Jul 15 18:06:16 UTC 2017
Hmm, in addition I just started wondering about the following:
As it obviously is my Windows client that creates and sends the SMB2
requests, maybe it is rather Microsoft to blame for choosing to sending
the "wrong"/suboptimal/poorly performing client-side SMB2 find request
(namely SMB2_FIND_ID_BOTH_DIRECTORY_INFO with pattern "*" instead of
SMB2_FIND_NAME_INFO with the particular file name about to be written?
Can Samba influence the Windows client earlier on in the message
exchange to send find requests differently?
And in case that is true that this is a shortfall of Microsoft's SMB2
client as opposed to their SMB1 client, then how could that be fixed?
Are there any secret registry entries to influence this, or would I need
to raise an issue with Microsoft and document this?
Really interesting... ;-):-(
I will now move forward and try to execute the same client scenario from
a Linux environment (will boot the exact same client-side PC hardware
into Ubuntu 16.04), do another tshark recording from there and report
back (probably tomorrow or on Monday) what this might tell us...
Am 15.07.2017 um 19:13 schrieb awl1 via samba:
> In this case, the Find operation does not look for the particular file
> name that is about to be written, but seems to try and list the whole
> current directory's content with a pattern of "*". Note that, looping
> through the 2000 files to be written, the length of the Find Response
> above increases (significantly!) with every file successfully copied:
> When copying file number 1000, the Find Response sends back a list of
> all 999 files that have been successfully copied to this directory
> before, and this list of 999 file names is not needed for any
> meaningful purpose, as the goal seems to be to check whether file
> number 1000 already exists in this list of 999 files (which it of
> course never does!) or not.
> The last call to SMB2_FIND_ID_BOTH_DIRECTORY_INFO that is contained in
> the traces has a response length of about 64kB (containing filenames
> that have already been written to the target directory but are not
> needed/helpful in any way) and interestingly does not return
> "STATUS_NO_MORE_FILES", but "STATUS_INFO_LENGTH_MISMATCH", maybe
> because the buffer size for the result of the pattern lookup is only
More information about the samba