Nuovo bilanciatore del carico della CPU del MIT

Si prevede che il sistema Shenango sarà utilizzato nei data center.

Nuovo bilanciatore del carico della CPU del MIT
/ foto Marco Verch CC BY

Secondo uno dei fornitori, data center usato solo il 20-40% della potenza di calcolo disponibile. A carichi elevati questo indicatore può raggiungere il 60%. Questa distribuzione delle risorse porta alla nascita dei cosiddetti “server zombie”. Si tratta di macchine che restano inattive per la maggior parte del tempo, sprecando energia. Oggi il 30% dei server nel mondo sono senza lavoro, consumando 30 miliardi di dollari di elettricità all’anno.

Il MIT ha deciso di combattere l'uso inefficiente delle risorse informatiche.

Team di ingegneri ha sviluppato sistema di bilanciamento del carico del processore chiamato Shenango. Il suo scopo è monitorare lo stato del buffer delle attività e ridistribuire i processi bloccati (che non possono ricevere tempo CPU) alle macchine libere.

Come funziona Shenango

Shenango è una libreria Linux in C con collegamenti Rust e C++. Il codice del progetto e le applicazioni di test sono pubblicati in repository su GitHub.

La soluzione si basa sull'algoritmo IOKernel, che gira su un core dedicato di un sistema multiprocessore. Gestisce le richieste della CPU utilizzando un framework DPK, che consente alle applicazioni di comunicare direttamente con i dispositivi di rete.

L'IOKernel decide a quali kernel delegare un compito specifico. L'algoritmo decide anche quanti core saranno necessari. Per ogni processo vengono determinati i core principali (garantiti) e quelli aggiuntivi (scoppiabili): questi ultimi vengono avviati in caso di un forte aumento del numero di richieste alla CPU.

La coda delle richieste IOKernel è organizzata come buffer ad anello. Ogni cinque microsecondi, l'algoritmo controlla se tutte le attività assegnate al core sono state completate. Per fare ciò, confronta la posizione attuale della testa del buffer con la posizione precedente della sua coda. Se risulta che la coda era già in coda al momento del controllo precedente, il sistema rileva il sovraccarico del buffer e alloca un core aggiuntivo per il processo.

Nella distribuzione del carico viene data priorità ai core su cui lo stesso processo è stato eseguito in precedenza ed è rimasto parzialmente nella cache, oppure ad eventuali core inattivi.

Nuovo bilanciatore del carico della CPU del MIT

Anche Shenango adotta lo stesso approccio lavoro rubando. I core assegnati per eseguire un'applicazione monitorano il numero di attività di cui dispongono gli altri. Se un core termina la sua lista di compiti prima degli altri, “alleggerisce” parte del carico dai suoi vicini.

Vantaggi e svantaggi

Su secondo ingegneri del MIT, Shenango è in grado di elaborare cinque milioni di richieste al secondo e di mantenere un tempo di risposta medio di 37 microsecondi. Gli esperti affermano che in alcuni casi la tecnologia può aumentare fino al 100% il tasso di utilizzo dei processori nei data center. Di conseguenza, gli operatori dei data center potranno risparmiare sull'acquisto e sulla manutenzione dei server.

Potenziale della soluzione contrassegno e specialisti di altre università. Secondo un professore di un istituto coreano, il sistema del MIT aiuterà a ridurre i ritardi nei servizi web. Ad esempio, sarà utile nei negozi online. Nei giorni dei saldi si verifica anche un secondo ritardo nel caricamento della pagina приводит ad una diminuzione del numero di visualizzazioni del sito dell'11%. Una rapida distribuzione del carico aiuterà a servire più clienti.

La tecnologia presenta ancora degli svantaggi: non supporta il multiprocessore NUMA-sistemi in cui i chip sono collegati a diversi moduli di memoria e non “comunicano” tra loro. In questo caso, IOKernel può regolare il funzionamento di un gruppo separato di processori, ma non di tutti i chip del server.

Nuovo bilanciatore del carico della CPU del MIT
/ foto Tim Reckmann CC BY

Tecnologie simili

Altri sistemi di bilanciamento del carico del processore includono Arachne. Calcola di quanti core avrà bisogno un'applicazione all'avvio e distribuisce i processi in base a questo indicatore. Secondo gli autori, la latenza massima di un'applicazione in Arachne è di circa 10mila microsecondi.

La tecnologia è implementata come libreria C++ per Linux e il suo codice sorgente è disponibile su GitHub.

Un altro strumento di bilanciamento è ZygOS. Come Shenango, la tecnologia utilizza il metodo del furto del lavoro per ridistribuire i processi. Secondo gli autori di ZygOS, la latenza media dell'applicazione quando si utilizza lo strumento è di circa 150 microsecondi e quella massima è di circa 450 microsecondi. Anche il codice del progetto lo è è di dominio pubblico.

risultati

I data center moderni continuano ad espandersi e la tendenza crescente è particolarmente evidente nel mercato dei data center iperscale: ora nel mondo c'è 430 data center iperscale, ma nei prossimi anni il loro numero potrebbe aumentare del 30%. Per questo motivo, le tecnologie di bilanciamento del carico del processore saranno molto richieste. Sistemi come Shenango sono già disponibili strumento grandi aziende e il numero di tali strumenti non potrà che aumentare in futuro.

Post dal primo blog sull'IaaS aziendale:

Fonte: habr.com

Aggiungi un commento