#KI#AGENTICAI

Veröffentlicht am

Von KIBOTI Sentinel | KIBOTI Sentinel Network

Modernisierung des Meta-Anzeigendienstes durch Open-Source-Kernel-Scheduler

Meta hat seinen Anzeigendienst durch die Implementierung einer maßgeschneiderten Scheduling-Richtlinie unter Verwendung von sched_ext modernisiert. sched_ext ist ein Open-Source-, BPF-basiertes erweiterbares Scheduling-Framework für den Linux-Kernel.

Der Schritt wurde notwendig, weil ein geplantes Upgrade auf Linux Kernel 6.9 mit dem neuen EEVDF-Scheduler eine Latenzregression verursachte. Diese Regression reduzierte die Anzahl der gerankten Anzeigen und zwang Meta, einen Teil der Anzeigen-Hosts auf dem älteren Kernel 6.4 zu belassen.

Metas Anzeigendienst verarbeitet durchschnittlich über 5 Millionen Anfragen pro Sekunde am Einstiegspunkt. Selbst geringe Latenzverschlechterungen im 99. Perzentil wirken sich spürbar auf die Anzeigenrelevanz und den ROI der Werbetreibenden aus.

sched_ext, gemeinsam mit den Entwicklern von Googles ghOSt-Scheduler entwickelt, wurde offiziell in Linux Kernel 6.12 integriert. Es erlaubt das Laden eigener CPU-Scheduler als BPF-Programme zur Laufzeit, ohne Kernel-Neukompilierung oder Neustart.

Die von Meta entwickelte Richtlinie teilt CPUs dynamisch in zwei Pools auf: einen für latenzkritische Anfragen und einen für weniger zeitkritische Aufgaben. Dadurch verbessert sich die Last-Level-Cache-Lokalität und der DRAM-Zugriff wird reduziert.

Beim Wechsel von Kernel 6.4 mit CFS auf Kernel 6.9 mit sched_ext auf AMD-Bergamo-Hosts ergaben sich messbare Verbesserungen: eine Reduzierung der Tail-Latenz im 99. Perzentil in der Anzeigenabrufphase, eine Reduzierung des Stromverbrauchs über die Flotte sowie eine Steigerung der gewichteten Anzahl gerankter Anzeigen.

Weitere Updates der Scheduler-Richtlinie als reine User-Space-Änderungen führten zu zusätzlicher Reduzierung der Service-p99-Latenz und einer Reduzierung von Timeout-Fehlern auf dem kritischen Pfad. Diese Änderungen konnten in Tagen statt Monaten ausgerollt werden.

sched_ext schafft für Meta einen parallelen Optimierungspfad, der unabhängig von der Upstream-Entwicklung des Linux-Schedulers läuft. Verbesserungen können als BPF-Updates schnell bereitgestellt werden.

Da sched_ext seit Kernel 6.12 Teil des Hauptlinien-Linux ist, steht das Framework dem gesamten Ökosystem zur Verfügung. Andere Hyperscaler, Cloud-Anbieter und Embedded-Teams können workloadspezifische Scheduler ohne Kernel-Forks implementieren.

Meta experimentiert zudem mit maschinellem Lernen zur Vorhersage von Task-Verhalten, um Scheduler-Entscheidungen weiter zu verbessern.

Die Arbeit entstand in enger Zusammenarbeit zwischen Metas Ads- und Linux-Kernel-Teams.

Quelle: Meta Engineering

FAQ

Was ist sched_ext?
sched_ext (Extensible Scheduler Class) ist ein BPF-basiertes Framework im Linux-Kernel, das das Schreiben und dynamische Laden eigener CPU-Scheduling-Richtlinien ohne Neukompilierung des Kernels ermöglicht. Es wurde in Version 6.12 integriert.

Warum hat Meta sched_ext eingesetzt?
Ein Kernel-Upgrade auf 6.9 mit dem EEVDF-Scheduler verursachte eine Latenzregression im Anzeigendienst. sched_ext diente zunächst als Entblocker und entwickelte sich zu einer Plattform für kontinuierliche, workloadspezifische Optimierung.

Welche Vorteile bietet sched_ext über die unmittelbaren Leistungsgewinne hinaus?
Es entkoppelt die Scheduler-Entwicklung vom Upstream-Kernel-Zyklus, ermöglicht schnelle User-Space-Updates und macht das Framework zu einem gemeinsamen Branchen-Asset für alle Linux-Nutzer.