The_Orig
December 20th, 2008, 04:20 AM
Introduction
I have three computers at three different locations. One has just Ubuntu and the other two are dual-booting with Ubuntu and Windows (I have to have my games :D). Understandably, I got tired of synchronizing data between five operating systems so I decided to purchase an external hard drive to solve the issue. I planned to keep all my data that I needed on it and all would be swell. Inevitably, I began to wonder what would be the best file system to format the drive with. So with some advice and prodding from a friend, I decided to put together a small test and post the results on the Ubuntu Forums in the hopes that someone else could use them. I also decided to throw in some other file systems for comparison.
File Systems Tested
EXT3
ReisferFS
XFS
NTFS (Windows)
NTFS (Linux)
I have NTFS included twice because I wanted to see if there was any noticeable different between how Windows dealt with NTFS and how the 3G driver did. I did the test the exact same way except I was in Windows instead of Ubuntu. The results were interesting ;).
The following quote from Wikipedia explains why I didn't test EXT4:
On Oct 11, 2008, the patches that mark ext4 as stable code were merged in the Linux 2.6.28 source code repositories, marking the end of the development phase and recommending its adoption.
Notice the recommending part. I only wanted to test File Systems that were widely supported and in use. That and it's not an option in GPARTED ;). I didn't test Reisfer4 for the widely supported reason stated above (I can't use GPARTED as my excuse here :P).
Test Format
I wanted my test to cover small files (such as text documents), medium-ish files (such as music in MP3 format), and large files (such as DivX movies and such). I took this into account when I wrote some code that would do the following:
Make X directories in the external
Make one file in each of the X directories
Write Y amount of data to each file
Read all data from each file
Delete all X files
Delete all X directories
X specifies the number of directories (and subsequently the number of files) to be created, and Y specifies the size of each file in bytes. I saved the time it took for each operation and compared each file system on its performance making directories, making files, writing to files, reading from files, deleting files, deleting directories, and it's overall performance.
I decided to do all my tests with 10,000 directories/files and file sizes of
1 KiB (To Test Small Files)
1 MiB (To Test Small-ish Files)
3 MiB (To Test Medium-ish Files)
1 GiB (To Test Larger Files) (Tested with only 100 directories/files for obvious space reasons.)
The test drive was formatted using GParted. It should be noted that nothing else was accessing the test drive while tests were going on. Also, a Totem Movie player was constantly playing a movie during all testing (It was a great way to occupy my time while I waited :P), but besides that nothing was running.
My test code is attached for your use/perusal. It's in Java to make it as portable as possible for everyone that wants to use it.
Test System
The computer I used had the following specs:
Hardware:
Intel Core 2 Duo E6700
2 GB OZC DDR2 PC5400
Asus P5LD2
WD SATA 200 GiB Interal Hard Drive
Lacie eSATA 500 GiB External Hard Drive (Test Drive)
NVidia 7950 GX2
Software:
Ubuntu 8.10 Intrepid Ibex with latest updates (Defaults)
OpenJDK Java 6
GParted
Windows XP Professional SP3
Results
All my results are in the attached Results_And_Code.zip archive. I've included them in the .odt and .pdf file format. You should be able to open the pdf file almost anywhere. You can open the odt file format with open office which comes with Ubuntu by default. Or, if you are on another distro or OS you can download it for free from this SITE (http://www.openoffice.org/).
I hope my work can help someone else :). Cheers!
EDIT: The PDF is fixed :P
I have three computers at three different locations. One has just Ubuntu and the other two are dual-booting with Ubuntu and Windows (I have to have my games :D). Understandably, I got tired of synchronizing data between five operating systems so I decided to purchase an external hard drive to solve the issue. I planned to keep all my data that I needed on it and all would be swell. Inevitably, I began to wonder what would be the best file system to format the drive with. So with some advice and prodding from a friend, I decided to put together a small test and post the results on the Ubuntu Forums in the hopes that someone else could use them. I also decided to throw in some other file systems for comparison.
File Systems Tested
EXT3
ReisferFS
XFS
NTFS (Windows)
NTFS (Linux)
I have NTFS included twice because I wanted to see if there was any noticeable different between how Windows dealt with NTFS and how the 3G driver did. I did the test the exact same way except I was in Windows instead of Ubuntu. The results were interesting ;).
The following quote from Wikipedia explains why I didn't test EXT4:
On Oct 11, 2008, the patches that mark ext4 as stable code were merged in the Linux 2.6.28 source code repositories, marking the end of the development phase and recommending its adoption.
Notice the recommending part. I only wanted to test File Systems that were widely supported and in use. That and it's not an option in GPARTED ;). I didn't test Reisfer4 for the widely supported reason stated above (I can't use GPARTED as my excuse here :P).
Test Format
I wanted my test to cover small files (such as text documents), medium-ish files (such as music in MP3 format), and large files (such as DivX movies and such). I took this into account when I wrote some code that would do the following:
Make X directories in the external
Make one file in each of the X directories
Write Y amount of data to each file
Read all data from each file
Delete all X files
Delete all X directories
X specifies the number of directories (and subsequently the number of files) to be created, and Y specifies the size of each file in bytes. I saved the time it took for each operation and compared each file system on its performance making directories, making files, writing to files, reading from files, deleting files, deleting directories, and it's overall performance.
I decided to do all my tests with 10,000 directories/files and file sizes of
1 KiB (To Test Small Files)
1 MiB (To Test Small-ish Files)
3 MiB (To Test Medium-ish Files)
1 GiB (To Test Larger Files) (Tested with only 100 directories/files for obvious space reasons.)
The test drive was formatted using GParted. It should be noted that nothing else was accessing the test drive while tests were going on. Also, a Totem Movie player was constantly playing a movie during all testing (It was a great way to occupy my time while I waited :P), but besides that nothing was running.
My test code is attached for your use/perusal. It's in Java to make it as portable as possible for everyone that wants to use it.
Test System
The computer I used had the following specs:
Hardware:
Intel Core 2 Duo E6700
2 GB OZC DDR2 PC5400
Asus P5LD2
WD SATA 200 GiB Interal Hard Drive
Lacie eSATA 500 GiB External Hard Drive (Test Drive)
NVidia 7950 GX2
Software:
Ubuntu 8.10 Intrepid Ibex with latest updates (Defaults)
OpenJDK Java 6
GParted
Windows XP Professional SP3
Results
All my results are in the attached Results_And_Code.zip archive. I've included them in the .odt and .pdf file format. You should be able to open the pdf file almost anywhere. You can open the odt file format with open office which comes with Ubuntu by default. Or, if you are on another distro or OS you can download it for free from this SITE (http://www.openoffice.org/).
I hope my work can help someone else :). Cheers!
EDIT: The PDF is fixed :P