Uus CPU koormuse tasakaalustaja MITilt

Shenango süsteemi plaanitakse kasutada andmekeskustes.

Uus CPU koormuse tasakaalustaja MITilt
/ фото Marco Verch Kommertstoodete sünd

Ühe teenusepakkuja andmetel on andmekeskustes kasutavad kokku 20–40% saadaval olevatest arvutusvõimetest. Suurte koormuste korral võib see näitaja ulatus 60%-ni. Selline ressursside jaotamine viib nn «zombi-serverite» tekkeni. Need on masinad, mis suurema osa ajast seisavad, kasutades elektrit raisku. Täna on maailmas 30% serveritest töötavad mitteaktiivsed, tarbides elektrit kogusummas 30 miljardit dollarit aastas.

Mitu MIT inseneri on otsustanud võidelda ebaefektiivse arvutusressursside kasutamise vastu.

Inseneride meeskond arendas loob koormuse tasakaalu süsteemi protsessoritele nimega Shenango. Selle eesmärk on jälgida ülesannete puhveri olekut ja jaotada «kinni jäänud» protsessid (mis ei saa saada protsessoriaega) vabadele masinatele.

Kuidas Shenango töötab

Shenango on C-keeles kirjutatud Linuxi raamatukogu, millel on Rusti ja C++ sidemed. Projekti kood ja testrakendused on avaldatud hoidlad GitHubis.

Lahenduse aluseks on IOKernel algoritm, mis töötab eraldiseisva südamiku pe multitöötlus süsteemis. See haldab CPU päringute korraldamist DPDK raamistikuga, DPDK, mis võimaldab rakendustel suhelda otse võrgu seadmetega.

IOKernel otsustab, millistele südamikele konkreetne ülesanne edastada. Algoritm määrab ka, kui palju südamikke on vaja. Iga protsessi jaoks määratakse põhiytrokes (garanteeritud) ja täiendavad (burstable) — viimased käivitatakse järsku suurenevate CPU päringute korral.

IOKernel päringute järjekord on organiseeritud ringpuhvrina. Iga viie mikroseundi järel kontrollib algoritm, kas kõik südamikule määratud ülesanded on täidetud. Selleks võrdleb ta „pea“ asukohta puhvris selle „saba“ varasema asukohaga. Kui selgub, et saba oli juba järjekorras enne eelmist kontrollimist, tuvastab süsteem puhvri ülekoormuse ja määrab protsessile täiendava südamiku.

Koormuse jaotamisel antakse eelpriority südamikele, kus selline protsess on varem töötanud ja osaliselt jäi vahemällu, või igasugustele passiivsetele südamikele.

Uus CPU koormuse tasakaalustaja MITilt

Shenango kasutab täiendavalt lähenemist töö varastamineTöötlemiseks eraldatud tuumad jälgivad üksteise ülesannete arvu. Kui üks tuum lõpetab oma ülesannete loendi enne teisi, "võtab" see naabrite koormusest osa maha.

Eelised ja puudused

Ajal sõnadele MITi inseneride sõnul suudab Shenango töödelda viis miljonit päringut sekundis ja hoida keskmist reageerimisaega 37 mikrosekundit. Eksperdid väidavad, et teatud juhtudel võib tehnoloogia tõsta andakeskuste protsessorite kasutusmäärad 100% -ni. Tulemusena saavad andakeskuse operaatorid kokkuhoidu serverite ostmisel ja hooldamisel.

Lahenduse potentsiaal toovad esile ja spetsialistid teistest ülikoolidest. Korea instituudi professori arvates aitab MITi süsteem vähendada veebiteenuste töötamise viivitusi. Näiteks võib see olla kasulik veebipoe tööks. Müügipäevadel isegi sekundi pikkune lehe laadimise viivitus kaasa viib saidi külastuste arvu vähenemiseni 11%. Operatiivne koormuse jaotamine aitab teenindada rohkem kliente.

Tehnoloogial on aga puudused — see ei toeta mitme protsessoriga NUMA-süsteeme, kus kiibid on ühendatud erinevate mälumoodulitega ja ei "suhtle" omavahel. Sel juhul võib IOKernel reguleerida eraldi protsessorigruppi, kuid mitte kõiki serveri kiipe.

Uus CPU koormuse tasakaalustaja MITilt
/ фото Tim Reckmann Kommertstoodete sünd

Sarnased tehnoloogiad

Muude protsessorikoormuse tasakaalu süsteemide seas võib välja tuua Arachne. See arvutab, kui palju tuumasid rakendus vajab selle käivitamise hetkel, ja jaotab protsessid vastavalt sellele näitajale. Autorite hinnangul on Arachne rakenduse maksimaalne viivitus umbes 10 000 mikrosekundit.

Tehnoloogia on ellu viidud C++ raamatukoguna Linuxile ja selle allikas on saadaval GitHub.

Veel üks tasakaalustaja tööriist on ZygOS. Nagu Shenango, kasutab see protsesside ümberjaotamiseks töökohustuste varguse meetodit. ZygOS autorite sõnul on rakenduste keskmine viivitus tööriista kasutamisel umbes 150 mikrosekundit, maksimaalne aga umbes 450 mikrosekundit. Projekti kood on samuti avalikult kättesaadav.

Järeldused

Kaasajad andakeskused jätkavad laienemist, eriti on nähtav tendents hüpermastaapses andakeskuste turul: hetkel on maailmas olemas 430 hüper-škala andmekeskust, kuid juba lähiaastatel võib nende arv suureneda 30%. Seetõttu on protsessorite koormuse tasakaalustamise tehnoloogiad väga nõudlikud. Süsteemid nagu Shenango on juba praegu rakendamisel suurettevõtetes ja tulevikus selliste tööriistade arv ainult kasvab.

Postitused Esimesest blogist ettevõtte IaaS kohta:

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster