Meta ha riscritto lo scheduler di Linux

Meta ha riscritto lo scheduler di Linux

Meta ha sostituito lo scheduler standard di Linux con sched_ext, riducendo la latenza del 28% e risparmiando 3,28 megawatt.

Meta ha ridotto del 28% la latenza sostituendo lo scheduler di Linux con codice BPF

Un numero, prima di tutto: -28%. È la riduzione di latenza al 99° percentile che Meta ha misurato nella fase di recupero degli annunci pubblicitari dopo aver sostituito lo scheduler di processo standard del kernel Linux con un insieme di programmi BPF scritti su misura per il proprio carico di lavoro. A raccontarlo è un post tecnico pubblicato ieri sull’engineering blog di Meta, dedicato all’adozione in produzione di sched_ext, il framework di scheduling estensibile entrato ufficialmente nel kernel Linux mainline lo scorso anno. Non è un dettaglio da nicchia per sistemisti: parliamo della piattaforma che smista più di 5 milioni di richieste al secondo solo al punto di ingresso del servizio pubblicitario di Meta.

I numeri dietro l’annuncio

Oltre alla riduzione di latenza in coda, Meta riporta un risparmio energetico di 3,28 megawatt e un aumento dell’1,1% nel numero di annunci effettivamente classificati a parità di infrastruttura: significa più inventario servito, meno hardware acceso per farlo. Il tutto grazie a sched_ext, il framework open source basato su BPF che è entrato ufficialmente nel kernel Linux con la versione 6.12. Sono cifre che, prese singolarmente, sembrano miglioramenti incrementali da manuale di ottimizzazione dei sistemi. Ma come ha fatto Meta a ottenere questi risultati semplicemente cambiando il modo in cui il kernel decide quale processo eseguire e quando?

Lo scheduler che si programma

Per capire la portata del cambiamento bisogna partire da cosa fa, di solito, lo scheduler di un sistema operativo: decide quale thread gira su quale core, per quanto tempo, con quale priorità. In Linux questa logica è da sempre scritta in C, compilata staticamente nel kernel, valida per ogni carico di lavoro possibile — dal laptop al server con migliaia di container. sched_ext ribalta questo assunto. Come definito nella documentazione ufficiale del kernel, si tratta di “una classe di scheduler il cui comportamento può essere definito da un insieme di programmi BPF”. Tradotto: le policy di scheduling non sono più incise nel codice del kernel, ma caricate a runtime come bytecode BPF, verificato e sandboxato dal verificatore eBPF prima di essere eseguito in kernel space. Si può scrivere uno scheduler su misura per un carico di lavoro specifico, testarlo, sostituirlo — senza ricompilare né riavviare la macchina.

Non è la prima idea del genere. Google lavora da anni su un progetto concettualmente affine, ghOSt, che però sceglie una strada diversa: delega la pianificazione del kernel a processi userspace invece di eseguire la logica direttamente in kernel space tramite BPF. Google ha dimostrato ghOSt su carichi di lavoro reali come Google Search e Google Snap, ottenendo throughput e latenza comparabili allo scheduler nativo del kernel, ma con in più la possibilità di aggiornare le policy senza interruzioni e isolare i guasti dal resto del sistema. Le due strade — userspace delegation da un lato, programmi BPF in-kernel dall’altro — sono nate da esigenze simili e, non a caso, non sono rimaste separate: già nel 2024 Meta e Google avevano progettato insieme sched_ext per l’integrazione upstream in Linux, e secondo il blog di Meta l’azienda ha collaborato direttamente con gli autori di ghOSt di Google per definirne l’architettura. Il percorso verso la produzione è stato tutt’altro che immediato: sempre nel maggio 2024 Meta aveva iniziato a distribuire un primo scheduler sched_ext su un carico di lavoro di produzione web, mentre in parallelo conduceva test di verifica su larga scala proprio sul carico pubblicitario che oggi, un anno dopo, mostra quei numeri in coda. E per chi costruisce infrastrutture a questa scala, la domanda che conta non è se sched_ext funziona, ma cosa succede quando diventa lo standard.

Stack in trasformazione

Se un cambio di scheduler porta a un -28% di latenza in coda su una delle piattaforme di ranking pubblicitario più grandi al mondo, l’impatto economico non è astratto: il fatturato annuale di Meta nel 2025 ha superato i 200 miliardi di dollari, e in un business dove il ran

🍪 Impostazioni Cookie