Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2006 13:04:12 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        leo huang <leo.huang.list@gmail.com>
Cc:        freebsd-performance@freebsd.org
Subject:   Re: Is the fsync() fake on FreeBSD6.1?
Message-ID:  <20060627033412.GQ10845@wantadilla.lemis.com>
In-Reply-To: <14a4a8480606261918q39b51f7bkd69958c5a7b05021@mail.gmail.com>
References:  <14a4a8480606261918q39b51f7bkd69958c5a7b05021@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--U/5EjKfnYgGK6hcj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tuesday, 27 June 2006 at 10:18:47 +0800, leo huang wrote:
> Hi,
>
> I benchmarked MySQL 4.1.18 on FreeBSD 6.1 and Debian 3.1 using Super Smack
> 1.3 some days ago.
>
> ...
>
> The result surprise me. The MySQL Performance on FreeBSD6.1 is about
> 10 times of on Debian3.1??and the output of iostat also shows it.
>
> I know that MySQL uses fsync() to flush both the data and log files
> at default when using innodb engine(
> http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html). Our
> evaluating computer only has a 10000RPM SCSI hard disk. I think it
> can do about 200 sequential fsync() calls per second if the fsync()
> is real.
>
> Is the fsync() on FreeBSD6.1 fake?

My understanding from the last time I looked at the code was that
fsync does the right thing:

     The fsync() system call causes all modified data and attributes of fd to
     be moved to a permanent storage device.  This normally results in all in-
     core modified copies of buffers for the associated file to be written to
     a disk.

This is not the case for Linux, where fsync syncs the entire file
system.  That could explain some of the performance difference, but
not all of it.  I suppose it's worth noting that, in general, people
report much better performance with MySQL on Linux than on FreeBSD.

> I mean than the data is only written to the drives memory and so can
> be lost if power goes down.

I don't believe that fsync is required to flush the drive buffers.  It
would be nice to have a function that did, though.

> And how I can confirm this?

Trial and error?

Greg
--
See complete headers for address and phone numbers.

--U/5EjKfnYgGK6hcj
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFEoKc0IubykFB6QiMRAuteAKCHeyDhqwRJxhOPrJnGps4o+xnqbACdHJpU
Mvsi7Crmh6+JcQtJAmGoZR4=
=Wad+
-----END PGP SIGNATURE-----

--U/5EjKfnYgGK6hcj--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060627033412.GQ10845>