Nach den ReFS-Verbesserungen von Windows erhält Linux Leistungssteigerung für F2FS, Btrfs und EXT4

Microsoft hat die Unterstützung für ReFS (Resilient File System) in den letzten Windows 11 Insider-Builds nach und nach erweitert. Zum ersten Mal wurde im Januar eine versteckte Funktion im Dev-Build 25281 entdeckt, die es Nutzern ermöglicht, Windows 11 auf einem ReFS-Volume zu installieren. Seitdem sind weitere ReFS-basierte Funktionen wie "Dev Drive"-VHD-Volumes hinzugekommen. In einem der jüngsten Canary-Channel-Builds hat Microsoft auch die zugrunde liegende ReFS-Version auf 3.10 aktualisiert.

Während die Verwendung von ReFS unter Windows zunimmt, macht Linux andererseits auch stetige Fortschritte bei einigen seiner Dateisysteme. Aus einigen der jüngsten Linux-Kernel-Patches geht hervor, dass einige der beliebtesten Linux-Dateisysteme, das Flash-Friendly File System (F2FS), das B-Tree Filesystem (Btrfs) und das vierte erweiterte Dateisystem (EXT4), deutliche Leistungssteigerungen erfahren.

Btrfs erhält zum Beispiel eine Leistungssteigerung von etwa 10 % auf SATA-SSDs. Auf NVMe-Laufwerken könnte die Verbesserung sogar noch höher ausfallen:

Immer in 64KiB Blockgröße lesen. Die tatsächliche Blockgröße beim Lesen beginnt bei 64KiB und endet bei 512K. Dies führt bereits zu einer besseren Leistung selbst für den schlimmsten Fall:

  • Mit Patchset: 404.81MiB/s
  • Ohne Patchset: 369,30MiB/s

Rund 10 % Leistungsverbesserung auf einer SATA-SSD.

In Bezug auf EXT4 gibt es eine Reihe von Optimierungen:

  • Der data=journal-Schreibpfad wurde deutlich bereinigt und vereinfacht und reduziert eine große Anzahl von data=journal-Sonderfällen durch Jan Kara.
  • Ojaswin Muhoo hat die verknüpfte Liste, die verwendet wird, um Extents zu verfolgen, die für die Inode-Vorallokation verwendet wurden, durch einen rot-schwarzen Baum im Multi-Block-Allokator ersetzt. Dies verbessert die Leistung bei Arbeitslasten, die eine große Anzahl von zufälligen Zuweisungen vornehmen.
  • Dank an Kemeng Shi für eine Menge Aufräumarbeiten und Fehlerkorrekturen im Multiblock-Allokator.
  • Matthew Wilcox hat die Codepfade für das Lesen und Schreiben von ext4-Seiten auf die Verwendung von Folios umgestellt. * Jason Yan hat ext4_fill_super() weiter in kleinere Funktionen zerlegt, um die Wartung und das Verständnis zu verbessern.
  • Josh Triplett hat einen uapi-Header für ext4 Userspace-APIs erstellt.

Schließlich sind hier die Verbesserungen an F2FS:

  • Unterstützung von nicht-power-of-two Zonengröße für zoned device
  • Entfernen der gemeinsamen Nutzung der rb_entry Struktur im extent cache
  • Refaktorierung von f2fs_gc zum Aufruf von Checkpoint in dringenden Fällen - Unterstützung von iopoll

Insgesamt sieht es so aus, als ob Linux-Kernel Version 6.4 in Bezug auf die Leistung ziemlich gut sein wird.


Quelle: via Phoronix