Încarcătorul de echilibru pentru CPU de la MIT

Sistemul Shenango este planificat să fie folosit în centrele de date.

Încarcătorul de echilibru pentru CPU de la MIT
/ фото Marco Verch CC BY

Conform datelor unui provider, centrele de date utilizată dispun de doar 20–40% din puterea de calcul disponibilă. La încărcări mari, acest procent poate ajunge până la 60%. 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 stau fără activitate, 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 a dezvoltat 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 repository 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 DPDK, 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 unui buffer circular. 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.

Încarcătorul de echilibru pentru CPU de la MIT

Shenango utilizează suplimentar abordarea furtișag de lucruNuclee 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ă vorbelor lor 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 pun accent pe ș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 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ă NUMA-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.

Încarcătorul de echilibru pentru CPU de la MIT
/ фото Tim Reckmann CC BY

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 GitHub.

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 disponibil publicului.

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 există 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 de companii mari, iar în viitor numărul acestor instrumente va continua să crească.

Postări din Primul blog despre IaaS enterprise:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster