Skip site navigation (1)Skip section navigation (2)
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>