2012年2月2日木曜日

同一ディレクトリに大量のファイルを設置した場合のパフォーマンス調査


ext3で、同一ディレクトリにファイルが大量に存在すると遅くなるというのは有名かと。
ext4では、H-treeで高速化したとwikipediaに書いてあったんですけど、期待ほどではなかった様子。。

以下、4985個のファイルが置いてあるディレクトリで試しました。一応2回づつ。
(ユーザーとしての個人的感覚では、そんなに大量というほどのファイル数ではないつもり)

■ext4(@CentOS6.2)
time ls disk01/kfs/pb/generated/122
real    0m16.153s
user    0m0.044s
sys     0m0.288s

time ls disk01/kfs/pb/generated/122
real    0m8.402s
user    0m0.034s
sys     0m0.104s

■XFS(@CentOS6.2)
time ls xfs05/kfs/pb/generated/122
real    0m0.175s
user    0m0.030s
sys     0m0.142s

time ls xfs05/kfs/pb/generated/122
real    0m0.075s
user    0m0.023s
sys     0m0.047s

■JFS(@CentOS6.2+ELrepo)
yum install jfsutils
rpm -Uvh http://elrepo.org/elrepo-release-6-3.el6.elrepo.noarch.rpm
yum install enablerepo=elrepo kmod-jfs
mount /dev/sdg jfs07
mount /dev/sdh jfs08

time ls jfs07/kfs/pb/generated/122
real    0m0.134s
user    0m0.021s
sys     0m0.092s

time ls jfs07/kfs/pb/generated/122
real    0m0.073s
user    0m0.026s
sys     0m0.043s

■ZFS(@FreeBSD)
/usr/bin/time -h -p ls /kfs01/kfs/pb/generated/122
real 0.12
user 0.00
sys 0.01

/usr/bin/time -h -p ls /kfs01/kfs/pb/generated/122
real 0.16
user 0.00
sys 0.01

ext4の圧倒的遅さが際立っております。
これで問題にならない使い方なら問題ないんでしょうけれども、僕の場合は問題ありありなので困ります。デジタル写真とか扱ってたら1フォルダ数百〜数千個くらいはすぐ貯まっちゃうでしょう。。貯めるなってのはユーザーフレンドリーじゃないのでダメです。

では何がいいかと言うと。。んー。。。やっぱりJFSかぁ?

0 件のコメント: