On Wed, Apr 18, 2001 at 12:40:23AM +0200, Jure Pecar wrote:
> Now when you mentioned it ...
> Has anyone done a thorough comparison of what Linux has to offer at the
> journaling filesystems? I'm thinking of a stability/features/performance
> comparison of ext3, jfs, xfs, reiserfs ... At the reiserfs site i can
> find only the reiserfs vs ext[2|3] comparison, with the obvious outcome.
> I'd be particulary interested at nfs performance and 2Gb+ filesizes.
> If someone has something, please come up with it. It'll spare me a few
> days doing all the testing on my own.
Now that you mention it :-), I've been looking at a stable filesystem for
an NFS server to serve a 300GB+ partition. My timings with these
tests are given below, along with the specs on the machine and the RAID
system. But before I get into that: I tried creating a 5GB file under XFS
and it got created just fine.
Now, the machine:
A dual-processor P-III 1GHz machine with 2GB memory and a Mylex extremeRaid2000
card. It has 12 36GB 10kRPM disks attached; of these, 1 is a spare and the
other 11 are in a 10+1 RAID5 setup. All 4 channels of the Mylex card are
used, and the stripe size is 64KB.
Now, here are the timings for my tests. The format is:
------
Filesystem: (some information about the filesystem created)
command
(some comments about the command, if any)
timings reported
------
The timings are for XFS; ReiserFS and ext2 (sorry, no ext3 yet).
This was not a scientifically controlled test; please take them for what
they're worth.
The program "mkbigtree" creates a tree of files of size 3M each.
The arguments indicate the number of subdirectories; the last argument
gives the number of files in the bottom-most subdirectory. So, for example,
./mkbigtree 5 10 20 10
will create a tree of 5*10*20 (=1000) directories, with
10 files of 3MB each in lowest one (total of 30GB)
"mkforest" does nearly the same thing, but the last argument for mkforest
is the _size_ of the files (in KB) to be created. So, my command
./mkforest 5 10 20 1000 20
will create 5*10*20 (=1000) directories with 1000 files each, and each file
is of size _about_ 20K (random values are used).
OK, here are the timings:
XFS: mkfs.xfs, with default options
time ./mkbigtree 5 10 20 10
1.920u 222.480s 20:54.29 17.8% 0+0k 0+0io 334pf+0w
XFS: mkfs with options: -f -d sunit=128,swidth=128 /dev/rd/c0d0p1
time ./mkbigtree 5 10 20 10
2.000u 223.700s 19:06.28 19.6% 0+0k 0+0io 334pf+0w
XFS:
time ./mkforest 5 10 20 1000 20
(1 million files of about 20K each)
73.560u 426.140s 22:38.98 36.7% 0+0k 0+0io 772pf+0w
XFS:
time csh -cf 'tar cf - tree_714 | wc -c'
(big tree of 10000 3MB images)
5.750u 383.010s 13:22.05 48.4% 0+0k 0+0io 1066pf+0w
XFS:
time csh -cf 'tar cf - forest_733 | wc -c'
(the forest of 1M files created above)
28.360u 341.260s 30:50.48 19.9% 0+0k 0+0io 950pf+0w
ReiserFS:
time ./mkbigtree 5 10 20 10
1.640u 447.250s 23:51.02 31.3% 0+0k 0+0io 551pf+0w
ReiserFS:
time ./mkforest 5 10 20 1000 20
(1 million files of about 20K each)
102.350u 5383.700s 1:31:53.41 99.5% 0+0k 0+0io 351pf+0w
ReiserFS:
time csh -cf 'tar cf - tree_809 | wc -c'
5.920u 343.340s 12:14.41 47.5% 0+0k 0+0io 677pf+0w
ReiserFS:
time csh -cf 'tar cf - forest_995 | wc -c'
(the forest of 1M files created above)
24.560u 254.360s 31:42.87 14.6% 0+0k 0+0io 676pf+0w
Ext2FS: time to make the filesystem:
Apr 12 14:51:34 sudo /sbin/mke2fs /dev/rd/c0d0p1
Apr 12 15:03:47 (sudo ends)
(time taken to make the 360GB filesystem is over 12 minutes)
Ext2FS:
time ./mkbigtree 5 10 20 10
2.140u 284.010s 19:13.56 24.8% 0+0k 0+0io 351pf+0w
Ext2FS:
time ./mkforest 5 10 20 1000 20
53.270u 304.660s 13:16.38 44.9% 0+0k 0+0io 352pf+0w
Ext2FS:
time csh -cf 'tar cf - tree_1326 | wc -c'
6.220u 361.810s 12:55.60 47.4% 0+0k 0+0io 661pf+0w
Ext2FS:
time csh -cf 'tar cf - forest_1374 | wc -c'
23.390u 216.390s 25:48.89 15.4% 0+0k 0+0io 661pf+0w
Notes:
- ReiserFS really slowed to a crawl when creating the 1M small files
- time to just mkfs the ext2fs is over 12 minutes; I wonder what the
fsck time would be! :-)
|