Linux 4.20 freigegeben: Performance-Optimierungen und neue Treiber

Zu den vielen Neuerungen von Linux 4.20 gehört eine von Facebook entwickelte Auslastungsanzeige und Support für neue Radeon-Chips von AMD.

In Pocket speichern vorlesen Druckansicht 71 Kommentare lesen
Linux-Kernel 4.20
Lesezeit: 20 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

In der Nacht auf Heiligabend hat Linus Torvalds den Linux-Kernel 4.20 freigegeben. Er bringt wieder rund vierzehntausend Änderungen; einige davon rüsten neue Features oder Treiber nach, andere verbessern existierende. Die wichtigsten Neuerungen im Kurzüberblick:

  • Das neue PSI (Pressure-stall Information) stellt drei an /proc/loadavg erinnernde Dateien bereit, mit denen man die Ursache von Leistungsabfällen leichter eingrenzen kann. Admins können damit zudem die Effizienz ihrer Server steigern und zugleich durch Überlastung drohende Abstürze vermeiden.
  • Linux 4.20 verbessert den Schutz vor der zweiten Variante der Sicherheitslücke Spectre, die vor knapp einem Jahr bekannt wurde und in vielen modernen Prozessoren klafft. Die Performance soll darunter nicht leiden, sofern man nicht einen Schutz aktiviert, der für sicherheitskritische Systeme und Anwendungen gedacht ist.
  • TCP-Stack und Fair-Queue-Scheduler verwenden jetzt ein verbessertes und von Netzwerkurgestein Van Jacobson inspiriertes Verfahren, um über den Versendezeitpunkt von Netzwerkpaketen zu entscheiden.
  • PCIe-Geräte können Daten jetzt direkt miteinander austauschen. Das soll unter anderem die Performance von Servern verbessern, die Daten per RDMA übers Netzwerk schicken.
Das Kernel-Log
  • Der erst jüngst integrierte Support für den umstrittenen Crypto-Algorithmus Speck ist rausgeflogen; Google arbeitet an einem Ersatz, der vermutlich schon in 4.21 einfließt.
  • Linux 4.20 unterstützt die für den chinesischen Markt produzierte Prozessorserie "Dhyana", der eng mit AMDs "Epyc" verwandt ist.
  • Beim Virtualisieren mit Intel-Prozessoren gelingt es mit KVM nun standardmäßig, innerhalb von Virtual Machines (VMs) weitere zu starten ("Nested Virtualization").
  • Mit dem neuen Userspace DMA Buffer Driver (udmabuf) soll der Wirt die Bedienoberflächen von VMs effizienter weiterverarbeiten können, was die Performance verbessert.
  • Der Amgpu-Treiber unterstützt jetzt auch die GPUs der in den nächsten Wochen oder Monaten erwarteten AMD-Prozessoren, die bislang nur unter den Codenamen "Raven 2" und "Picasso" bekannt sind.
  • Unter Dutzenden neuen Treibern sind welche für 2.5-GBit-Ethernet-Chips von Intel. Außerdem bringt Linux nun endlich Treiber für das Magic Trackpad 2 von Apple mit. Das ist einer von einigen tausend Verbesserungen an Treibern zu verdanken, die Support von weiteren Geräten oder Hardware-Funktionen nachrüsten.
  • Neu dabei ist auch Support für das Raspberry Pi Compute Module 3 oder die 32-Bit-Prozessorarchitektur C-Sky.

Linux 4.20 hätte beinahe die Versionsnummer 5.0 bekommen.

(Bild: Freigabemail zur ersten Vorabversion von Linux 4.20 auf lore.kernel.org)

  • Viele Beobachter hatten erwartet, dass der Nachfolger des Ende Oktober veröffentlichen Linux 4.19 nicht 4.20, sondern 5.0 als Versionsnummer erhalten würde. Dazu kam es nicht: Linus Torvalds wollte "kein Muster etablieren" und hat daher das beim Sprung von 3.19 auf 4.0 verwendete Schema nicht wiederholt. Er hat den Versionssprung aber für 2019 in Aussicht gestellt.

Die folgenden Abschnitte und Artikelseiten liefern zahlreiche Details zu diesen und zahlreichen weiteren Neuerungen von Linux 4.20.

Alle wesentlichen Neuerungen dieses Kernels sind derweil schon absehbar. Eine davon ist das PSI (Pressure-stall Information) genannte Feature, mit dem Administratoren leichter eingrenzen können, warum ein System plötzlich langsamer als gewohnt arbeitet; die von PSI aufbereiteten Informationen sollen Admins von Rechenzentren ferner helfen, die verfügbaren Systemressourcen besser auszuschöpfen und Ausfallzeiten zu verhindern. Die Technik dazu hat Facebook entwickelt und nach ersten Praxiserfahrungen in seinen Rechenzentren nun zu Linux beigesteuert. Die Entwickler von Android wollen die Technik aber auch aufgreifen, damit ihr Betriebssystem unter Last besser reagiert; dasselbe gilt für die Entwickler des Desktop-Betriebssystems Endless OS.

PSI liefert Hinweise, wie stark Prozessor, Arbeitsspeicher und Datenträger in den letzten 10, 60 und 300 Sekunden ausgelastet waren.

Durch PSI stellt der Kernel das Verzeichnis /proc/pressure/ mit drei Dateien bereit, deren Inhalt an das nicht mehr recht zeitgemäße /proc/loadavg erinnert. Die Dateien liefern die Summe der Zeit, die Prozessor, Arbeitsspeicher und I/O-Subsystem in den letzten 10, 60 und 300 Sekunden überlastet waren. Die Angaben in der "some"-Zeile von /proc/pressure/io zeigen beispielsweise den Zeitraum, den Programme im Beobachtungszeitraum nicht vorankamen, weil sie auf Schreib- oder Leseoperationen gewartet haben. Die "full"-Zeile summiert hingegen Zeiten, in denen es alle aktiven Tasks betraf. Wenn Letzteres über einen längeren Zeitraum häufig vorkommt, arbeitet dieser Ressource am Anschlag; das System verrichtet die ihm zugeteilten Aufgaben dann nur noch ineffizient und fährt sich womöglich bald fest.

Die genannten Dateien liefern eine Auswertung zu allen Programmen des Systems; PSI offeriert zudem drei ähnliche Dateien in den Verzeichnissen von Control Groups (Cgroups), die Informationen zum Verhalten dort zugeordneter Tasks liefern.

Mit diesen Informationen und einigen weiteren Maßnahmen konnte Facebook die Effizienz seiner Server steigern und problematische, sonst Abstützen resultierende Situationen rechtzeitig abfangen. Details hierzu finden sich im LWN.net-Artikel "Resource control at Facebook". Dieser fasst einen Vortrag zusammen, der jüngst in ähnlicher Form auf der "All Systems Go" gehalten wurde und bei YouTube zu sehen ist; ab Zeitstempel 15:05 beginnt ein längerer Abschnitt, der PSI näher erläutert.