Sistemul Shenango este planificat să fie folosit în centrele de date.
/ фото
Conform datelor unui provider, centrele de date dispun de doar 20–40% din puterea de calcul disponibilă. La încărcări mari, acest procent . O astfel de distribuție a resurselor duce la apariția așa-numitelor „servere zombie”. Acestea sunt mașini care stau inactive în cea mai mare parte a timpului, consumând energie electrică în mod inutil. În prezent, 30% din serverele din lume , consumând electricitate în valoare de 30 miliarde de dolari pe an.
Pentru a combate risipa ineficientă de resurse de calcul, s-au decis la MIT.
Echipa de ingineri un sistem de echilibrare a încărcăturii pe procesoare denumit Shenango. Scopul său este de a monitoriza starea bufferului de sarcini și de a redistribui procesele „blocate” (care nu pot obține timp de procesor) pe mașini disponibile.
Cum funcționează Shenango
Shenango este o bibliotecă Linux scrisă în C, cu binding-uri Rust și C++. Codul proiectului și aplicațiile de testare sunt publicate în pe GitHub.
Soluția se bazează pe un algoritm IOKernel, care rulează pe un nucleu dedicat al unui sistem multiprocesor. Acesta gestionează cererile către CPU prin intermediul unui cadru , care permite aplicațiilor să interacționeze direct cu dispozitivele de rețea.
IOKernel decide căror nuclee să aloce o sarcină specifică. Algoritmul decide, de asemenea, câte nuclee sunt necesare. Pentru fiecare proces, sunt definite nuclee principale (guaranteed) și suplimentare (burstable) — cele secundare sunt activate în cazul unei creșteri bruste a numărului de cereri către CPU.
Coada cererilor IOKernel este organizată sub forma . La fiecare cinci microsecunde, algoritmul verifică dacă toate sarcinile desemnate nucleului au fost îndeplinite. Pentru aceasta, compară poziția curentă a „capului” bufferului cu poziția anterioară a „cozii” sale. Dacă se constată că coada a fost deja în rândul cererilor la ultima verificare, sistemul semnalează o suprasarcină a bufferului și alocă un nucleu suplimentar pentru proces.
În distribuirea încărcăturii, prioritatea este dată nucleelor pe care se executase anterior o astfel de sarcină și care au rămas parțial în memoria cache, sau oricăror nuclee inactivate.

Shenango utilizează suplimentar abordarea Nuclee dedicate pentru funcționarea unei aplicații monitorizează numărul de sarcini dintre ele. Dacă un nuclee își finalizează lista de sarcini înaintea celorlalte, atunci "își reduce" o parte din sarcina celor vecini.
Avantaje și dezavantaje
După inginerii de la MIT, Shenango este capabil să proceseze cinci milioane de cereri pe secundă și să mențină un timp mediu de reacție de 37 microsecunde. Specialiștii susțin că, în anumite condiții, tehnologia poate crește coeficientul de utilizare a procesoarelor în centrele de date până la 100%. Astfel, operatorii de centre de date vor putea economisi la achiziționarea și întreținerea serverelor.
Potentțialul soluției și specialiști din alte universități. Potrivit unui profesor de la institutul coreean, sistemul de la MIT va ajuta la reducerea întârzierilor în funcționarea serviciilor web. De exemplu, va fi util în funcționarea magazinelor online. În zilele de reduceri, chiar și o întârziere de o secundă la încărcarea paginii duce la o scădere cu 11% a vizualizărilor site-ului. Distribuția rapidă a sarcinilor va ajuta la deservirea unui număr mai mare de clienți.
Tehnologia are însă și dezavantaje - nu suportă -sisteme multiprocesor, în care cipurile sunt conectate la module de memorie diferite și nu "comunică" între ele. În acest caz, IOKernel poate reglementa funcționarea unui grup separat de procesoare, dar nu a tuturor cipurilor serverului.

/ фото
Tehnologii similare
Printre celelalte sisteme de echilibrare a sarcinilor pe procesoare se numără Arachne. Aceasta calculează câte nuclee va necesita aplicația la momentul lansării și distribuie procesele în funcție de această metrică. Potrivit autorilor, întârzirea maximă în funcționarea aplicației în Arachne este de circa 10.000 microsecunde.
Tehnologia este implementată sub formă de bibliotecă C++ pentru Linux, iar codul său sursă este disponibil pe .
Un alt instrument de echilibrare - ZygOS. La fel ca Shenango, tehnologia utilizează metoda work stealing pentru redistribuirea proceselor. Conform autorilor ZygOS, întârzirea medie în funcționarea aplicațiilor utilizând acest instrument este de aproximativ 150 microsecunde, iar întârzirea maximă de aproximativ 450 microsecunde. Codul proiectului este de asemenea .
Conclusions
Centrele de date moderne continuă să se extindă, iar tendința de creștere este vizibilă în special pe piața centrelor de date hyperscale: în prezent, în lume 430 de centre de date hipermasive, dar în următorii ani numărul lor ar putea crește cu 30%. Din acest motiv, tehnologiile de echilibrare a sarcinii pe procesoare vor fi foarte căutate. Sisteme precum Shenango sunt deja implementate companii mari, iar în viitor numărul acestor instrumente va continua să crească.
Postări din Primul blog despre IaaS enterprise:
Sursa: habr.com
