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

Sustav Shenango planira se koristiti u podatkovnim centrima.

Novi balanser opterećenja CPU-a s MIT-a
/ fotografija Marko Verch CC BY

Prema jednom od pružatelja, podatkovni centri koristi samo 20–40% raspoložive računalne snage. Kod velikih opterećenja ovaj pokazatelj može doseći 60%. Ovakva raspodjela resursa dovodi do pojave takozvanih "zombi servera". To su strojevi koji većinu vremena miruju i troše energiju. Danas 30% poslužitelja u svijetu su bez posla, trošeći 30 milijardi dolara električne energije godišnje.

MIT se odlučio boriti protiv neučinkovitog korištenja računalnih resursa.

Inženjerski tim se razvio sustav za uravnoteženje opterećenja procesora nazvan Shenango. Njegova je svrha nadzirati stanje međuspremnika zadataka i redistribuirati zaglavljene procese (koji ne mogu primiti CPU vrijeme) na slobodne strojeve.

Kako Shenango radi

Shenango je Linux biblioteka u C-u s poveznicama Rust i C++. Projektni kod i testne aplikacije objavljeni su u spremišta na GitHubu.

Rješenje se temelji na IOKernel algoritmu, koji radi na namjenskoj jezgri višeprocesorskog sustava. Upravlja CPU zahtjevima pomoću okvira DPDK, koji aplikacijama omogućuje izravnu komunikaciju s mrežnim uređajima.

IOKernel odlučuje kojim kernelima će delegirati određeni zadatak. Algoritam također odlučuje koliko će jezgri biti potrebno. Za svaki proces određuju se glavne jezgre (zajamčene) i dodatne (burstable) - potonje se pokreću u slučaju naglog povećanja broja zahtjeva CPU-u.

IOKernel red zahtjeva je organiziran kao prstenasti međuspremnik. Svakih pet mikrosekundi algoritam provjerava jesu li svi zadaci dodijeljeni jezgri dovršeni. Da bi to učinio, uspoređuje trenutačni položaj glave odbojnika s prethodnim položajem njegova repa. Ako se ispostavi da je rep već bio u redu čekanja u vrijeme prethodne provjere, sustav bilježi preopterećenost međuspremnika i dodjeljuje dodatnu jezgru za proces.

Pri raspodjeli opterećenja prioritet imaju jezgre na kojima je ranije izvršen isti proces i djelomično su ostale u predmemorij ili sve neaktivne jezgre.

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

Shenango dodatno ima pristup posao krade. Jezgre dodijeljene za pokretanje jedne aplikacije prate broj zadataka koje jedna druga ima. Ako jedna jezgra završi svoj popis zadataka prije ostalih, tada se "oslobađa" dijela opterećenja od svojih susjeda.

Prednosti i nedostaci

Na prema inženjera s MIT-a, Shenango je sposoban obraditi pet milijuna zahtjeva u sekundi i održavati prosječno vrijeme odgovora od 37 mikrosekundi. Stručnjaci kažu da u nekim slučajevima tehnologija može povećati iskorištenost procesora u podatkovnim centrima do 100%. Kao rezultat toga, operateri podatkovnih centara moći će uštedjeti na kupnji i održavanju poslužitelja.

Potencijal rješenja oznaka i specijalisti s drugih sveučilišta. Prema riječima profesora s jednog korejskog instituta, MIT sustav pomoći će u smanjenju kašnjenja web usluga. Na primjer, bit će korisno u internetskim trgovinama. Na dane rasprodaje postoji čak i sekunda kašnjenja u učitavanju stranice приводит do smanjenja broja pregleda stranica za 11%. Brza raspodjela opterećenja pomoći će poslužiti više klijenata.

Tehnologija još uvijek ima nedostatke - ne podržava multiprocesor NUMA-sustavi u kojima su čipovi spojeni na različite memorijske module i međusobno ne “komuniciraju”. U ovom slučaju IOKernel može regulirati rad zasebne grupe procesora, ali ne i svih poslužiteljskih čipova.

Novi balanser opterećenja CPU-a s MIT-a
/ fotografija Tim Reckmann CC BY

Slične tehnologije

Ostali sustavi za uravnoteženje opterećenja procesora uključuju Arachne. Izračunava koliko će jezgri aplikacija trebati kada se pokrene i distribuira procese prema ovom pokazatelju. Prema autorima, maksimalna latencija aplikacije u Arachne je oko 10 tisuća mikrosekundi.

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

Drugi 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. Kod projekta je također je u javnoj domeni.

Zaključci

Suvremeni podatkovni centri nastavljaju se širiti. Trend porasta posebno je uočljiv na tržištu hiperrazmjernih podatkovnih centara: sada u svijetu postoji 430 hiperrazmjernih podatkovnih centara, no u nadolazećim godinama njihov bi se broj mogao povećati za 30%. Iz tog razloga će tehnologije za uravnoteženje opterećenja procesora biti u velikoj potražnji. Sustavi poput Shenanga već su dostupni implementirati velike korporacije, a broj takvih alata će u budućnosti samo rasti.

Postovi s Prvog bloga o korporativnom IaaS-u:

Izvor: www.habr.com

Dodajte komentar