[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a769871e0909301205x771e1fc3y62a25790e1728754@mail.gmail.com>
Date: Wed, 30 Sep 2009 21:05:57 +0200
From: wbrana@...il.com
To: Theodore Tso <tytso@....edu>, linux-kernel@...r.kernel.org
Subject: Re: ext4/reiser3/btr directory create/read perf
On Mon, Sep 28, 2009 at 4:29 PM, Theodore Tso <tytso@....edu> wrote:
> On Sun, Sep 27, 2009 at 02:27:55PM +0200, wbrana@...il.com wrote:
>> Hello,
>>
>> I executed benchmark which creates and reads 10000 directories.
>> It is much slower with ext4 than with reiser3 or btrfs.
>
> What precisely is your benchmark doing/measuring? What are the times
> if you enable dir_index?
>
> - Ted
>
I reduced benchmark to 10 directories and executed with strace
ext4
void cfs::vdirs_create(): 1047 msec
void cfs::vdirs_read(): 123 msec
vdirs_create():
mkdir("/mnt/md8/4", 0777) = 0
mkdir("/mnt/md8/3", 0777) = 0
mkdir("/mnt/md8/2", 0777) = 0
mkdir("/mnt/md8/1", 0777) = 0
mkdir("/mnt/md8/0", 0777) = 0
sync() = 0
vdirs_read():
QDir::entryInfoList() measured
stat("/mnt/md8", {st_dev=makedev(9, 8), st_ino=2,
st_mode=S_IFDIR|0755, st_nlink=8, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
lstat("/mnt/md8", {st_dev=makedev(9, 8), st_ino=2,
st_mode=S_IFDIR|0755, st_nlink=8, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
open("/mnt/md8", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 10
fstat(10, {st_dev=makedev(9, 8), st_ino=2, st_mode=S_IFDIR|0755,
st_nlink=8, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
fcntl(10, F_GETFD) = 0x1 (flags FD_CLOEXEC)
statfs("/mnt/md8", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096,
f_blocks=15484285, f_bfree=15438246, f_bavail=14651667,
f_files=3940352, f_ffree=3940336, f_fsid={-1324527978, -609145826},
f_namelen=255, f_frsize=4096}) = 0
getdents(10, {{d_ino=16386, d_off=399366477, d_reclen=24, d_name="1"}
{d_ino=8194, d_off=770605380, d_reclen=24, d_name="3"} {d_ino=11,
d_off=783174169, d_reclen=32, d_name="lost+found"} {d_ino=2,
d_off=1078596639, d_reclen=24, d_name="."} {d_ino=2, d_off=1358450504,
d_reclen=24, d_name=".."} {d_ino=8193, d_off=174337
5275, d_reclen=24, d_name="4"} {d_ino=16385, d_off=1786832028,
d_reclen=24, d_name="2"} {d_ino=24577, d_off=2147483647, d_reclen=24,
d_name="0"}}, 4096) = 200
stat("/mnt/md8/1", {st_dev=makedev(9, 8), st_ino=16386,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/1", {st_dev=makedev(9, 8), st_ino=16386,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/3", {st_dev=makedev(9, 8), st_ino=8194,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/3", {st_dev=makedev(9, 8), st_ino=8194,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/lost+found", {st_dev=makedev(9, 8), st_ino=11,
st_mode=S_IFDIR|0700, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=32, st_size=16384, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:29, st_ctime=2009/09/30-20:42:29}) = 0
stat("/mnt/md8/lost+found", {st_dev=makedev(9, 8), st_ino=11,
st_mode=S_IFDIR|0700, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=32, st_size=16384, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:29, st_ctime=2009/09/30-20:42:29}) = 0
stat("/mnt/md8/.", {st_dev=makedev(9, 8), st_ino=2,
st_mode=S_IFDIR|0755, st_nlink=8, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/.", {st_dev=makedev(9, 8), st_ino=2,
st_mode=S_IFDIR|0755, st_nlink=8, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:29,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/..", {st_dev=makedev(9, 2), st_ino=16,
st_mode=S_IFDIR|0755, st_nlink=36, st_uid=0, st_gid=0,
st_blksize=4096, st_blocks=1, st_size=952,
st_atime=2008/09/14-18:00:33, st_mtime=2009/09/19-17:44:10,
st_ctime=2009/09/19-17:44:10}) = 0
stat("/mnt/md8/..", {st_dev=makedev(9, 2), st_ino=16,
st_mode=S_IFDIR|0755, st_nlink=36, st_uid=0, st_gid=0,
st_blksize=4096, st_blocks=1, st_size=952,
st_atime=2008/09/14-18:00:33, st_mtime=2009/09/19-17:44:10,
st_ctime=2009/09/19-17:44:10}) = 0
stat("/mnt/md8/4", {st_dev=makedev(9, 8), st_ino=8193,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/4", {st_dev=makedev(9, 8), st_ino=8193,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/2", {st_dev=makedev(9, 8), st_ino=16385,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
getdents(10, {}, 4096) = 0
close(10) = 0
stat("/mnt/md8/2", {st_dev=makedev(9, 8), st_ino=16385,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
stat("/mnt/md8/0", {st_dev=makedev(9, 8), st_ino=24577,
st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=4096,
st_blocks=8, st_size=4096, st_atime=2009/09/30-20:42:45,
st_mtime=2009/09/30-20:42:45, st_ctime=2009/09/30-20:42:45}) = 0
Times with 10000 directories and dir_index enabled
/mnt/md8: 64 kB chunks
ext4
void cfs::vdirs_create(): 4996 msec
void cfs::vdirs_read(): 5100 msec
Times with 10000 files and dir_index enabled
/mnt/md8: 64 kB chunks
reiser3
void cfs::vfiles_create(): 1239 msec
void cfs::vdirs_read(): 409 msec
ext4
void cfs::vfiles_create(): 1464 msec
void cfs::vdirs_read(): 501 msec
btrfs
void cfs::vfiles_create(): 1295 msec
void cfs::vdirs_read(): 585 msec
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists