(S)ATA performance in FBSD 6.2/7.0

Alexander Leidinger Alexander at Leidinger.net
Fri Mar 2 12:03:55 UTC 2007

Quoting Cheffo <cheffo at FreeBSD-BG.org> (from Fri, 02 Mar 2007 13:38:45 +0200):

> Hi,
> Ted Mittelstaedt wrote:
>> ----- Original Message ----- From: "O. Hartmann"   
>> <ohartman at zedat.fu-berlin.de>
>> To: <freebsd-performance at freebsd.org>; <freebsd-questions at freebsd.org>
>> Sent: Friday, March 02, 2007 1:38 AM
>> Subject: (S)ATA performance in FBSD 6.2/7.0
>>> The last days I tried to figure out why some of my lab's FreeBSD   
>>> boxes and also mine at home seem to be outperformed by some Linux   
>>> setups around here and I saw something interesting.
>> blah blah blah deleted
>>> Before digging into this problem deeper with benchmarks, could   
>>> anyone explain why FreeBSD reaches this 33 MB/s limit (sounds like  
>>>  UDMA 33
>> man mount
>> read section on "async"
>> linux by default mounts async
>> freebsd by default mounts sync
>> you can change FBSD to async
>> then watch your fs scramble during a power failure
>> no big deal, it's only your data.
>> Ted
> If SYNC is default how can you explain this:
> [12:58]root at hater:~# mount
> /dev/ad4s3a on / (ufs, local, synchronous)
> devfs on /dev (devfs, local)
> /dev/ad4s3d on /tmp (ufs, local, soft-updates)
> /dev/ad4s3f on /usr (ufs, local, soft-updates)
> /dev/ad4s3e on /var (ufs, local, soft-updates)
> So I'm pretty sure that for type ufs async is default.

Both of you are wrong. By default "noasync" is used. This is different  
from sync and async. Feel free to look up the difference.

> Also I do not see why sync should report different speeds for copy and
> benchmark tools if they do the same thing?

Because cp may behave differently than the tools used to benchmark. A  
dd may be more portable in this case.

> Just to be sure I added to my /tmp entry async in /etc/fstab:
> /dev/ad4s3d             /tmp            ufs     rw,async     2       2
> umounted and mounted again and still have:
> /dev/ad4s3d on /tmp (ufs, local, soft-updates)

IIRC when SU is used, async is not used even if specified. But I' not  
sure about this.

Asides from the linux async-by-default there's maybe also the  
write-cache-off penalty in FreeBSD. But I'm not sure it is off by  
default. I disable the WC myself in loader.conf everywhere to be on  
the safe side and I don't feel like experimenting ATM (I'm ill in bed).

If the same conditions are tested in FreeBSD and linux (which is not  
easy, as we don't share a common FS implementation, even when we  
support the same FS type) and the sync/async and WC related stuff can  
be ruled out, it may be a problem in the (S)ATA code and it would be  
nice if we would know about this. So please dig deeper into this (it  
can also be a problem with our cp or GEOM or whatever).


  "I heard one time you single-handedly defeated a hoard of rampaging of
somethings in the something something system." -Fry

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137

More information about the freebsd-questions mailing list