Date: Wed, 28 Jun 2006 22:05:17 +0200 From: Ivan Voras <ivoras@fer.hr> To: freebsd-fs@freebsd.org Subject: Re: Is the fsync() fake on FreeBSD6.1? Message-ID: <44A2E0FD.6060302@fer.hr> In-Reply-To: <20060628230439.M75051@delplex.bde.org> References: <a0cd7c070606270032h3a42de6ahf21cd11abedb6400@mail.gmail.com> <44A1B958.4030204@fer.hr> <20060628230439.M75051@delplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans wrote: >> But I see strange results with iostat. It shows 16KB transactions, >> ~2900 tps and 46 MB/s. On the other hand, the program runs for ~36 >> seconds, which gives ~1390 tps (this is a single desktop drive). Since >> 36 seconds of 46MB/s would result in a file 1.6 GB in size, while it's >> clearly 50000*512=25MB, iostat is lying. > > This is because you fsync() every 512 bytes. The file system then writes > a 16K inode block and a 16K data block, giving 64 times as much i/o as > necessary. Ok, so you're saying that it actually does 46MB/s, rewriting 16K FS blocks over and over? In that case, wouldn't all writes to the FS, especially with soft-updates be minimally 16K+16K? It doesn't look like it when I monitor a live server - there are 8KB and 4KB writes... maybe UFS fragments complicate the (ac)counting.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44A2E0FD.6060302>