Linux 7.4 definiert die Effizienz des Kernels neu: Workqueues werden bis zu 100-mal schneller
10:47, 23.10.2026
An der Linux-Version 7.4 wird derzeit eine wichtige Leistungsoptimierung vorgenommen, die sich besonders für High-End-Server als nützlich erweisen wird. Die Änderung betrifft die Verbesserung der Art und Weise, wie Linux seine Arbeitswarteschlangen leert, die vom Linux-Kernel zur asynchronen Ausführung von Aufgaben genutzt werden.
Bisher musste Linux beim Leeren einer Arbeitswarteschlange alle Arbeitswarteschlangen aller CPUs im System überprüfen, auch wenn die meisten dieser CPUs nichts zu tun hatten. Durch die neue Änderung überprüft Linux die Arbeitswarteschlangen nur noch, wenn sie seit dem letzten Leeren genutzt wurden.
Der langjährige Linux-Entwickler Tejun Heo hat die Änderung implementiert, die bereits in den Entwicklungscode von Linux 7.4 aufgenommen wurde. Die Verbesserung zielt auf unnötigen Overhead ab, insbesondere auf Systemen mit vielen CPU-Kernen.
Benchmarks zeigen einen dramatischen Leistungssprung
Die ersten Zahlen sind beeindruckend. Auf einem System mit 192 CPUs und zwei Knoten stieg die Anzahl der Flush-Vorgänge pro CPU-Workqueue im Leerlauf von 40.000 Operationen pro Sekunde auf 4,2 Millionen. Eine ungebundene Workqueue im Leerlauf verbesserte sich von 450.000 auf 4,3 Millionen Operationen pro Sekunde.
Dies verdeutlicht, wie viel Overhead auf die Verwaltung und nicht auf die eigentliche Verarbeitung entfällt. Diese Verbesserung ist besonders hilfreich für das Linux-Dateisystem XFS, das seine Arbeitswarteschlange möglicherweise bei jedem „log force“-Vorgang leert.
Dennoch hängt die Verbesserung von der Arbeitslast ab. Experimente mit extrem aktiven Warteschlangen zeigten, dass sich die pro CPU geführten Arbeitswarteschlangen in keiner Weise verbesserten; ungebundene Arbeitswarteschlangen wurden hingegen um 15 bis 20 Prozent langsamer.
Unsere Sichtweise
Dies ist ein Beispiel dafür, warum Kernel-Programmierung von entscheidender Bedeutung ist, auch wenn auf der Benutzeroberfläche nichts Neues auftaucht. Der Grund, warum es notwendig ist, jeglichen unnötigen Overhead zu beseitigen, liegt darin, dass dies bei Speicheroperationen mit vielen Kernen auf dem Server zu Effizienz führt.
Möchten Sie mehr über die geplanten Verbesserungen der Linux-Leistung erfahren? Teilen Sie diesen Beitrag mit anderen Linux-Fans.