Filesystems

From Ark Linux Wiki
Share/Save/Bookmark
Jump to: navigation, search

Before the release of Ark Linux 2006.1, we've run performance tests on various filesystems to see which one should be made the default.


Test hardware

All tests are being run on an Asus Pundit-S (Celeron 2.4/768 MB/IDE WD2000JB) using

Ark Linux 2006.1 dockyard-devel snapshot 20070722
kernel 2.6.18-0.rc1.1ark
glibc 2.4-4ark
coreutils 5.97-1ark
gcc 4.1.1-1ark
binutils 2.17.50.0.3-1ark


Comparison of file system performance

filesystem run # test real user system
xfs 1 dd if=/dev/urandom of=/tmp/1GB bs=1M count=1024 6m34.878s 0m0.008s 6m34.517s
2 6m35.878s 0m0.008s 6m34.445s
3 6m35.155s 0m0.012s 6m34.721s
AVG 6m35.303s 0m0.009s 6m34.561s
jfs 1 6m39.272s 0m0.016s 6m38.969s
2 6m39.756s 0m0.012s 6m38.909s
3 6m52.723s 0m0.020s 6m46.741s
AVG 6m43.917s 0m0.016s 6m41.540s
ext3 1 6m37.352s 0m0.008s 6m36.109s
2 6m38.298s 0m0.008s 6m36.457s
3 6m38.867s 0m0.016s 6m37.497s
AVG 6m38.172s 0m0.010s 6m36.688s
reiserfs 1 6m42.259s 0m0.016s 6m41.249s
2 6m42.959s 0m0.020s 6m41.693s
3 6m43.689s 0m0.008s 6m41.901s
AVG 6m42.969s 0m015s 6m41.614s
xfs 1 cat /tmp/1GB >/dev/null 0m18.683s 0m0.044s 0m1.268s
2 0m17.957s 0m0.104s 0m1.344s
3 0m18.578s 0m0.096s 0m1.072s
AVG 0m18.406s 0m0.081s 0m1.228s
jfs 1 0m17.662s 0m0.084s 0m1.344s
2 0m21.467s 0m0.088s 0m1.232s
3 0m21.963s 0m0.044s 0m1.020s
AVG 0m20.364s 0m0.072s 0m1.199s
ext3 1 0m27.926s 0m0.072s 0m0.972s
2 0m30.084s 0m0.084s 0m1.268s
3 0m29.976s 0m0.076s 0m1.242s
AVG 0m29.329s 0m0.077s 0m1.161s
reiserfs 1 0m25.574s 0m0.068s 0m1.316s
2 0m25.596s 0m0.072s 0m1.396s
3 0m25.777s 0m0.080s 0m1.640s
AVG 0m25.649s 0m0.073s 0m1.451s
xfs 1 cp /tmp/1GB /tmp/1GB-2 0m37.958s 0m0.116s 0m6.180s
2 0m37.942s 0m0.112s 0m6.360s
3 0m38.271s 0m0.144s 0m5.656s
AVG 0m38.057s 0m0.124s 0m6.065s
jfs 1 0m35.912s 0m0.084s 0m3.592s
2 0m40.615s 0m0.092s 0m3.884s
3 0m40.939s 0m0.072s 0m3.716s
AVG 0m39.155s 0m0.083s 0m3.731s
ext3 1 0m53.559s 0m0.132s 0m6.468s
2 1m4.545s 0m0.176s 0m6.472s
3 0m58.256s 0m0.248s 0m8.009s
AVG 0m58.787s 0m0.185s 0m6.983s
reiserfs 1 0m49.094s 0m0.264s 0m12.689s
2 0m49.247s 0m0.308s 0m12.393s
3 0m49.159s 0m0.324s 0m12.137s
AVG 0m49.167s 0m0.299s 0m0.406s
xfs 1 shred /tmp/1GB 8m2.776s 0m6.536s 0m51.771s
2 8m4.099s 0m6.316s 0m34.350s
3 8m3.941s 0m6.496s 0m31.086s
AVG 8m3.605s 0m6.449s 0m39.069s
jfs 1 7m43.197s 0m6.236s 0m28.686s
2 9m17.987s 0m6.256s 0m31.830s
3 9m28.499s 0m6.320s 0m38.746s
AVG 8m49.894s 0m6.271s 0m33.087s
ext3 1 11m40.199s 0m6.320s 0m58.544s
2 12m18.667s 0m7.068s 0m58.628s
3 12m21.255s 0m6.788s 1m17.253s
AVG 12m6.707s 0m6.722s 1m4.808s
reiserfs 1 11m0.982s 0m6.720s 1m3.416s
2 11m2.494s 0m7.312s 1m5.308s
3 11m1.767s 0m6.624s 1m7.236s
AVG 11m1.748s 0m6.885s 1m5.320s
xfs 1 cat /tmp/1GB >>/tmp/1GB-2 0m39.550s 0m0.336s 0m5.580s
2 0m40.253s 0m0.128s 0m6.036s
3 0m38.557s 0m0.184s 0m5.744s
AVG 0m39.453s 0m0.216s 0m5.787s
jfs 1 0m35.387s 0m0.108s 0m3.396s
2 0m42.261s 0m0.112s 0m3.776s
3 0m40.691s 0m0.060s 0m3.612s
AVG 0m39.446s 0m0.093s 0m3.595s
ext3 1 1m2.566s 0m0.176s 0m7.016s
2 0m54.163s 0m0.248s 0m7.324s
3 0m59.388s 0m0.156s 0m7.320s
AVG 0m58.706s 0m0.193s 0m7.220s
reiserfs 1 0m49.849s 0m0.188s 0m13.413s
2 0m52.749s 0m0.228s 0m13.221s
3 0m49.046s 0m0.228s 0m13.621s
AVG 0m50.548s 0m0.215s 0m13.418s
xfs 1 rm /tmp/1GB 0m0.035s 0m0.000s 0m0.000s
2 0m0.262s 0m0.000s 0m0.232s
3 0m0.047s 0m0.004s 0m0.016s
AVG 0m0.115s 0m0.013s 0m0.083s
jfs 1 0m0.148s 0m0.000s 0m0.004s
2 0m0.210s 0m0.000s 0m0.052s
3 0m0.233s 0m0.000s 0m0.036s
AVG 0m0.197s 0m0.000s 0m0.031s
ext3 1 0m0.853s 0m0.004s 0m0.112s
2 0m0.921s 0m0.000s 0m0.114s
3 0m0.919s 0m0.000s 0m0.116s
AVG 0m0.898s 0m0.001s 0m0.114s
reiserfs 1 0m0.801s 0m0.000s 0m0.188s
2 0m0.894s 0m0.000s 0m0.180s
3 0m1.006s 0m0.000s 0m0.184s
AVG 0m0.901s 0m0.000s 0m0.184s
xfs 1 rpm --rebuild kernel-2.6.18-0.rc1.1ark.src.rpm &>/tmp/build.log 257m03.239s 225m24.290s 18m43.870s
2 257m44.235s 225m32.118s 18m41.242s
3 256m43.697s 225m13.625s 18m45.502s
AVG 257m10.390s 225m23.344s 18m43.538s
jfs 1 242m38.461s 224m14.325s 16m24.202s
2 248m56.931s 220m21.942s 16m46.827s
3 240m16.178s 219m16.178s 16m35.506s
AVG 243m58.190s 221m17.482s 16m35.512s
ext3 1 241m5.628s 222m59.828s 16m39.070s
2 244m26.779s 223m49.511s 17m2.936s
3 239m2.752s 221m1.029s 16m29.090s
AVG 241m31.720s 222m36.789s 16m43.699s
reiserfs 1 239m36.781s 221m18.642s 17m8.484s
xfs 1 tar xf linux-2.6.17.tar.bz2 1m24.834s 0m45.655s 0m7.532s
2 1m16.487s 0m45.239s 0m7.244s
3 1m16.974s 0m45.371s 0m7.108s
AVG 1m19.432s 0m45.522s 0m7.295s
jfs 1 0m54.270s 0m45.355s 0m5.520s
2 0m53.102s 0m44.739s 0m5.916s
3 0m53.435s 0m45.399s 0m5.940s
AVG 0m53.602s 0m45.164s 0m5.792s
ext3 1 0m58.534s 0m45.551s 0m5.808s
2 1m1.471s 0m45.371s 0m6.804s
3 0m58.610s 0m45.271s 0m5.468s
AVG 0m59.538s 0m45.398s 0m6.027s
xfs 1 find linux-2.6.17 >/dev/null 0m0.097s 0m0.036s 0m0.060s
2 0m0.102s 0m0.040s 0m0.060s
3 0m0.108s 0m0.048s 0m0.052s
AVG 0m0.102s 0m0.041s 0m0.057s
jfs 1 0m0.196s 0m0.036s 0m0.048s
2 0m0.078s 0m0.044s 0m0.032s
3 0m0.080s 0m0.040s 0m0.040s
AVG 0m0.118s 0m0.040s 0m0.040s
ext3 1 0m0.128s 0m0.036s 0m0.056s
2 0m0.028s 0m0.028s 0m0.060s
3 0m0.088s 0m0.028s 0m0.060s
AVG 0m0.043s 0m0.030s 0m0.059s
xfs 1 find linux-2.6.17 -type f -exec sh -c 'cat {} >/dev/null' ';' 1m38.779s 0m37.314s 1m1.468s
2 1m38.062s 0m37.498s 1m0.396s
3 1m37.622s 0m37.446s 1m0.180s
AVG 1m38.154s 0m37.419s 1m0.681s
jfs 1 1m17.404s 0m23.073s 0m54.203s
2 1m17.184s 0m23.093s 0m54.095s
3 1m17.622s 0m23.329s 0m54.287s
AVG 1m17.403s 0m23.165s 0m54.195s
ext3 1 1m17.236s 0m23.689s 0m53.459s
2 1m16.834s 0m23.305s 0m53.527s
3 1m16.583s 0m23.389s 0m53.135s
AVG 1m16.884s 0m23.461s 0m53.370s
xfs 1 rm -rf linux-2.6.17 0m27.662s 0m0.104s 0m3.248s
2 0m29.462s 0m0.088s 0m3.272s
3 0m42.241s 0m0.084s 0m3.436s
AVG 0m33.122s 0m0.092s 0m3.319s
jfs 1 0m3.458s 0m0.076s 0m1.040s
2 0m3.454s 0m0.068s 0m1.072s
3 0m2.739s 0m0.056s 0m1.088s
AVG 0m3.217s 0m0.067s 0m1.067s
ext3 1 0m0.836s 0m0.044s 0m0.744s
2 0m0.844s 0m0.036s 0m0.764s
3 0m0.825s 0m0.052s 0m0.728s
AVG 0m0.835s 0m0.044s 0m0.745s

Conclusion

jfs performs best on all the "theoretical" tests, and performs very well on real-world tests like compiling a kernel.

ext3 is fairly slow on theoretical tests, but outperforms even jfs in the real world tests, and remains one of the best filesystems.

Our choice to stick with ext3 over jfs is based mostly on the fact that it has a lot more testing in the Linux world, and doesn't seem to bring a notable performance disadvantage -- jfs is definitely worth another consideration for the next release though. It definitely seems to be the right choice for working with large files.

      • update--we now use jfs as default***
Personal tools
Namespaces
Variants
Actions
Navigation
Main Page Navigation
Toolbox