Linux 5.1: Performance-Verbesserungen und neue Speichertechnik

Seite 4: Performance-Optimierungen, Kompressionslevel bei Btrfs, …

Inhaltsverzeichnis

Der neue Kernel läuft ein klein wenig fixer, denn die Kernel-Hacker haben abermals einen Kniff gefunden, der den Overhead der typischerweise aktiven Spectre-v2-Schutztechnik Retpoline ein wenig reduziert. Diese Änderung hat die Entwickler des GCC zu einer Änderung motiviert, die eine Variante des Kniffs ab Version 8.4 automatisch anwendet.

Beim Aktivieren der Schutzmaßnahme für die Prozessor-Sicherheitslücke Speculative Store Bypass (SSB) können Programmierer über eine weitere Kennzeichnung jetzt festlegen, dass von der Software via exec*() gestartete Anwendungen diesen Schutz nicht zwangsweise übernehmen; diese Programme laufen dadurch flotter. Das ist etwa für Systeme interessant, wo der besonders anfällige Java-Interpreter geschützt werden soll, darüber gestartete Linux-Programme aber nicht.

Memory Compaction, das im Hintergrund der Fragmentierung des Arbeitsspeichers entgegenwirkt, verspricht jetzt deutlich größere Erfolge zu erzielen; dabei soll es den Prozessor sogar weniger belasten als zuvor, daher kann das Ganze die Performance ein klein wenig verbessern.

Änderungen rund um die parallele/asynchrone Hardware-Initialisierung beim Booten können den Start bei Systemen mit vielen SCSI Logical Units erheblich beschleunigen. Die dafür zuständigen Änderungen rüsten zudem den Kernel-Parameter driver_async_probe= nach, mit dem sich flexibler spezifizieren lässt, welche Bausteine der Kernel parallel in Betrieb nehmen darf.

Besitzer von Systemen, die viele CPU-Kerne enthalten und Swap stark nutzen, können sich über eine Optimierung beim Deaktiveren von Swap-Speicher freuen: Ein Swapoff brauchte auf dem Testsystem des zuständigen Entwicklers nicht mehr acht Minuten, sondern nur noch drei.

Durch "Airtime Fairness" können flottere Clients länger zum Zug kommen.

(Bild: Screenshot der Draytek-Webseite )

Nachdem einzelne Treiber bereits "Airtime Fairness" boten, lernten nun der WLAN-Stack des Kernels und dessen Konfigurations-Interface die Technik. WLAN-Treiber, die sich die neue Funktion zunutze machen (etwa ath9k und ath10k), können damit das Funkspektrum besser ausnutzen und so den Summendurchsatz in WLAN-Funkzellen steigern: Langsame Gegenstellen, also alte oder welche mit aktuell schlechter Verbindung, bekommen durch die Technik seltener eine Sendegelegenheit, sodass flottere Clients länger zum Zug kommen. Eine Erklärung des ATF abgekürzten Konzepts findet sich bei Draytek; einige weitere Hintergründe liefert der schon etwas ältere LWN.net-Artikel "Making WiFi fast".

Das bei Linux 4.13 eingeführte Kernel TLS (KTLS) unterstützt jetzt auch Version 1.3 des Transportverschlüsselungs-Protokolls und kann mit 256-Bit-Schlüsseln umgehen.

Ein Mellanox-Entwickler hat das "Devlink health reporting and recovery system" eingebracht, das Überwachungsprogramme zeitnah über Störungen mit der Netzwerkhardware informieren kann.

Darüber hinaus gab es noch zahlreiche andere Neuerungen am Netzwerkcode, die der wichtigste Merge-Commit-Kommentar dieses Subsystems anreißt. Darunter Änderungen, die Performance-Verbesserungen beim Aktualisieren von Regeln für TC (Traffic Control) versprechen; außerdem beherrscht der Bridge-Treiber jetzt Multicast Router Discovery (MRD), wie es RFC4286 definiert.

Mehr Performance oder höhere Zstd-Packdichte: Bei Btrfs kann man sich jetzt entscheiden.

(Bild: git.kernel.org – 3f93aef535c8 )

Bei Btrfs kann man beim Komprimieren mit Zstd (Zstandard) jetzt den Kompressionslevel vorgeben, um nicht nur Performance- und Packdichte, sondern auch den Speicherverbrauch flexibler gegeneinander abzuwägen zu können.

An der Infrastruktur des Filesystem in Userspace (FUSE) gab es einige Verbesserungen, die Performance und Skalierbarkeit zu verbessern versprechen. Das ist unter anderem für die Storage-Lösungen Ceph oder Gluster interessant, die sich über FUSE-Dateisystemprogramme einbinden lassen.

Anwendungen können mit Fsnotify jetzt einfacher und zuverlässiger überwachen, ob sich etwas am Dateisystem ändert, denn nach langem Anlauf sind Entwickler einige altbekannte Schwachstellen und Funktionslücken beim API angegangen.

Der Kernel bietet jetzt ein neues Programmierinterface zum Einhängen von Dateisystemen. Mit ihm will der zuständige Entwickler eine Reihe von Problemen des bisherigen Mount-APIs aus der Welt schaffen.

Davon abgesehen gab es bei Btrfs, Ext4 und XFS im wesentlichen kleinere Verbesserungen und Korrekturen; wie bei praktisch jeder neuen Kernel-Version waren darunter auch ein paar, durch die es bei bestimmten, oft speziellen und seltenen Umgebungsbedingungen zu Schäden an Meta- oder Nutzdaten kommen kann. Einige weitere Änderungen rund um Dateisysteme nennen die Git-Merge-Kommentare zu CIFS/SMB (1, 2), F2FS, Fscrypt, NFS und NFSd.

Das für Datenträger und Storage-Hardware zuständige Block-Layer kann durch "die neuen Multipage Bvecs" jetzt größere Datenhäppchen besser handhaben, die zusammenhängend im Arbeitsspeicher oder in großen Speicherseiten liegen. Das brächte eine Reihe netter Verbesserungen, wie der Block-Layer-Maintainer Jens Axboe den zuständigen Red-Hat-Entwickler im Kommentar eines Git-Merge lobt. Dieser nennt noch einige weitere Änderungen an der Storage-Infrastruktur.

Über den neuen Kernel-Parameter dm-mod.create= kann man dem Device Mapper jetzt anweisen, ein Device-Mapper-Target beim Booten zusammenzusetzen, das sich auch gleich nutzen lässt – etwa als Root-Dateisystem. Laut den Entwicklern ist das Feature für Android und andere Embedded Systems gedacht, um den Device Mapper dort ohne Initramfs nutzen können. Ein Git-Merge-Kommentar nennt weitere Änderungen bei der "DM" abgekürzten Technik, die bei der Verschlüsselung oder Logical Volume Management (LVM) viel Schwerarbeit erledigt.

Entfernt haben die Entwickler den bislang im SCSI-Subsystem angesiedelten Support für OSD (Object-Based Storage Device) sowie das darauf aufbauende Dateisystem Exofs. Beide haben keine Praxisbedeutung erlangt und Exofs sei ohnehin eher ein Testballon gewesen.

Einige weitere Neuerungen rund um Storage-Infrastruktur nennen Merges der Subsysteme Ceph, Libnvdimm, MMC, MTD und SCSI.