Dateisystem-Benchmark: ext2, ext3, ext4, xfs, jfs, reiserfs, btrfs und ntfs-3g im Vergleich
Seit das Dateisystem ext4 im Dezember 2008 Einzug in den Linux-Kernel 2.6.28 gehalten hat, setzen es immer mehr Linux-Distributionen als Standard ein. Für Linux gibt es eine ganz ordentliche Auswahl an Dateisystemen. Aber auf welches sollte man setzen? Eine Möglichkeit ist natürlich den Distributoren zu vertrauen – die werden schon wissen, was sie uns anbieten. Vertrauen ist gut, Kontrolle ist besser. Wollen wir uns das Ganze an Hand eines Benchmarktests mal genauer ansehen. Unter die Lupe genommen wurden die stabilen Dateisysteme ext2, ext3, ext4, xfs, und jfs.
Zusätzlich wurden btrfs und ntfs via ntfs-3g aufgenommen. Diesen beiden laufen aber außerhalb der Konkurrenz. Btrfs soll irgendwann ext4 ablösen und befindet sich in einem frühen Entwicklungs-Stadium. Es ist alles andere als ratsam, dieses Dateisystem für produktive System einzusetzen. Ntfs-3g setzt auf Fuse auf, gilt als stabil und bietet Zugang zum Windows-Dateisystem ntfs. Auf einem Linux-Server wird niemand ntfs einsetzen. Im Privatgebrauch gibt es jedoch häufig Dual-Boot-Konfigurationen zwischen Linux und Windows. Manchmal möchte man eben von Linux auf gewisse Daten der Windows-Partition zugreifen. Dies ist in den meisten Fällen mit ntfs-3g problemlos möglich. Aber ist es wirklich performant?
Wie haben wir gebenchmarkt?
Der Benchmark wurde mit der Phoronix Test Suite 2.0.0 durchgeführt. Als Betriebssystem diente eine jungfräuliche Installation von Ubuntu 9.10 „Karmic Koala“ (32-bit) ohne das Einspielen jeglicher Updates. Als Kernel diente somit 2.6.31. Der Test wurde auf folgender Hardware durchgeführt: Intel Core 2 Duo E8400@3.00GHz, MSI LTD MS-7345 (Chipsatz: P35 + ICH9R), 3 Gbyte RAM und 750 Gbyte Samsung HD753LJ.
Benchmarktests sind nicht unumstritten. Gewisse Tuning-Praktiken können zwar die Leistung einzelner Komponenten erhöhen, aber auch die Ergebnisse verfälschen. In diesem Test wurden keine leistungssteigernden Mittel verwendet. Sie spiegeln also wieder, was ein Anwender nach einer Standard-Installation dieser Linux-Variante erhalten würde. Andere Linux-Distributionen könnten natürlich andere Ergebnisse liefern. Das gilt ebenso für alternative Hardware.
Lesen mit IOzone
Im ersten Test wurden alle Dateisysteme einem Lesetest einer Datei mit vier Gbyte Größe mittels IOzone unterzogen. Die Speerspitze bildet das Dateisystem ext4. Als einziges schaffte es mehr als 70 Mbyte pro Sekunde. Aber auch der mögliche Nachfolger btrfs macht hier schon einen guten Eindruck. Das Dateisystem ext2 ebenfalls ein exzellentes Ergebniss auf. Es ist aber auch das einzige in der Testreihe, das kein Journal mit sich bringt. Dies ist ein nicht zu unterschätzender Nachteil. Auch das über Fuse eingebundene ntfs-3g kommt ganz gut hinterher. Es hat sogar eine höhere Performance als das native reiserfs. IOzone wurde drei mal durchgeführt und die Grafik zeigt einen Mittelwert.
Schreiben mit IOzone
Wie sieht es nun mit dem Schreibzugriff aus? Ebenfalls wurde mit IOzone und einer vier Gbyte großen Datei getestet. Hier zeigen sich nun ganz klar die Nachteile von ntfs-3g. Im Lesen noch ganz gut, beim Schreiben unterirdisch langsam. Es ist fast fünf Mal so langsam als der Gewinner – abermals ext4. Auch xfs und ext3 können sich im Schreibtest ganz gut behaupten. IOzone wurde drei mal durchgeführt und die Grafik zeigt einen Mittelwert.
PostgreSQL-Benchmark pgbench
Im PostgreSQL-Benchmark zeigt reiserfs die Muskeln und liegt knapp vor ext4. Warum xfs und btrfs hier komplett versagten, ist nicht ganz klar. Für diese beiden Dateisysteme lief der Test anstatt drei sogar sieben mal durch. Es kamen aber immer ähnliche Werte raus. Im Durchschnitt schaffte xfs nur 48,22 Transaktionen pro Sekunde und btrfs 22,81.
MP3-Encoding
Im letzten Test haben wir eine 75 Mbyte große WAV-Datei in das MP3-Format mittels lame umgewandelt. Wie zu erwarten ist das Dateisystem bei Aktionen wie diesen völlig irrelevant. Hier ist zum Großteil die CPU gefragt. Die minimalen Unterschiede darf man getrost vernachlässigen.
Fazit:
Für die meisten Anwender dürfte im Moment das Dateisystem ext4 die richtige Wahl sein. Das sich derzeit in der Entwicklung befindliche btrfs sieht allerdings schon recht vielversprechend aus. Btrfs-Systeme lassen sich übrigens aus ext-Partition mittels btrfs-convert /dev/hdX erzeugen. Es sei allerdings an dieser Stelle noch mal ausdrücklich gewarnt, dass es sich nicht für produktive Systeme eignet. Datenverlust ist nicht auszuschließen. Ntfs-3g sollte man wirklich nur einsetzen, wenn man ein Dual-System hat und auf die Windows-Partition zugreifen möchte. Davon Lesen – ja. Festplatten-intensive Anwendungen darüber laufen lassen – wenn man Zeit hat. Warum Reiser4 im Test nicht auftaucht? Es wird vom Linux-Kernel bis heute nicht offiziell unterstützt. Auch die Weiterentwicklung des Dateisystems steht in den Sternen.






