Novi balanser opterećenja CPU-a sa MIT-a

Planirano je da se sistem Shenango koristi u data centrima.

Novi balanser opterećenja CPU-a sa MIT-a
/ photo Marco verch CC BY

Prema jednom od provajdera, data centri koristiti samo 20–40% raspoložive računarske snage. Pri velikim opterećenjima ovaj indikator može dostići 60%. Ovakva distribucija resursa dovodi do pojave takozvanih „zombi servera“. To su mašine koje većinu vremena sede u praznom hodu i troše energiju. Danas 30% servera u svijetu su bez posla, trošeći 30 milijardi dolara električne energije godišnje.

MIT je odlučio da se bori protiv neefikasne upotrebe računarskih resursa.

Inženjerski tim se razvio sistem za balansiranje opterećenja procesora pod nazivom Shenango. Njegova svrha je da nadgleda stanje bafera zadataka i redistribuira zaglavljene procese (koji ne mogu primiti CPU vrijeme) na slobodne mašine.

Kako Shenango funkcionira

Shenango je Linux biblioteka u C sa Rust i C++ vezama. Kod projekta i testne aplikacije su objavljeni u spremišta na GitHubu.

Rješenje je bazirano na IOKernel algoritmu, koji radi na namjenskom jezgru višeprocesorskog sistema. Upravlja CPU zahtjevima koristeći okvir DPDK, koji omogućava aplikacijama da komuniciraju direktno sa mrežnim uređajima.

IOKernel odlučuje kojim kernelima će delegirati određeni zadatak. Algoritam takođe odlučuje koliko će jezgara biti potrebno. Za svaki proces određuju se glavna jezgra (zagarantovana) i dodatna (razbijajuća) - potonji se pokreću u slučaju naglog povećanja broja zahtjeva prema CPU-u.

IOKernel red zahtjeva je organiziran kao prstenasti bafer. Svakih pet mikrosekundi, algoritam provjerava da li su svi zadaci dodijeljeni jezgru završeni. Da bi to učinio, uspoređuje trenutnu lokaciju glave bafera s prethodnim položajem njegovog repa. Ako se ispostavi da je rep već bio u redu čekanja u vrijeme prethodne provjere, sistem bilježi preopterećenje bafera i dodjeljuje dodatno jezgro za proces.

Prilikom raspodjele opterećenja, prioritet se daje jezgrama na kojima je isti proces izvršen ranije i djelimično ostao u kešu, ili bilo kojim neaktivnim jezgrama.

Novi balanser opterećenja CPU-a sa MIT-a

Šenango dodatno koristi pristup rad kradu. Jezgre dodijeljene za pokretanje jedne aplikacije nadziru broj zadataka koje jedni druge imaju. Ako jedno jezgro završi svoju listu zadataka prije ostalih, onda ono “raspušta” dio opterećenja sa svojih susjeda.

Prednosti i mane

By prema inženjera sa MIT-a, Shenango je sposoban da obradi pet miliona zahteva u sekundi i da održi prosečno vreme odgovora od 37 mikrosekundi. Stručnjaci kažu da u nekim slučajevima tehnologija može povećati stopu iskorištenja procesora u podatkovnim centrima do 100%. Kao rezultat toga, operateri data centara će moći da uštede na kupovini i održavanju servera.

Potencijal rješenja slaviti i specijalisti sa drugih univerziteta. Prema riječima profesora sa korejskog instituta, MIT sistem će pomoći u smanjenju kašnjenja u web uslugama. Na primjer, bit će korisno u online trgovinama. Na prodajne dane postoji čak i drugo kašnjenje u učitavanju stranice privodit do smanjenja broja pregleda stranica za 11%. Brza raspodjela opterećenja će pomoći da se opsluži više klijenata.

Tehnologija i dalje ima nedostataka - ne podržava višeprocesor NUMA-sistemi u kojima su čipovi povezani na različite memorijske module i ne “komuniciraju” jedni s drugima. U ovom slučaju, IOKernel može regulirati rad posebne grupe procesora, ali ne i svih serverskih čipova.

Novi balanser opterećenja CPU-a sa MIT-a
/ photo Tim Reckmann CC BY

Slične tehnologije

Drugi sistemi za balansiranje opterećenja procesora uključuju Arachne. Izračunava koliko će jezgara trebati aplikaciji kada se pokrene i distribuira procese prema ovom indikatoru. Prema autorima, maksimalna latencija aplikacije u Arachneu je oko 10 hiljada mikrosekundi.

Tehnologija je implementirana kao C++ biblioteka za Linux, a njen izvorni kod je dostupan na GitHub.

Još jedan alat za balansiranje je ZygOS. Kao i Shenango, tehnologija koristi metodu krađe rada za redistribuciju procesa. Prema autorima ZygOS-a, prosječna latencija aplikacije pri korištenju alata je oko 150 mikrosekundi, a maksimalna je oko 450 mikrosekundi. Šifra projekta je također je u javnoj domeni.

nalazi

Moderni data centri nastavljaju da se šire, a trend rasta posebno je uočljiv na tržištu hiperscale data centara: sada u svetu postoji 430 hiperscale data centara, ali bi u narednim godinama njihov broj mogao porasti za 30%. Iz tog razloga, tehnologije za balansiranje opterećenja procesora će biti u velikoj potražnji. Sistemi poput Shenanga su već dostupni implementirati velike korporacije, a broj takvih alata će samo rasti u budućnosti.

Objave sa First Enterprise IaaS bloga:

izvor: www.habr.com

Dodajte komentar