My own XFS - JFS - EXT3 benchmark
I have been entertaining the idea of migrating from EXT3 to either XFS or JFS. Two things annoy me about EXT3: the darn periodic fsck procedure (aaaagh! Windows scandisk all over again!) and its less than stellar speed performance. After many hours reading reviews, benchmarks, opinions and discussions in general, I reached the obvious conclusion: I would have to test this damn thing on my own if I wanted any real, useful conclusion. Well, even that kind of conclusion can be disputed. Then, after I put myself through the trouble, I felt that I should share the results for whatever it's worth. I also felt that LQ would be the perfect venue for that. So, without further ado, here is my very simplistic benchmark...
- format a test partition with XFS or JFS;
- cross-filesystem copy: copy a directory full of MP3 files from an ext3 partition to the test partition;
- intra-filesystem copy: replicate that same directory (with another name, of course) within the test partition;
- recursive deletion: delete the entire directories, one at a time.
- that MP3 directory contains 5 GB of data in 1,317 files and 103 sub directories;
- the test partition was formatted and mounted on an LUKS+cryptsetup encrypted underlying slot, which certainly slows everything down, but that is my real-world scenario anyway.
Acer Aspire One netbook (yes, why not a netbook?)
1 GHz Atom CPU, 2 GB of RAM, 22 GB partition
Kubuntu 9.04 (Jaunty)
Command line procedures
- Formatting the XFS partition took 1 second. Sorry, I forgot to include that time measurement in the scripted procedure.
- Copying the 5 GB directory from an EXT3 partition to the XFS partition took 14 minutes and 31 seconds.
- Replicating the 5 GB directory within the XFS partition took 19 minutes and 39 seconds.
- Deleting the replicated test directory recursively took 1.79 second! Fast! Who said that XFS is slow to delete?
- Deleting the test directory recursively took 1.76 second!
- Formatting the JFS partition took from 15 to 20 seconds. Sorry, I forgot to include that time measurement in the scripted procedure.
- Copying the 5 GB directory from an EXT3 partition to the JFS partition took 17 minutes and 51 seconds.
- Replicating the 5 GB directory within the JFS partition took 19 minutes and 02 seconds.
- Deleting the replicated test directory recursively took 1 second!
- Deleting the test directory recursively took 4.64 seconds. I found that odd. The two directories were identical.
- Formatting the EXT3 partition took from 50 to 60 seconds. Sorry, I forgot to include that time measurement in the scripted procedure.
- Copying the 5 GB directory from an EXT3 partition to another EXT3 partition took 10 minutes and 20 seconds.
- Replicating the 5 GB directory within the JFS partition took 11 minutes and 13 seconds.
- Deleting the replicated test directory recursively took 30 seconds. Slow!
- Deleting the test directory recursively took 32 seconds. The only big disappointment in the EXT3 test.
A more concise breakdown:
format test partition
XFS: 1 second
JFS: 15-20 seconds
EXT3: 50-60 seconds
XFS: 14:31.81 7.3%
JFS: 17:51.11 6.9%
EXT3: 10:20.53 11.6%
intra-FS copy (replicate directory):
XFS: 19:39.39 6.5%
JFS: 19:02.84 6.7%
EXT3: 11:13.49 9.9%
recursive deletion (first directory):
XFS: 0:01.79 65.9%
JFS: 0:01.01 14.8%
EXT3: 0:30.31 8.5%
recursive deletion (second directory):
XFS: 0:01.76 57.3%
JFS: 0:04.64 2.5%
EXT3: 0:32.67 7.8%
I am still not sure what conclusion I should take from this.
My main goal (besides overall performance) is achieving faster backups, which I always do with rsync across hard disks. Since I always use 'rsync --delete' a lot of deletion may be involved, so XFS would certainly bring me a lot of benefit. But XFS copies new data a lot slower than EXT3.
One could argue that XFS would make up for that with its quite competent xfsdump/restore tool, which makes incremental backups, including ability to interrupt and resume later. But I am not convinced that xfsdump/restore is a good alternative to rsync. If I ever migrated to XFS, I would probably remain faithful to rsync, so xfsdump/restore is not a compelling argument in favor of XFS.
XFS is also alluring because it can defrag a mounted file system, but I have no idea of how much impact the issue of fragmentation really has on file system performance. Judging from my many years using a very fragmented EXT3 file system every day, I would wager that the impact is pretty negligible.
I am basically torn between EXT3 and XFS. I am ruling JFS out because I think it fared poorly in the cross-filesystem copy test, which is the most important one for me.
I have no interest in the Reiser FS. I have never put a lot of trust in it and I understand it is now headed to oblivion anyway.
Like I said before, I am just posting it in case it is useful to someone. I know it's not comprehensive, it's quick and dirty. Take it with a grain of salt and a sprinkle of pepper, like any other benchmark. Related thoughts and ideas are welcome, thank you.
If you do not like the time ext3 takes to check a volume then you will kill yourself over the time XFS will take. XFS does not use a journal and will take as long as if you had the drive formatted into ext2. I do not have any thoughts on JFS because I have never used it. Also the periodic scan can be disabled with ext3. You should try out ext4 as well as it has some improvements or coming improvements like online defragmentation.
The EXT4 filesystem is too new and untried for my standards. I won't have any part of it until 2013. I would rather go with the older ones. At least their problems are known and somewhat documented.
Ohh never mind XFS is journal-ed. I got the file systems mixed up when I was using XFS on my nas. Just ignore that part of my post.
As for check times I have never had a check on a ext3 system take very long. Well at least compared to a ext2 system.
Thanks for sharing your testing and results :)
With JFS make sure to use the deadline I/O scheduler, it will drastically increase performance in many cases. I'm not sure if it will make a difference in the tests that you did, but it might. When I was using CFQ with JFS it caused many videos to stutter and a/v desync, this must mean that something was very wrong with the way they interact.
XFS is more advanced than JFS, and about as fast, you can do sparse defrag with it as well, whereas JFS has not defrag :( They said they will add one at some point. I use JFS, but have used XFS for a while.
|All times are GMT -5. The time now is 12:38 AM.|