ByteDance-Algorithmus von China für Jahresende erwartet: 14 % Leistungssteigerung bei Linux 7.3 NVMe
2026-07-03 10:32
Merken

de.wedoany.com-Bericht: Der Ingenieur Fengnan Chang von ByteDance hat einen Algorithmus für den Linux-Kernel entwickelt, der den Pfad für direkte I/O-Vorgänge vereinfacht, um Leistungsengpässe bei PCIe Gen5 NVMe-SSDs im Szenario von 4-KB-Zufallslesevorgängen zu beheben. Der Patch wurde in das Git-Repository des VFS-Subsystems integriert und wird voraussichtlich mit der Version Linux 7.3 Ende dieses Jahres offiziell veröffentlicht.Leistungsvergleich vor und nach der Optimierung. Quelle.

Bei der Durchführung von 4-KB-Zufallslesevorgängen auf einer PCIe Gen5 NVMe-SSD stellten die Ingenieure fest, dass die Ursache für den Durchsatzengpass auf der Betriebssystemebene lag. Der Linux-Kernel verbrauchte bei der Verarbeitung jedes kleinen Blockanfrage zu viele CPU-Ressourcen, wobei der Overhead des IOmap-Subsystems besonders ausgeprägt war. IOmap ist für die Abbildung logischer Dateiadressen auf physische Festplattenblöcke bei direkten I/O-Vorgängen zuständig, doch die Speicherzuweisung für Hilfsstrukturen und die Wartung komplexer Zustandsautomaten beanspruchten erhebliche Rechenressourcen und stellten den Hauptengpass für einen hohen Durchsatz dar.

Der von Fengnan Chang entwickelte vereinfachte direkte I/O-Pfad (simple dio path) reduziert die Latenz, indem ressourcenintensive Operationen entfernt werden. Der Mechanismus erfordert, dass eine Anfrage vier Bedingungen gleichzeitig erfüllt: Der Vorgangstyp ist ausschließlich Lesen; die gelesene Datenmenge überschreitet nicht die Dateisystemblockgröße (normalerweise 4 KB); die Zieldatei ist nicht verschlüsselt; das Dateisystem ist EXT4 oder XFS. Anfragen, die diese Bedingungen erfüllen, umgehen die Zustandsautomaten und die dynamische Speicherzuweisungsphase des IOmap-Subsystems und werden über den kürzesten Pfad direkt an die untere Ebene des Linux-Kernel-I/O-Stacks gesendet.

Tests in Kombination mit dem io_uring-Subsystem zeigten, dass die Leistung bei 4-KB-Zufallslesevorgängen auf EXT4 und XFS von 1,92 Millionen IOPS auf 2,19 Millionen IOPS gesteigert wurde, was einer Verbesserung von etwa 14 % entspricht. Derzeit ist dieser als „IOmap Simple DIO“ bezeichnete Patch geprüft und in den Branch vfs-7.3.iomap des Git-Repositorys des VFS-Subsystems integriert. Der Code wird an den Hauptzweig von Linus Torvalds übermittelt und in das Zusammenführungsfenster von Linux 7.3 aufgenommen.

 

Diese Kurznachricht stammt aus der Übersetzung und Weiterverbreitung von Informationen aus dem globalen Internet und von strategischen Partnern. Sie dient lediglich dem Austausch mit den Lesern. Bei Urheberrechtsverletzungen oder anderen Problemen bitten wir um rechtzeitige Mitteilung, und wir werden die notwendigen Änderungen oder Löschungen vornehmen. Die Weitergabe dieses Artikels ist ausdrücklich ohne formelle Genehmigung verboten.E-Mail: news@wedoany.com