Uus CPU koormuse tasakaalustaja MIT-ilt

Shenango süsteemi plaanitakse kasutada andmekeskustes.

Uus CPU koormuse tasakaalustaja MIT-ilt
/ фото Marco Verch CC BY

Ühe teenusepakkuja andmetel, andmekeskused kasutatud kui palju 20–40% saadaolevatest arvutusressurssidest. Suure koormuse korral võib see näitaja ulatus 60%-ni.Selline ressursside jaotamine toob kaasa nn «zombie-serverite» tekkimise. Need on masinad, mis suurema osa ajast seisavad, raisates elektrit. Täna seisab 30% serveritest maailmas töötleva elektrita, tarbides elektrit 30 miljardi dollari eest aastas.

MIT-s otsustati võidelda arvutusressursside ebaefektiivse kasutamise vastu.

Inseneride meeskond arendas protsessorite koormuse tasakaalustamise süsteem nimega Shenango. Selle eesmärk on jälgida ülesannete puhvri seisundit ja jaotada «ummikus» protsessid (mis ei saa protsessoriaega) vabadele masinatele.

Kuidas Shenango töötab

Shenango on Linuxi teek C keeles Rusti ja C++ sidumistega. Projekti kood ja testrakendused on avaldatud repositoriis on GitHub.

Lahenduse aluseks on IOKernel algoritm, mis töötab mitme protsessoriga süsteemi eraldi tuumadel. See haldab CPU päringute käsitlemist raamistiku kaudu DPDK, mis võimaldab rakendustel otse suhelda võrgu seadmetega.

IOKernel otsustab, millistele tuumadele konkreetsed ülesanded üle anda. Algoritm määrab ka, kui palju tuumasid on vajalik. Iga protsessi jaoks määratakse kindlaks põhi tuumad (guaranteed) ja lisatuumad (burstable) — viimased aktiveeritakse siis, kui CPU päringute arv järsult suureneb.

IOKernel'i päringute järjekord on korraldatud ringikujulise puhvri. Iga viie mikrosekundi tagant kontrollib algoritm, kas kõik määratud ülesanded on tuumale täidetud. Selleks võrdleb see puhvri 'pea' praegust asukohta oma 'saba' eelmise asukohaga. Kui selgub, et saba oli juba järjekorras eelmisel kontrollimisel, märgib süsteem puhvri ülekoormust ja eraldab protsessile täiendava tuuma.

Koormuse jaotamisel antakse prioriteet tuumadele, millel sama protsess oli eelnevalt käimas ja mis on osaliselt jäädvustatud vahemälu, või igasugustele inaktiivsetele tuumadele.

Uus CPU koormuse tasakaalustaja MIT-ilt

Shenango kasutab lisaks lähenemist töö varastamine. Üksikrakendusele eraldatud südamikud jälgivad üksteise ülesannete arvu. Kui üks südamik lõpetab oma tööülesannete loendi enne teisi, "võtab" ta naabrite koormust maha.

Eelised ja puudused

Kohal sõnadega MIT inseneride seas, Shenango suudab töödelda viis miljonit päringut sekundis ja hoida keskmist reageerimise aega 37 mikrosekundit. Asjatundjad väidavad, et mõnel juhul suudab tehnoloogia tõsta andmekeskuste protsessorite kasutuskoefitsienti kuni 100%. Seetõttu saavad andmekeskuse operaatorid säästa serverite soetamisel ja hooldamisel.

Lahenduse potentsiaal märgib ja spetsialistid teistest ülikoolidest. Korea instituudi professori arvates aitab MIT süsteem vähendada veebiteenuste tööde viivitusi. Näiteks on see kasulik online-poodide funktsioneerimisel. Müügipäevade ajal isegi sekundi laadimisaeg toob kaasa toob kaasa saidi vaatamiste arvu vähenemise 11%. Kiire koormuse jaotamine aitab teenindada rohkem kliente.

Tehnoloogial on endiselt puudusi — see ei toeta mitme protsessoriga NUMA-süsteeme, kus kiibid on ühendatud erinevate mälumoodulitega ja ei „suhtle” omavahel. Sellisel juhul võib IOKernel reguleerida teatud protsessorigruppi, kuid mitte kõiki serveri kiipe.

Uus CPU koormuse tasakaalustaja MIT-ilt
/ фото Tim Reckmann CC BY

Sarnased tehnoloogiad

Muude protsessorite koormuse tasakaalustamise süsteemide hulgas paistab silma Arachne. See arvutab, kui palju tuumadest on rakendusele vajalikke hetkel selle käivitamisel, ja jaotab protsessid vastavalt sellele näitajale. Autorite hinnangul on rakenduse maksimaalne viivitus Arachne’s umbes 10 tuhat mikrosekundit.

Tehnoloogia on rakendatud C++ raamatukoguna Linuxile, ning selle lähtekood on saadaval GitHub.

Veel üks tasakaalustamisriist — ZygOS. Nagu Shenango, kasutab see tehnoloogia protsesside ümberjaotamiseks work stealing meetodit. ZygOS autorite andmetel on rakenduste keskmine viivitus tööriista kasutamisel umbes 150 mikrosekundit ja maksimaalne viivitus umbes 450 mikrosekundit. Projekti kood on samuti avatud juurdepääsuga.

Järeldused

Kaasaegsed andmekeskused jätkavad laienemist, eriti on hüpertskaala andmekeskuste turul kasvu suundumus märgatav: maailmas on hetkel on olemas 430 hüperskaala andmekeskust, kuid juba lähitulevikus võib nende arv suureneda 30%. Seetõttu on protsessorite koormuse tasakaalustamise tehnoloogiale suur nõudlus. Sellised süsteemid nagu Shenango on juba praegu käimas suurettevõtete seas ning tulevikus suureneb selliste tööriistade arv ainult.

Postitused Esimese blogi kohta ettevõtte IaaS:

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster