fxp performance with POLLING

Jeremy Chadwick koitsu at FreeBSD.org
Mon Oct 6 13:34:49 UTC 2008

On Mon, Oct 06, 2008 at 08:38:13AM -0400, Adam McDougall wrote:
> Bartosz Stec wrote:
>>>> BTW overall SAMBA performance still sucks on 7.1-pre as much as on  
>>>> RELENG_5 ...:( - 7.5 MB/s peak.
>>> 7.5MB is 75% effeciency of a 100mbit card.  Not amazing, but
>>> not "sucks".
>>> Where do you see faster performance?
>>> Between windows machines on the same hardware or linux server?
>> It sucks because it is a peak performance. About 5-6 MB/s average. I  
>> tried polling only because I found some suggestions on mailing lists,  
>> that it could improve performance with SAMBA on FreeBSD. As you see at  
>> the top of this thread - not in my case :) I also tried sysctl tunings, 
>> and smb.conf settings, also suggested on maling lists, with no or very  
>> little improvements noticed. Most of suggestions unfortunately end with 
>> "change OS to Linux if you want to use SAMBA". I think I will try to  
>> change NIC to 1Gbit - hope that helps :) Or maybe there's some "FreeBSD 
>> and SAMBA tuning guide" which I didn't found?
> Please try experimenting with "socket options" in smb.conf, I've found  
> that some tuning is desirable on any OS with Samba, but these are the  
> values that worked best for me with Windows XP clients in mind.  Win2003  
> clients seemed much faster without tuning (same base code as XP 64bit)  
> and I suspect it has a different SMB implementation.  I'd suggest  
> starting with "socket options = TCP_NODELAY IPTOS_THROUGHPUT  
> SO_RCVBUF=8192 SO_SNDBUF=8192" and if you aren't satisfied, experiment  
> with the numbers  and which options are enabled.  Be sure that the  
> client has been disconnected from Samba completely to make sure you are  
> testing the values in the config file.  I'm pretty sure with these  
> tunings I was able to get closer to 10MB/sec on 100Mbit, which satisfies  
> me for the average user.

Interesting.  I use gigE on my home network, and most of my Samba shares
consist of very large files (ISO images and HD videos).  Setting the
buffer sizes to 8KB results in horrible performance; a 420MB ISO image
taking ~50 seconds to copy.  Copying is from the Samba server to the
Windows machine.  ZFS is used on FreeBSD, across 4 disks in a raidz1
pool; all disks are SATA300 with 16MByte cache.

Increasing the Samba buffers to 64KB (65536) drops the transfer to 30
seconds, and increasing it to 128KB (131072) drops to 15-20

NICs involved are an Attansic L1E (on Windows XP, with TCP buffer sizes
tuned in the registry, ditto with enabling TCP window resizing), and an
em(4) (on FreeBSD).  There are two switches between the boxes: an HP
ProCurve, and a generic D-Link switch.  Everything is gigE.

Additionally, don't forget about IPTOS_LOWDELAY, and the "write cache
size" and "read size" options in smb.conf.

| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

More information about the freebsd-stable mailing list