Samba read speed performance tuning

Adam Vande More amvandemore at
Sat Mar 20 02:57:47 UTC 2010

On Fri, Mar 19, 2010 at 8:28 PM, Dan Naumov <dan.naumov at> wrote:

> Oh my god... Why did noone tell me how much of an enormous performance
> boost vfs.zfs.prefetch_disable=0 (aka actually enabling prefetch) is.
> My local reads off the mirror pool jumped from 75mb/s to 96mb/s (ie.
> they are now nearly 25% faster than reading off an individual disk)
> and reads off a Samba share skyrocketed from 50mb/s to 90mb/s.
> By default, FreeBSD sets vfs.zfs.prefetch_disable to 1 on any i386
> systems and on any amd64 systems with less than 4GB of avaiable
> memory. My system is amd64 with 4gb ram, but integrated video eats
> some of that, so the autotuning disabled the prefetch. I had read up
> on it and a fair amount of people seemed to have performance issues
> caused by having prefetch enabled and get better results with it
> turned off, in my case however, it seems that enabling it gave a
> really solid boost to performance.

My home VBox server is similar specs and I enabled the prefetch from the
start.  A few days ago, I added an intel SSD as the zpool cache device and
the read speed is mind blowing now.  This is from inside a VM frunning on it
meaning ad0 is really a vdi. Once the cache is populated, HD latency is
mostly a thing of the past.

# diskinfo -tv /dev/ad0
        512             # sectorsize
        12884901888     # mediasize in bytes (12G)
        25165824        # mediasize in sectors
        24966           # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        VBf9752473-05343e4e     # Disk ident.

Seek times:
        Full stroke:      250 iter in   0.082321 sec =    0.329 msec
        Half stroke:      250 iter in   0.078944 sec =    0.316 msec
        Quarter stroke:   500 iter in   0.161266 sec =    0.323 msec
        Short forward:    400 iter in   0.128624 sec =    0.322 msec
        Short backward:   400 iter in   0.131770 sec =    0.329 msec
        Seq outer:       2048 iter in   0.667510 sec =    0.326 msec
        Seq inner:       2048 iter in   0.691691 sec =    0.338 msec
Transfer rates:
        outside:       102400 kbytes in   0.722864 sec =   141659 kbytes/sec
        middle:        102400 kbytes in   0.813619 sec =   125857 kbytes/sec
        inside:        102400 kbytes in   0.838129 sec =   122177 kbytes/sec

Adam Vande More

More information about the freebsd-performance mailing list