Date: Tue, 13 Sep 2011 12:00:46 +0200 From: Ivan Voras <ivoras@freebsd.org> To: freebsd-fs@freebsd.org Subject: Re: ZFS-lighttpd2-sendfile, too high IO Message-ID: <j4n9ke$8p2$1@dough.gmane.org> In-Reply-To: <B5CD3F95-759C-426B-BA90-F0046C58C0A8@exonetric.com> References: <freemail.20110912210908.38291.2@xmldata09.freemail.hu> <alpine.GSO.2.01.1109121428570.12948@freddy.simplesystems.org> <j4n7tn$r1u$1@dough.gmane.org> <B5CD3F95-759C-426B-BA90-F0046C58C0A8@exonetric.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 13/09/2011 11:38, Mark Blackman wrote: > > On 13 Sep 2011, at 10:31, Ivan Voras wrote: >>> >>> Zfs reads whole 128K blocks (or whatever the filesystem blocksize is) at >>> a time. It does not read partial blocks from underlying storage. This >>> makes it very expensive to perform many small read accesses if the reads >>> are not subsequently cached in the ARC. >> >> Yes! >> >> Which makes it particularly "interesting" if you try to run a database >> on it while forgetting to reset the block size to e.g. 8K before the >> database is initialized - you get 16x more IO than you expected. >> > > Yes, I got this but what can you do if the database has already been > initialized? I'm guessing the only realistic option is to set the block > size, then copy the database files to a new directory and rename the old > and new directories so the new directory is the database store. > > Perhaps you need to use an entirely new dataset? Luckily, you just need to create a new file system and move/copy the data over and back again.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?j4n9ke$8p2$1>