Künstliche Intelligenz
Linux 6.16: Entspannt zu mehr Leistung
In der Nacht von Sonntag auf Montag gab Linus Torvalds Linux 6.16 frei – mit einem ausgedehnten Blick auf die Planung der nächsten Version. Über Linux 6.16 selbst verlor Torvalds lediglich vier Sätze in der sieben Absätze langen Release-Meldung. Die Arbeiten an der neuen Kernel-Version seien sehr ruhig und entspannt gewesen. In den Kernel-Neuling seien weder viele noch umfangreiche Patches eingeflossen. Dennoch hält der Kernel Interessantes bereit, etwa optimiertes USB-Audio-Streaming, Datenbank-optimiertes XFS und die Möglichkeit, den Kernel für das eigene System maßzuschneidern.
USB-Audio völlig losgelöst
Eingebettete Systeme (Embedded Systems) müssen recht knausrig mit den verfügbaren Energieressourcen umgehen. Im Audiobereich hilft Linux 6.16 den Winzlingen dabei jetzt mit „USB Audio Offloading“. Das Feature verlagert die Verarbeitung von Audiodaten vom Hauptprozessor (CPU) auf einen dedizierten Audio-Controller. Dadurch können Audiosignale übertragen werden, während der restliche, nicht benötigte Teil des Systems – einschließlich der energiehungrigen CPU – in den Dämmerschlaf gehen kann.
Damit lässt sich trotz laufendem Audio-Stream Energie einsparen, was besonders bei mobilen und batteriebetriebenen Geräten die Akkulaufzeit deutlich verlängert. Die Linux-Schwester Android kennt dieses Offloading schon länger, allerdings in verschiedenen Implementierungen. Der Linux-Kernel bietet nun eine einheitliche Lösung.
Optimiertes XFS
Das Dateisystem XFS unterstützt mit der neuen Kernel-Version „large atomic writes“. Dahinter verbirgt sich das Zusammenfassen von mehreren Dateisystemblöcken beim Schreiben als atomare Vorgang. Es werden demnach entweder alle Blöcke geschrieben oder keiner. Sehr plastisch drückt es das englische Synonym für „atomic writes“ aus: „untorn writes“, also „unzerrissene Schreibvorgänge“.
Lesen Sie auch
Von diesem Feature profitieren insbesondere Datenbanken mit Datenhaltung im Dateisystem. Beispiele wären übliche Set-ups vom MySQL und MariaDB.
Schnelleres ext4
Viele Anwendungen stellen über den System-Call fsync sicher, dass ihre Daten auf dem Festspeicher gelandet sind. Dieser Aufruf zur Synchronisierung aktualisierte bei ext4 bislang mehr Metadaten des Dateisystems als eigentlich notwendig wären. Nun schreibt ext4 nur noch die minimal benötigten Informationen ins Journal und weil weniger Daten zu schreiben sind, wird der Vorgang schneller. Auch mit diesen ausgedünnten Metadaten kann das Dateisystem nach einem Crash anhand des Journals sicher wiederhergestellt werden.
Außerdem bringt ext4 jetzt auch „large folio support“ für reguläre Dateien. Ein Folio ist im Linux-Kernel eine logische Gruppierung von mehreren Speicherseiten (Pages, standardmäßig 4 KB). Mit Large Folios fasst der Kernel mehrere dieser Seiten zusammen, um eine einzelne, größere Einheit (beispielsweise 16 KB, 64 KB oder sogar größer) zu bilden.
Größere Folios reduzieren den Verwaltungsaufwand, da weniger einzelne Speicherblöcke gemanagt werden müssen. Das steigert insbesondere bei sequenziellen I/O-Operationen die Performance deutlich. Der Kernel kann zudem effizienter arbeiten, weil weniger Metadaten benötigt werden, um größere Datenmengen zu adressieren. Ebenfalls sinkt der Verwaltungsaufwand für die CPU und Caches, da sich auch die CPU-Operationen beim Zugreifen auf große Dateien reduzieren.
Lokal optimal
Apropos Leistungsoptimierung: Mit Version 6.16 kommt die Kernel-Build-Option X86_NATIVE_CPU hinzu. Damit lässt sich der Linux-Kernel gezielt auf die lokal vorliegende CPU anpassen, statt für eine CPU-Familie kompiliert zu werden. Dazu nutzt der Build-Prozess bei eingeschaltetem X86_NATIVE_CPU die Compiler-Optimierung `-march=native`. Der Compiler optimiert den Code dann maßgeschneidert für das lokale System und kitzelt noch das letzte Leistungsoptimum aus der CPU heraus.
Interessant ist das für den Eigenbau auf dem heimischen PC, aber auch für den Rollout eines optimierten Kernels in Server-Clustern und -Farmen. Auch Nutzer von Gentoo oder Linux from Scratch erhalten hiermit ein neues Optimierungsschräubchen.
Zu beachten ist allerdings: Der Kernel läuft dann unter Umständen nicht mehr auf anderen Systemen. Wer die Platte aus System A rausnimmt und in System B reinsteckt, kommt eventuell nicht weit, sondern provoziert einen Kernel-Crash.