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