Matt Staroscik
2003-Nov-18 08:06 UTC
[Samba] Supporting multiple clients -- per machine/os config?
Short version: Different clients need different socket options to perform well. Can I point to a different smb.conf file as a function of the client name or OS? Long version follows for the masochists! At home I run a mixed-client network, and I am having problems configuring my smb.conf to support them all equally well. I am able to create shares, and I can browse them, but file transfers can be very slow depending on my SO_SNDBUF and SO_RCVBUF settings. Unfortunately the magic numbers fall into 2 categories for different clients! My server is FreeBSD 4.9, with Samba 2.2.8 (compiled from the ports collection). I have fiddled with smb.conf and figured out this pattern: Client 1: WinXP. Best RCV/SNDBUF = 8192. Client 2: PocketPC over 802.11b. Likes the same settings as WinXP. Client 3: Mac OS X 10.3 over 802.11g, Best with RCV/SENDBUF left out of config. (what is the default anyway?) Client 4: Xbox (which USED to work and now it is very slow -- go figure...) Note 1: I have determined that TCP_NODELAY and IPTOS_LOWDELAY at least cause no harm, and they are always set. Note 2: The wireless is not a factor, I have conducted tests with the Mac wired as well and the results are the same. Note 3: Browsing is always fast even if transfers suck. If there is something I can do to make all my clients happy that would be great. But if I could set up a config file per machine name or OS, that would work too. I think I have seen tangential references to this but I haven't been able to Google up any solid examples. Am I on the right track? Or, is there something I can do to the Samba conf on the Mac that will make it talk to Samba on FreeBSD better? (On the client, is smb.conf even used? Where can I set client buffers?) Oh, I cranked the log up to 10, and didn't see anything that looked relevant. I have attached my global config w/ the irrelevant comments stripped. Thanks for any pointers! - Matt -------------------------- [global] workgroup = SHADOW netbios name = SERVER # related to Master Browser domain master = no local master = no preferred master = no os level = 0 #Other Stuff dead time = 15 keepalive = 30 getwd cache = yes server string = Samba server hosts allow = 192.168.1. 127. interfaces = 192.168.1.1 127.0.0.1 bind interfaces only = true guest account = matt log file = /var/log/smblog.%m log level = 2 # Put a capping on the size of the log files (in Kb). max log size = 50 # Security mode. Most people will want user level security. See # security_level.txt for details. security = share encrypt passwords = yes # BUF 8192 better than 65536. 16384 sucks too. 4096 sucks. 8192 best so far # TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192: PC OK, poor Mac speed # TCP_NODELAY only - best for mac # 16384 - tolerable for mac bad for pc # this is best for windows clients socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ### holding ### #IPTOS_LOWDELAY IPTOS_THROUGHPUT # SO_RCVBUF=65536 SO_SNDBUF=65536 # SO_RCVBUF=8192 SO_SNDBUF=8192 IPTOS_LOWDELAY IPTOS_THROUGHPUT ############### dns proxy = no
Gerald (Jerry) Carter
2003-Nov-18 16:29 UTC
[Samba] Supporting multiple clients -- per machine/os config?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Matt Staroscik wrote: | | Short version: Different clients need different socket options to | perform well. Can I point to a different smb.conf file as a function of | the client name or OS? See the %m and %a variables in smb.conf(5) as well as the "include" parameter. cheers, jerry - -- - ---------------------------------------------------------------------- Hewlett-Packard ------------------------- http://www.hp.com SAMBA Team ---------------------- http://www.samba.org GnuPG Key ---- http://www.plainjoe.org/gpg_public.asc "If we're adding to the noise, turn off this song" --Switchfoot (2003) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQE/ukjbIR7qMdg1EfYRAltqAJ42FqapalABLdZGGLrL6tMEq2yPfQCg0acb fR9ALNfdusu/thIQtjFScjI=VG9c -----END PGP SIGNATURE-----