Nuovo bilanciamento del carico CPU dal MIT

Il sistema Shenango sarà utilizzato nei data center.

Nuovo bilanciamento del carico CPU dal MIT
/ фото Marco Verch CC BY

Secondo uno dei fornitori, i data center usano utilizzano solo il 20-40% delle capacità computazionali disponibili. Durante i picchi di carico, questa percentuale può raggiungere il 60%. Questa distribuzione delle risorse porta alla nascita di quelli che vengono chiamati «server zombie». Queste macchine restano inattive per la maggior parte del tempo, sprecando energia. Oggi il 30% dei server nel mondo rimane inutilizzato, divorando elettricità per un totale di 30 miliardi di dollari all'anno.

Per affrontare lo spreco inefficiente delle risorse computazionali, il MIT ha deciso di agire.

Un team di ingegneri ha sviluppato ha sviluppato un sistema di bilanciamento del carico per processori chiamato Shenango. Il suo obiettivo è monitorare lo stato del buffer delle attività e ridistribuire i processi «bloccati» (che non possono ottenere tempo di processore) su macchine disponibili.

Come funziona Shenango

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

La base della soluzione è rappresentata dall'algoritmo IOKernel, che viene eseguito su un core dedicato di un sistema multiprocessore. Gestisce le richieste al CPU tramite un framework DPDK, che consente alle applicazioni di interagire direttamente con i dispositivi di rete.

IOKernel decide a quali core assegnare compiti specifici. L'algoritmo determina anche quanti core saranno necessari. Per ogni processo vengono identificati i core principali (guaranteed) e quelli aggiuntivi (burstable) — i secondi vengono attivati in caso di un improvviso aumento delle richieste al CPU.

La coda delle richieste di IOKernel è organizzata come un buffer circolare. Ogni cinque microsecondi, l'algoritmo verifica se tutte le attività assegnate a un core sono state completate. A tal fine, confronta la posizione attuale della 'testa' del buffer con la posizione precedente della 'coda'. Se risulta che la coda era già nella coda al momento dell'ultima verifica, il sistema segna un sovraccarico del buffer e assegna un core aggiuntivo al processo.

Nella distribuzione del carico, si dà priorità ai core su cui un simile processo era già stato eseguito in precedenza e parzialmente rimasto nella cache, o a qualsiasi core inattivo.

Nuovo bilanciamento del carico CPU dal MIT

Shenango utilizza inoltre un approccio work stealing. I core dedicati all'esecuzione di un'applicazione monitorano il numero di attività l'uno dell'altro. Se un core termina la propria lista di compiti prima degli altri, esso "ruba" parte del carico dai vicini.

Vantaggi e svantaggi

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

Potenziale della soluzione sottolineano e specialisti di altri atenei. Secondo un professore di un istituto coreano, il sistema del MIT contribuirà a ridurre i ritardi nei servizi web. Ad esempio, sarà utile per il lavoro dei negozi online. Nei giorni delle svendite, anche un ritardo di un secondo nel caricamento della pagina provoca porta a una diminuzione delle visualizzazioni del sito dell'11%. Una distribuzione del carico in tempo reale aiuterà a servire più clienti.

La tecnologia ha ancora dei difetti: non supporta sistemi NUMA NUMA- nei quali i chip sono collegati a moduli di memoria diversi e non "comunicano" tra loro. In questo caso, IOKernel può regolare il funzionamento di un gruppo di processori, ma non di tutti i chip del server.

Nuovo bilanciamento del carico CPU dal MIT
/ фото Tim Reckmann CC BY

Tecnologie analoghe

Tra gli altri sistemi di bilanciamento del carico sui processori, si distingue Arachne. Calcola quanti core saranno necessari per un'applicazione al momento del suo avvio e distribuisce i processi di conseguenza. Secondo gli autori, il massimo ritardo nelle prestazioni dell'applicazione in Arachne è di circa 10.000 microsecondi.

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

Un altro strumento di bilanciamento è ZygOS. Come Shenango, utilizza il metodo del work stealing per ridistribuire i processi. Gli autori di ZygOS dichiarano che il ritardo medio nelle prestazioni delle applicazioni utilizzando questo strumento è di circa 150 microsecondi, mentre il massimo è di circa 450 microsecondi. Il codice del progetto è anch'esso disponibile al pubblico.

Conclusioni

I moderni data center continuano a espandersi, con una tendenza particolarmente evidente nel mercato dei data center hyperscale: attualmente nel mondo esiste ci sono 430 data center hyperscale, ma nel prossimo futuro il loro numero potrebbe aumentare del 30%. Per questo motivo, le tecnologie per il bilanciamento del carico sui processori saranno molto richieste. Sistemi come Shenango stanno già venendo implementati da grandi corporazioni, e in futuro il numero di questi strumenti continuerà a crescere.

Post dal Primo blog su IaaS aziendale:

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster