Jauns CPU slodzes balansētājs no MIT

Shenango sistēmu plānots izmantot datu centros.

Jauns CPU slodzes balansētājs no MIT
/ foto Marco verch CC BY

Saskaņā ar vienu no pakalpojumu sniedzējiem, datu centri izmantot tikai 20–40% no pieejamās skaitļošanas jaudas. Pie lielām slodzēm šis indikators var sasniegt 60%. Šāda resursu sadale noved pie tā saukto “zombiju serveru” rašanās. Tās ir mašīnas, kas lielāko daļu laika sēž dīkstāvē, tērējot enerģiju. Mūsdienās 30% serveru pasaulē ir bez darbagadā, patērējot elektroenerģijas 30 miljardu dolāru vērtībā.

MIT nolēma cīnīties pret neefektīvu skaitļošanas resursu izmantošanu.

Inženieru komanda ir izveidojusies procesora slodzes līdzsvarošanas sistēma ar nosaukumu Shenango. Tās mērķis ir uzraudzīt uzdevumu bufera stāvokli un pārdalīt iestrēgušos procesus (kas nevar saņemt CPU laiku) uz brīvajām mašīnām.

Kā darbojas Shenango

Shenango ir Linux bibliotēka C valodā ar Rust un C++ saitēm. Projekta kods un testa pieteikumi ir publicēti krātuves vietnē GitHub.

Risinājums ir balstīts uz IOKernel algoritmu, kas darbojas ar īpašu daudzprocesoru sistēmas kodolu. Tas pārvalda CPU pieprasījumus, izmantojot sistēmu DPDK, kas ļauj lietojumprogrammām tieši sazināties ar tīkla ierīcēm.

IOkernel izlemj, kuriem kodoliem deleģēt konkrētu uzdevumu. Algoritms arī izlemj, cik kodolu būs nepieciešams. Katram procesam tiek noteikti galvenie kodoli (garantētie) un papildu kodoli (burstable) - pēdējie tiek palaisti, ja strauji palielinās pieprasījumu skaits centrālajam procesoram.

IOkernel pieprasījumu rinda ir organizēta kā gredzena buferis. Ik pēc piecām mikrosekundēm algoritms pārbauda, ​​vai visi kodolam piešķirtie uzdevumi ir izpildīti. Lai to izdarītu, tā salīdzina pašreizējo bufera galvas atrašanās vietu ar tā astes iepriekšējo pozīciju. Ja izrādās, ka aste jau bija rindā iepriekšējās pārbaudes laikā, sistēma atzīmē bufera pārslodzi un piešķir procesam papildu kodolu.

Sadalot slodzi, prioritāte tiek dota kodoliem, kuros tas pats process tika izpildīts agrāk un daļēji palika kešatmiņā, vai jebkuriem dīkstāves kodoliem.

Jauns CPU slodzes balansētājs no MIT

Shenango turklāt izmanto pieeju darba zagšana. Vienas lietojumprogrammas palaišanai piešķirtie kodoli uzrauga viens otram veicamo uzdevumu skaitu. Ja viens kodols pabeidz savu uzdevumu sarakstu pirms citiem, tad tas “atbrīvo” daļu slodzes no saviem kaimiņiem.

Priekšrocības un trūkumi

Par saskaņā ar inženieri no MIT, Shenango spēj apstrādāt piecus miljonus pieprasījumu sekundē un uzturēt vidējo atbildes laiku 37 mikrosekundes. Eksperti saka, ka dažos gadījumos tehnoloģija var palielināt datu centru procesoru izmantošanas līmeni līdz 100%. Līdz ar to datu centru operatori varēs ietaupīt uz serveru iegādes un uzturēšanas rēķina.

Risinājuma potenciāls svinēt un speciālisti no citām augstskolām. Saskaņā ar profesora no Korejas institūta teikto, MIT sistēma palīdzēs samazināt tīmekļa pakalpojumu aizkavēšanos. Piemēram, tas noderēs interneta veikalos. Izpārdošanas dienās lappušu ielāde aizkavējas pat otro reizi приводит līdz vietnes skatījumu skaita samazinājumam par 11%. Ātra slodzes sadale palīdzēs apkalpot vairāk klientu.

Tehnoloģijai joprojām ir trūkumi - tā neatbalsta daudzprocesorus NUMA-sistēmas, kurās mikroshēmas ir savienotas ar dažādiem atmiņas moduļiem un “nesazinās” savā starpā. Šajā gadījumā IOKernel var regulēt atsevišķas procesoru grupas darbību, bet ne visas servera mikroshēmas.

Jauns CPU slodzes balansētājs no MIT
/ foto Tims Rekmans CC BY

Līdzīgas tehnoloģijas

Citas procesoru slodzes līdzsvarošanas sistēmas ietver Arachne. Tas aprēķina, cik kodolu būs nepieciešams lietojumprogrammai, startējot, un sadala procesus atbilstoši šim rādītājam. Pēc autoru domām, maksimālais lietojumprogrammas latentums Arahnē ir aptuveni 10 tūkstoši mikrosekunžu.

Tehnoloģija ir ieviesta kā C++ bibliotēka operētājsistēmai Linux, un tās pirmkods ir pieejams vietnē GitHub.

Vēl viens līdzsvarošanas rīks ir ZygOS. Tāpat kā Shenango, tehnoloģija izmanto darba zagšanas metodi, lai pārdalītu procesus. Pēc ZygOS autoru domām, vidējais lietojumprogrammas latentums, izmantojot rīku, ir aptuveni 150 mikrosekundes, bet maksimālais - aptuveni 450 mikrosekundes. Projekta kods arī ir ir publiskajā īpašumā.

Atzinumi

Mūsdienīgie datu centri turpina paplašināties Pieaugošā tendence īpaši jūtama hipermēroga datu centru tirgū: nu jau pasaulē tur ir 430 hipermēroga datu centri, bet tuvākajos gados to skaits var pieaugt par 30%. Šī iemesla dēļ procesoru slodzes līdzsvarošanas tehnoloģijas būs ļoti pieprasītas. Tādas sistēmas kā Shenango jau ir pieejamas īstenot lielām korporācijām, un šādu rīku skaits nākotnē tikai pieaugs.

Ziņas no pirmā emuāra par korporatīvo IaaS:

Avots: www.habr.com

Pievieno komentāru