Re: [PATCH 0/2] ext3: Reduce calling ext3_mark_inode_dirty() for speedup
From: Andreas Dilger <hidden>
Date: 2012-02-02 22:36:29
On 2012-02-01, at 1:35 AM, Kazuya Mio wrote:
2012/01/31 5:36, Andreas Dilger wrote:quoted
Can you please run this same measurement on ext4 formatted and running with the default options? I'd like to know if this is still a problem in ext4 or not.I performed the same measurement on ext4 with the default options.
Kazuya, thank you for running this test. I'm unfortunately confused by the result.
Here is its result: filesystem time(sec) call extX_mark_inode_dirty(times) --- ext3 220.5 50,338,104 ext3 (patched) 196.3 25,169,658 ext4 (*1) 190.3 28,465,799 ext4 (*2) 201.5 27,963,473 ext4 (default) 223.3 14,026,118 *1 disable ext4-specific options (delalloc, extent, and so on) *2 disable only delalloc option
This shows that ext4 with extents+delalloc is _slower_ than ext3, which is very strange. In other similar tests of write performance (see http://downloads.linux.hp.com/~enw/ext4/3.2/large_file_creates.html, showing multi-threaded 1GB file writes) ext4 is much faster than ext3. Looking at your original email, is ext4 being tested on a RHEL 5.5 (2.6.18) kernel, or a more recent kernel? It would be more useful to run this on a more modern kernel, since the ext4 code backported to RHEL5 was barely supporting delalloc at all, if I remember correctly. The good news is that the number of extN_mark_inode_dirty() calls is far lower in ext4 than in ext3, though this doesn't seem to be the primary factor in the performance in this case. Cheers, Andreas