Die Neuerungen von Linux 4.14

Seite 3: Kompression für Btrfs und Squashfs & Quota-Optimierungen

Inhaltsverzeichnis

Das Btrfs-Dateisystem und das bei vielen Live-Linuxen verwendete Kompressions- und Image-Dateisystem SquashFS können Daten nun mit Zstandard (kurz: Zstd) komprimieren. Dieser verlustfreie Kompressionsalgorithmus zeichnet sich durch eine Reihe verschiedener Kompressionslevel aus, durch die sich Packdichte sowie der zum Komprimieren benötigte Zeit- und Rechenaufwand flexibel gegeneinander abwägen lassen. Dabei soll Zstd ähnlich schnell komprimieren können wie LZ4, aber [in einer anderen Kompressionsstufe] auch eine an Packqualität erreichen können, die an jene von LZMA heranreicht; beim Dekomprimieren sollen alle drei auf einem ähnlichen Niveau liegen und damit knapp doppelt so schnell sein wie das von gzip verwendete Zlib. Das behauptet zumindest Nick Terrell, der Support für Zstd in den Kernel eingebracht hat und genau wie der Zstd-Entwickler bei Facebook in Lohn und Brot steht.

Ergebnisse eines Vergleichstests der Zstd-Entwickler.

(Bild: Zstd-Dokumentation )

Terrell hat darüber hinaus auch das Xxhash Modul eingebracht, das Support für die von Zstd verwendeten Hash-Algoithmen xxh32 und xxh64 nachrüstet. Diese sind nicht für kryptografische Zwecke geeignet, sondern nur zur Prüfsummenberechnung – dabei sollen sie aber deutlich schneller arbeiten als Checksumming-Algorithmen wie CRC32.

Hintergründe zum Ganzen erläutern die Zstd-Website und ein Merge-Commit-Kommentar. Etwas mehr in die Tiefe sowie Messergebnisse zu xxh32/xxh64 und zstd finden sich in den Kommentaren der Commits, mit denen Xxhash und Zstd in Linux einflossen; weitere liefern die Änderungen, die Zstd-Support in Btrfs und SquashFS nachgerüstet haben.

Beim Ext4-Dateisystem gab es diesmal nur wenige Änderungen. Eine davon beseitigt ein Skalierungsproblem. Dadurch soll die Menge der maximal pro Sekunde erzeugten Dateien auf Systemen mit vielen CPU-Kernen teilweise drastisch steigen – laut dem zuständigen Entwickler legte das Dateisystem in einem Benchmark sogar um das Zehnfache zu.

Einen Performance-Zuwachs beim Anlegen von Dateien verspricht auch ein Schwung von Änderungen am Quota-Code, mit dem sich die Menge der von Anwendern verwendbaren Dateisystem-Ressourcen limitieren lässt. Der zuständige Subsystem-Entwickler erwähnt Berichte, denen zufolge Ext4 in Tests ungefähr um den Faktor 2 zulegte.

Die Eignung für Android-Geräte zu verbessern ist eines der Ziele der Änderungen an F2FS (Flash-Friendly File System). Das soll beispielsweise durch Patches erreicht werden, die die Performance beim Zusammenspiel mit der Embedded-Datenbank SQLite verbessern sollen (u. a. 1, 2). Außerdem beherrscht das für Flash-Datenträger optimierte Dateisystem jetzt sowohl Project Quota als auch Journalled Quota.

Durch Umbauten an CIFS kann das Dateiystem nun auch erweiterte Attribute (EAs/Xattr) auf Samba- und Windows-Freigaben lesen und schreiben, die SMB2 und neuer verwenden.

Neben den erwähnten Änderungen gab es noch zahlreiche weitere, die die Kommentare der Merge-Window-Commits zu den Dateisystemen Btrfs, FUSE, GFS2, NFS (1, 2), NFSd, Orangefs, Overlayfs/OVL, XFS nennen.

Eine der Optimierungen an BFQ beschleunigte einen Test um 125 Prozent.

(Bild: kernel.org )

Unter den wesentlichen Änderungen am Block-Layer (1, 2, 3) sind zahlreiche Optimierungen, die Performance-Probleme des bei Linux 4.12 integrierten Storage-I/O-Schedulers BFQ (Budget Fair Queueing) beheben. Darunter ist beispielsweise eine für Flash-Datenträger relevante Optimierung, die bei einem Benchmark auf einem Einplatinencomputer den Durchsatz um 125 Prozent steigern konnte; außerdem haben die Entwickler die Dokumentation zum Feintuning von BFQ verbessert. Ein anderer Satz von Änderungen beseitigt ein Skalierungsproblem in Blq-Mq, durch das ein Aktivieren von Inflight Accounting die Datenträger-Performance erheblich reduzierte.

Allerlei Detailverbesserungen gab es auch bei CEPH, Device Mapper, Libata, Libnvdimm, MD, MDT, MMC, Pstore, SCSI und der bei Linux 4.13 grundlegend überarbeiteten Writeback-Fehlerhandhabung.