Ivan Clayson
2023-Aug-16 15:02 UTC
[Samba] Increase data length for SMB2 write and read requests for Windows 10 clients
Hello, We are currently running a Linux Samba gateway with a CephFS kernel-client to allow Windows 10 clients to transfer data to and from our Ceph storage cluster. We have been using this in production for a while now quite successfully but we are finding that our Windows clients are having their rates limited to ~1 Gbps despite having 10 Gbit interfaces (iperf tests show a 4.18 Gbps network speed). We can achieve far higher transfer rates when using Linux clients by setting the "wsize" and "rsize" mount.cifs options (we find that 8MB works well) but we've been unable to find an equivalent option for our Windows clients as there doesn't seem to be an option to specify how much the data will be sent in 1 SMB request. When inspecting the logs (as well as with Wireshark), we can see that the Linux clients have their read and write data lengths specified by the "wsize" and "rsize" options: [2022/12/09 11:47:26.550170,? 3] ../../source3/smbd/smb2_write.c:220(smb2_write_complete_internal) ? smb2: fnum 3199665708, file iso_test_folder/copy_back/output_8gb.dat, length=4194304 offset=2948595712 wrote=4194304 # where "mount.cifs -o wsize=4MB" by default for dialects at least SMB2.1. Hence the "length=" and "wrote=" values are 4*1024^2 bytes However for a Windows client, the data length of the SMB packets are limited to 1 MB however: [2022/12/09 11:35:49.331003,? 3] ../../source3/smbd/smb2_read.c:430(smb2_read_complete) ? smbd_smb2_read: fnum 1997996337, file iso_test_folder/output_8gb.dat, length=1048576 offset=7298088960 read=1048576 # "length=" and "read=" are 1MB in size We are running the same version of Samba (4.16.4) when testing with the clients with a 4.18 kernel (for our gateway) but we've been unable to find a way to have Windows to send larger SMB packets. Has anyone else looked into this and have they found any success? Is there an option in the smb.conf that we are missing? Below are the options we've added to our smb.conf to try and optimize data transfer (where any further advice would also be welcome): [global] ??? bind interfaces only = yes ?? ?interfaces = "ens18;capability=RSS,speed=10000000000" ?? ?workgroup = ceph ?? ?server role = standalone server ?? ?server min protocol = SMB2_10 ?? ?client min protocol = SMB2_10 ??? winbind max domain connections = 10 ?? ?winbind cache time = 5 ?? ?allocation roundup size = 524288 ?? ?socket options = IPTOS_THROUGHPUT TCP_NODELAY SO_RCVBUF=319488 SO_SNDBUF=319488 ?? ?block size = 4096 ?? ?write raw = Yes ?? ?read raw = Yes ?? ?max xmit = 65535 ?? ?min receivefile size = 128000 ?? ?aio max threads = 200 ?? ?aio read size = 2048 ?? ?aio write size = 2048 We would be very eager to hear any thoughts or comments that the wider Samba community have to offer! Kindest regards, Ivan Clayson -- Ivan Clayson ----------------- Scientific Computing Officer MRC Laboratory of Molecular Biology Francis Crick Ave, Cambridge CB2 0QH
Jeremy Allison
2023-Aug-16 16:06 UTC
[Samba] Increase data length for SMB2 write and read requests for Windows 10 clients
On Wed, Aug 16, 2023 at 04:02:47PM +0100, Ivan Clayson via samba wrote:>Hello, > >We are currently running a Linux Samba gateway with a CephFS >kernel-client to allow Windows 10 clients to transfer data to and from >our Ceph storage cluster. We have been using this in production for a >while now quite successfully but we are finding that our Windows >clients are having their rates limited to ~1 Gbps despite having 10 >Gbit interfaces (iperf tests show a 4.18 Gbps network speed). We can >achieve far higher transfer rates when using Linux clients by setting >the "wsize" and "rsize" mount.cifs options (we find that 8MB works >well) but we've been unable to find an equivalent option for our >Windows clients as there doesn't seem to be an option to specify how >much the data will be sent in 1 SMB request. > >When inspecting the logs (as well as with Wireshark), we can see that >the Linux clients have their read and write data lengths specified by >the "wsize" and "rsize" options:I don't know of any Windows client tuning parameter to set to increase their r/w sizes (or even to change them in any way). Any Windows experts on this list who might know a "secret" registry key ?
Jeremy Allison
2023-Aug-16 16:07 UTC
[Samba] Increase data length for SMB2 write and read requests for Windows 10 clients
On Wed, Aug 16, 2023 at 04:02:47PM +0100, Ivan Clayson via samba wrote:> >We are running the same version of Samba (4.16.4) when testing with >the clients with a 4.18 kernel (for our gateway) but we've been unable >to find a way to have Windows to send larger SMB packets. Has anyone >else looked into this and have they found any success? Is there an >option in the smb.conf that we are missing?FYI, to my knowledge there's nothing in any server setting that will cause Windows clients to change r/w sizes.
Reasonably Related Threads
- Increase data length for SMB2 write and read requests for Windows 10 clients
- couldn''t get available bandwith
- Windows SMB2 client doing excessive, inefficient SMB2 Find (and other) requests
- Windows SMB2 client doing excessive, inefficient SMB2 Find (and other) requests
- Windows SMB2 client doing excessive, inefficient SMB2 Find (and other) requests