Dezember 11th, 2009 at 14:08
Waren Fedora nicht wieder die ersten, die ext4 eingebaut hatten?
Ich frage mich, wann Windows7 mit ext4 umgehen können wird.
Dezember 11th, 2009 at 14:55
Hi PropheT, schön mal wieder was von dir zu sehen :-) Unser Autor hat auch dazu einen passenden Workshop parat – allerdings nicht hier, sondern beim TecChannel. Link
Dezember 11th, 2009 at 15:12
@PropheT: Richtig, Fedora war die erste große Distribution, die ext4 als Standard-Dateisystem eingesetzt hat.
@Mo: Den Artikel gibts auch schon etwas aktueller. Der da behandelt Datenaustausch zwischen Windows 7 und Linux :)
http://www.tecchannel.de/server/linux/1783978/datenaustausch_zwischen_linux_windows_7_und_server_2008_r2/
Januar 16th, 2010 at 09:08
Also ich kann den Test mit ntfs nicht bestätigen. Mit einem Aufruf von iozone -s 4194304 -f /media/Passport/testfile bekomme ich ca. 30MB/s auf eine externen 2,5 Zoll USB-Festplatte geschrieben. Auch das Kopieren von ca. 40 GB brachte einen ähnlichen Datendurchsatz. Also muss bei deinem Test etwas schief gelaufen sein, oder es gab ein paar Patches. Auch wenn ich kein M$-Freund bin, so wird das ntfs-Dateisystem (Formatiert unter W7) doch recht gut unterstützt und ist eine gute Alternative wenn es um den Datenaustausch geht.
Mein System: ubuntu 9.10 (64bit) und Intel Core 2 Duo E8400@3.00GHz :-)
Januar 16th, 2010 at 12:24
Hallo Ator,
Der Test lief drei mal durch und die Ergebnisse sind ein Durchschnittswert. Wie gesagt, habe ich eine jungfräuliche Installation genommen und keine Patches eingespielt. Ich hab außerdem mit einem 32-Bit-System getestet. Wenn ich zeit hab, mach ich das noch mal mit 64-Bit – aber einen so gravierenden Unterschied sollte das nicht machen.
Für Datenaustausch zwischen Linux und Windows ist NTFS mittlerweile sicher die richtige Wahl. Für Plattenintensive Arbeiten würde ichs persönlich trotzdem nicht hernehmen.
Februar 22nd, 2010 at 16:19
Hallo,
1) Bei großen Dateien (bspw. 4GB) und genau dieser Samsung-Platte (habe dieselbe) müsste der Benchmark beim Lesen bei deutlich über 100MB/s liegen! Mglw. ist das Mainboard das NAdelöhr.
2) Geschwindigkeitsnachteile bei ntfs-3g sind bei mir ähnlich, wennauch nicht ganz so drastisch. Wird auch so von den Entwicklern gesagt.
3) Schade, dass Du nur eine einzelne große Datei kopiert hast (außer dem SQL-Bench). Die Vorteile der einzelnen Filesysteme treten erst bei vielen gemischten Dateien und Zugriffen zutage. Bspw. wirbt XFS damit, dass es auch bei mehreren Terrabyte noch performant arbeitet.
Auch hast Du nicht detailiert beschrieben, wie Du gemesssen hast (bspw. besteht die HD aus mehreren Partitionen?)
So hat Dein Test leider wenig Aussagekraft, sorry