2GB-Files ext4,xfs,btrfs Benchmark

Da ich derzeit meinen Server aufrüste stellt sich unter anderem die Frage nach dem Dateisystem. Für Root & Homes habe ich bereits auf anderen Systemen ext4 seit längerem im Einsatz, für meine Video-Partition war ich aber nicht ganz sicher. Auf dieser liegen Rohdaten z.B. meines Podcasts oder von Konvertieren von VHS etc, also viele große Dateien. Bisher durfte sich xfs um die Dateien kümmern, mit ext4 soll aber nun xfs Konkurrenz bekommen haben. Da die meisten Tests recht allgemein gehalten waren musste ein eigenes Script ran. Zusätzlich zu xfs und ext4 habe ich noch ext4 mit aktivem „nobarrier“ sowie btrfs getestet. System ist ein AMD Opteron 2358 (Quad 2,4GHz) mit 4GB RAM, Storage ein 3-Disk RAID5 mit ~235MB/s Durchsatz bei hdparm -t.

I/O-Performance

Erst ein Blick auf lesen, schreiben, simultanen Lese-/Schreibzugriffen und löschen. Datenquelle fürs schreiben war ein tmpfs, lesen ging auf /dev/null:

write read rw del
ext4 84,4 114,0 49,3 1.941,5
ext4nb 83,1 197,0 29,9 10.077,5
xfs 54,6 207,0 29,9 109.462,1
btrfs 86,0 200,0 51,9 2.006,6

Wie man sieht hat bei Schreibzugriffen btrfs die virtuelle Nase knapp vor den ext4-Varianten, xfs ist gut ein Fünftel langsamer. Wenns ums Lesen geht kann xfs deutlich punkten, auch wenn btrfs hier knapp dran ist. Der Ausrutscher von ext4 mit Barriers mach für mich zwar keinen Sinn, war aber reproduzierbar. Bei parallelen Zugriffen spielt btrfs wieder sein Asse aus, ext4 mit Barriers ist aber knapp dahinter. Xfs leidet hier unter der schlechten Schreibperformance, Ext4nb – tja, gute Frage… Beim Löschen zahlt sich das XFS-Design wieder aus: Löschen geht fast zehn mal schneller als bei ext4nb – mit Barriers macht ext4 jedoch eine eben so schlechte Figur wie btrfs.

Schaut man nur auf die (theoretischen) Zahlen zeigt sich btrfs schon jetzt als klarer Sieger, jedoch ist es noch in der Entwicklungsphase und kann entsprechend zu Stabilitätsproblemen führen. XFS hält sich bei großen Dateien noch knapp vor EXT4 ohne Barriers, mit Barriers ist die (hier) mangelhafte Lesegeschwindigkeit nicht entschuldbar.

Praxis
Da ich noch ein paar Sachen zu schneiden Habe einfach mal ein Praxistest: Jedes Dateisystem bekommt eine Rohdatei (2GB +/- paar MB) von einem tmpfs drauf kopiert, diese wird erst geprüft (md5sum) in ein anderes Containerformat konvertiert, danach wird von der neu erstellten Datei erneut eine MD5-Summer erstellt, im Anschluss greift eine vorbereitete Schnittliste und speichert eine geschnittene Version. Zum Abschluss wird die Quell- und Zwischendatei gelöscht. Alles nahezu reine I/O-Operationen, da nichts umcodiert werden muss.

ext4nb

xfs

btrfs

ext4

Dateisystem Zeit in Sec.
171
174
187
199

Wie man sieht kann btrfs seinen theoretisch deutlichen Vorsprung nicht halten und fällt auf Platz 3 – hier fehlen wohl noch die nötigen Optimierungen um in der Praxis die guten I/O-Werte auszuspielen. ext4nb schafft es auf den ersten Platz, dicht gefolgt von xfs. Ext4 mit aktiven Barriers, welche auf druck der Community nun Standard sind, liegt auch in diesem Test abgeschlagen auf dem letzten Platz.

Fazit
Wenn es um große Dateien geht sind ext4 ohne Barriers und XFS nahezu gleich auf. XFS ist jedoch fast 14 Jahre älter und ist daher als stabiler anzusehen, zumdem nutzt es vorhandenen Speicherplatz besser aus. Die technischen Grenzen der Dateisysteme sind für aktuelle Rechner eher uninteressant, jedoch unterstützt nur ext4 das nachträgliche verkleinern einer Partition.

Ich für meinen Teil werde für große Dateien damit bei XFS bleiben.

Pille Palle Pumm – Wer Paypal fragt bleibt dumm

