[Samba] Win2k - samba-2.2.8a - can't get above 4MB/sec

Andrew Kohlsmith akohlsmith-samba at benshaw.com
Mon Jul 28 00:35:19 GMT 2003


I'm trying to maximize throughput between my Samba server and my Win2k (SP3 
and 4) clients. Samba's configured to allow up to 64k packets and the 
server is on a GigE network (3com card, acenic driver) with SCSI UW2 drives 
(software RAID1 and RAID5 volumes). All clients are 100MB/sec FDX on a 
switched LAN. 
 
I can get sustained 35MB/sec transfers (read and write) on the disk 
subsystem so I know that's not a limiting factor. (not bad for software 
RAID, SCSI UW2 max theoretical throughput is 40MB/sec!) 
 
I have read the various TCP/IP and throughput tuning documentation for Win2k 
(and WinNT) found on various sites, including MSDN and the MSKB. My maximum 
window size is 128k, MTU is 1500 (well auto-discover but packet traces show 
that this is where it was autonegotiated at)... TCP window scaling is on 
and so on and so forth... I don't need TCP/IP tuning, I need CIFS and NBT 
tuning. 
 
No matter what I do I can't get Win2k to give up limiting the maximum NBT 
packet size to the MSS. All NBT packets (coming or going) max out at 1460 
bytes and all packets have the DF bit set. I have extra CPU to spare so I'd 
like to have 64k NBT packets that are fragmented to fit into the ethernet 
frames. 

A clip from tcpdump during a transfer:
18:46:07.770734 192.168.1.169.1038 > 192.168.1.2.139: . ack 2375572 win 
65535 (DF)
18:46:07.770942 192.168.1.169.1038 > 192.168.1.2.139: . ack 2378492 win 
65535 (DF)
18:46:07.771002 192.168.1.2.139 > 192.168.1.169.1038: . 
2385792:2387252(1460) ack 4719 win 5840 NBT Packet (DF)
18:46:07.771008 192.168.1.2.139 > 192.168.1.169.1038: . 
2387252:2388712(1460) ack 4719 win 5840 NBT Packet (DF)
18:46:07.771013 192.168.1.2.139 > 192.168.1.169.1038: . 
2388712:2390172(1460) ack 4719 win 5840 NBT Packet (DF)
18:46:07.771017 192.168.1.2.139 > 192.168.1.169.1038: . 
2390172:2391632(1460) ack 4719 win 5840 NBT Packet (DF)
 
I've also read that CIFS can work "raw" (i.e. outside of NBT) but I'm not 
sure how to do it or if it'll help.

Testing with NFS and FTP has shown that I can hit 9.6MB/sec with larger 
packets, but am stuck down around 4MB/sec with these measly 1-2k packets. I 
am pretty sure it's not a Samba-side issue because if I start four or five 
transfers from different workstations I can easily aggregate their 
individual transfer speeds and get 20MB/sec on the GigE interface.  I am 
drawing up blanks so I'm hoping one of the samba gurus can help here.  :-)
 
What I've done so far:
- read over Speed.txt and Speed2.txt
- tried compiling with sendfile and enabling it in smb.conf
- tried -DUSE_MMAP (and turning read raw off)
- setting the maxrecvsize registry parameter (and rebooting)
- probably a few more things I've forgotten.  :-)

Regards,
Andrew



More information about the samba mailing list