Re: ext3 metadata performace

From: Robert Hancock
Date: Thu May 11 2006 - 20:14:07 EST


Dieter Stüken wrote:
after I switched from from ext2 to ext3 i observed some severe performance degradation. Most discussion about this topic deals
with tuning of data-io performance. My problem however is related to metadata updates. When cloning (cp -al) or deleting directory trees I find, that about 7200 files are created/deleted per minute. Seems
this is related to some ex3 strategy, to wait for each metadata to be
written to disk. Interestingly this occurs with my new hw-raid
controller (3ware 9500S), which even has an battery buffered disk cache.
Thus there is no need for synchronous IO anyway. If I disable the
disk cache on my plain SATA disk using ext3, I also get this behavior.

Would it be make sense for ext3, to disable synchronous writes even
for metadata (similar to the "data=writeback" option)? This means, that
ext3 won't protect the (meta) data currently written. This is needed
if running a database or an email server, where the process performing
the IO must be sure, the data is definitely on disk, if it returns form
the system call. In most cases, however, you choose ex3 to ensure the
consistency of your file system after a crash, to avoid an fsck.
If some files, created just before the crash, vanish, does not hurt
me too much.

I think that doing this would destroy all filesystem consistency guarantees provided by ext3. In this case you might as well use ext2. In order for the journalling to work, the metadata updates must be written to the journal before any of them start modifying the actual disk metadata, otherwise there is no way to recover in the event of a crash.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/