Und auf gehts zu einem kleinen Tauchgang in die Abgründe des Paypal-Supports. Vorausgegangen war eine Differenz mit einem Käufer, welcher ohne den Abschluss einer Sendungsverfolgung abzuwarten Geld über PayPal zurückgebucht hatte (obwohl er eigentlich das Versandrisiko tragen müsste, da er explizit unversicherten Versand gewählt hatte). Im Endeffekt wäre die Sache für mich wegen des kleinen Betrags gegessen gewesen: Ich hätte wie schon die letzten 5 Jahre Paypal nur zum Einkauf benutzt und nach diesem missglückten Versuch zu meiner eigenen Sicherheit nicht mehr als Zahlungsmethode bei eBay angeboten. Die Rechnung habe ich aber ohne Paypal gemacht: Diese berechneten kurzerhand ein paar Cent Bearbeitungsgebühr und violá: Mein Konto, welches normal konstant bei 0EUR ist (nach einem Einkauf leitet Paypal automatisch eine Lastschrift (ELV) ein und gleicht das Konto aus), befindet sich nun im Minus. Keine weiteren Einkäufe möglich. Natürlich wollte ich das Konto schnell wieder ausgleichen, der zugehörige Button zeigt dabei aber nur eine einzige Zahloption: Manuelle Banküberweisung. Diese Methode verursacht bei mir immer wieder einen Würgereitz, denn meine Banken haben einerseits etwas seltsame Sicherheitsvorstellungen welche Onlinebanking nahezu unmöglich machen – andererseits haben die Fillialen geschlossen, wenn ich Feierabend habe. Für mich keine Chance eine Überweisung zeitnah durchzuführen.

Erster Gedanke? Warum nur diese Zahlungsmethode – sonst steht doch eine ganze Batterie zur Verfügung? Lastschrift, Kreditkarten, Giropay, etc. Es folgte ein Schriftverkehr mit dem Paypal-Support, welcher es stilgerecht schaffte mir unzusammenhängende und falsche Textblöcke per Mail zu liefern – immerhin grob Themenbezogen. Meine eigentliche Frage: Warum ist es nicht möglich Paypal-Bearbeitungsgebühren per ELV zu begleichen. Ich schlüssel hier mal einige schöne Ausschnitte auf:


Die Erste Antwortmail begann mit diesem Abschnitt:

…Nach Durchsicht Ihres PayPal-Kontos konnte ich feststellen, dass Sie am
xx versucht haben, die Summe in Höhe von xx EUR per
Lastschrift zu senden, was Ihnen jedoch nicht gelungen ist…

Dies war gleichzeitig auch der erste WTF-Moment: Diese Zahlung hatte ich in meinem Schreiben nicht erwähnt – warum auch, sie wurde vor dem Problem getätigt und war zum Zeitpunkt der Mail bereits beim Empfänger korrekt angekommen. Auch auf der Paypal-Seite stand alles auf OK und der Betrag wurde bereits von meinem Konto per ELV eingezogen – kein Anzeichen davon, dass hier etwas nicht gelungen sei. Ich wies den Support darauf hin, dass von meiner Seite bei der Zahlung kein Fehler erkennbar wäre und erhielt promt eine Entschuldigung samt Aussagen, welche zeigen, dass man meinen Text offenbar nicht gelesen hatte (Der Bankeinzug war ja bereits laut Bank und Paypal-Seite abgeschlossen):

…Diese wurde dem Empfänger
bereits gutgeschrieben und in den nächsten Tagen werden wir den Betrag
von Ihrem Bankkonto einzuziehen. Es tut mir sehr leid, dass mein Kollege
da etwas verwechselt hat…

Gut, lassen wir das Thema, sinnvolle Antworten sind hier wohl nicht mehr zu erwarten.


Da wir bei diesen Zahlungen in Vorkasse gehen, müssen wir
uns hier absichern und warten bis Ihre Bank den Betrag gutgeschrieben
hat.

Der Satz fällt klar unter die Kategorie „Made my day“ – einerseits wird ELV auch bei positivem Kontostand und ohne offene ELVs nicht zum Aufladen des Kontos angeboten – gerade das war ja mein anlegen. Andererseits ist des doch etwas – öhm – seltsam sich in diesem Fall auf die Absicherung zu berufen. Ein Betrag weniger Cent ist sicher wesentlich Risikoreicher als die Zahlung einige Wochen zuvor, welche mehrere hundert Euro umfasste, ohne Murren von Paypal vorgestreckt, per ELV abgerechnet und ohne Verzögerung durchgeführt wurde.


Es tut uns Leid, jedoch mit besten Willen können wir den Prozess nicht
stoppen, oder anpassen.

Hier hängt es wohl eher an Lesekompetenz und Wollen statt an können – von stoppen war nie die Rede – es war eine einfache Frage – die Begründung, warum ELV nicht möglich ist lässt sich in meinem Augen kaum mit fehlenden Sicherheiten begründen.

Wir gehen davon aus, Herr Knodt, dass bei der nächsten Zahlung ELV
wieder funktioniert.

Wir entschuldigen uns für alle Unannehmlichkeiten die für Sie entstanden
sind –und wir begrüßen sie natürlich sehr als unseren Kunden. Denn durch
unsere Überprüfung machen wir Ihren Einkauf extra sicher.

Korrekt, aber auch nur den Einkauf – lassen wir das…

Am Ende wurde mir dann noch Angeboten den Betrag postalisch zu begleichen – immerhin eine Antwort, welche grob auf meine ursprüngliche Frage passen würde, auch wenn sie nicht weiterhilft. Inzwischen habe ich aufgegeben hier eine sinnvolle Antwort zu erhalten.