Date: Tue, 13 Sep 2011 10:38:20 +0100 From: Mark Blackman <mark@exonetric.com> To: Ivan Voras <ivoras@freebsd.org> Cc: freebsd-fs@freebsd.org Subject: Re: ZFS-lighttpd2-sendfile, too high IO Message-ID: <B5CD3F95-759C-426B-BA90-F0046C58C0A8@exonetric.com> In-Reply-To: <j4n7tn$r1u$1@dough.gmane.org> References: <freemail.20110912210908.38291.2@xmldata09.freemail.hu> <alpine.GSO.2.01.1109121428570.12948@freddy.simplesystems.org> <j4n7tn$r1u$1@dough.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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? - Mark
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B5CD3F95-759C-426B-BA90-F0046C58C0A8>