Sintonizzare il kernel Linux con l’IA, secondo ByteDance

Ottimizzare il kernel Linux con l'intelligenza artificiale, secondo ByteDance

Pinguino potenziato da IA

Richmond, Virginia: Alla Linux Plumbers Conference, la riunione solo su invito dei migliori sviluppatori del kernel Linux, Cong Wang, ingegnere del kernel Linux di ByteDance, ha proposto di utilizzare l’intelligenza artificiale (IA) e il machine learning (ML) per ottimizzare il kernel Linux per ottenere i massimi risultati per carichi di lavoro specifici. 

Inoltre: Rust in Linux: dove siamo e dove andiamo

In generale, il kernel Linux funziona molto bene per la maggior parte dei compiti. Tuttavia, per ottenere il massimo da esso per un lavoro specifico, è necessario ottimizzarlo impostando i suoi parametri per ottenere i migliori risultati possibili. C’è solo un piccolo problema con questo approccio. Ci sono migliaia di parametri. Anche per un esperto di Linux, ottimizzarli per prestazioni ottimali richiede molto tempo e fatica. E, naturalmente, diversi carichi di lavoro richiedono ottimizzazioni diverse per diversi insiemi di parametri del kernel Linux. Pertanto, come ha detto Wang, “Nei data center di grandi dimensioni come quelli di ByteDance, è diventato quasi impossibile ottimizzare manualmente i parametri del kernel Linux per centinaia di carichi di lavoro diversi.”

Strumenti come System Management Interface Tool (SMIT), Sysctl e TuneD possono aiutare. Ma consentono solo di apportare modifiche manuali alle ottimizzazioni del kernel. Esistono anche programmi “intelligenti”, come BayOp di Red Hat, che utilizzano il ML per ottimizzare specificamente l’efficienza delle applicazioni di rete, ma non è un programma di IA/ML generico; è destinato a un tipo specifico di ottimizzazione di Linux. 

Inoltre: Garuda KDE Dr460nized potrebbe essere la distribuzione Linux più bella disponibile

Quello su cui sta lavorando ByteDance è un primo tentativo di automatizzare l’intero processo di ottimizzazione dei parametri del kernel Linux con minimi sforzi tecnici. In particolare, ByteDance sta lavorando sull’ottimizzazione della gestione della memoria di Linux. ByteDance ha scoperto che con algoritmi di machine learning, come l’ottimizzazione bayesiana, l’ottimizzazione automatica potrebbe persino superare la maggior parte degli ingegneri del kernel Linux.

Perché? Beh, l’idea, come ha detto Wang sarcasticamente, “non è mettere fuori dal mercato gli ingegneri del kernel Linux”. No, l’obiettivo è “liberare gli ingegneri umani dall’ottimizzazione delle prestazioni per ogni singolo carico di lavoro, prendendo decisioni migliori con dati storici, con cui gli umani spesso lottano. E, ultimo ma non meno importante, trovare soluzioni migliori rispetto a quelle che otteniamo con i nostri attuali metodi di prova ed errore euristiche.

Inoltre: Se vuoi provare BSD, scegli GhostBSD

Come? Il sistema di automiglioramento è progettato per regolare automaticamente le impostazioni interne del kernel Linux in base al carico di lavoro specifico e alla configurazione dell’hardware. Questa regolazione dinamica garantisce prestazioni ottimali, affrontando una sfida da tempo irrisolta nella comunità Linux di regolare manualmente il kernel per scenari specifici. Per fare ciò, il framework di IA/ML utilizza più algoritmi come l’ottimizzazione bayesiana, l’algoritmo genetico e l’algoritmo di raffreddamento simulato/evoluzione.

Il risultato?

  • Ottimizzazione dinamica: il sistema monitora continuamente le prestazioni del kernel, apportando regolazioni in tempo reale alle impostazioni come la scalabilità della frequenza CPU e la gestione della memoria.

  • Efficienza migliorata: ottimizzando l’utilizzo delle risorse, il sistema di automiglioramento migliora significativamente l’efficienza dei sistemi Linux, specialmente in ambienti con carichi di lavoro variabili.

  • Interfaccia utente intuitiva: il sistema include un’interfaccia utente intuitiva, che consente anche a coloro che hanno conoscenze tecniche limitate di beneficiare delle prestazioni potenziate del kernel.

  • Impostazioni personalizzabili: gli utenti avanzati possono personalizzare i parametri di automiglioramento, adattando il sistema alle loro esigenze specifiche.

È ancora presto, ma ByteDance sta già ottenendo qualche successo. Ad esempio, utilizzando DAMON, un sottosistema del kernel Linux per il monitoraggio e l’ottimizzazione dell’accesso alla memoria, con il framework sono riusciti a trovare il miglior schema per un’applicazione MySQL. Hanno fatto ciò eseguendo diversi schemi DAMON e confrontando le loro prestazioni. Hanno scoperto di poter ridurre l’utilizzo della memoria dell’applicazione del 30%. Per applicazioni di grandi dimensioni, è un risparmio reale.

Inoltre: Linux potrebbe essere la scelta migliore per aumentare la sicurezza del tuo computer desktop

In un altro caso, ByteDance è riuscita ad ottimizzare la latenza di rete HTTP su un server NGINX ottimizzando l’aggiustamento di 16 parametri sysctl del kernel. Nel migliore scenario, l’aggiustamento ML ha dato una spinta del 12% alle prestazioni di rete di NGINX rispetto all’aggiustamento manuale esperto. Di nuovo, è un miglioramento significativo.

ByteDance non afferma che il suo approccio AI/ML funzionerà per ogni lavoro di ottimizzazione del kernel Linux, ma Wang ha detto: “Nonostante ci siano delle limitazioni, crediamo che il machine learning del kernel non solo sia possibile, ma anche necessario.”

Io? Credo che questo possa essere un potenziale gioco cambiatore per le applicazioni Linux. Semplificando l’ottimizzazione del kernel, renderà Linux più accessibile ed efficiente per una gamma più ampia di utenti e applicazioni. In particolare, vedo il sistema di autotuning aumentare le prestazioni su quasi tutti i server, il cloud computing e le applicazioni dei data center.