Naujas procesoriaus apkrovos balansavimo įrenginys iš MIT

„Shenango“ sistemą planuojama naudoti duomenų centruose.

Naujas procesoriaus apkrovos balansavimo įrenginys iš MIT
/ nuotrauka Marco Verchas CC BY

Pasak vieno iš tiekėjų, duomenų centrai naudoti tik 20–40 % turimos skaičiavimo galios. Esant didelėms apkrovoms šis indikatorius gali siekti 60 proc.. Toks išteklių paskirstymas lemia vadinamųjų „zombių serverių“ atsiradimą. Tai mašinos, kurios didžiąją laiko dalį sėdi be darbo ir eikvoja energiją. Šiandien 30% serverių pasaulyje yra be darbo, per metus sunaudodama 30 milijardų dolerių vertės elektros energijos.

MIT nusprendė kovoti su neefektyviu skaičiavimo išteklių naudojimu.

Inžinierių komanda išvystė procesoriaus apkrovos balansavimo sistema, vadinama Shenango. Jo tikslas yra stebėti užduočių buferio būseną ir perskirstyti įstrigusius procesus (kurie negali gauti CPU laiko) į laisvus įrenginius.

Kaip veikia Shenango

„Shenango“ yra „Linux“ biblioteka C versijoje su „Rust“ ir „C++“ sąsajomis. Projekto kodas ir bandymų paraiškos skelbiamos saugyklos „GitHub“.

Sprendimas pagrįstas IOKernel algoritmu, kuris veikia tam skirtame kelių procesorių sistemos branduolyje. Jis valdo procesoriaus užklausas naudodamas sistemą DPDK, kuri leidžia programoms tiesiogiai susisiekti su tinklo įrenginiais.

IOkernel nusprendžia, kuriems branduoliams perduoti konkrečią užduotį. Algoritmas taip pat nusprendžia, kiek branduolių reikės. Kiekvienam procesui nustatomi pagrindiniai branduoliai (garantuoti) ir papildomi (burstable) - pastarieji paleidžiami smarkiai padidėjus užklausų CPU skaičiui.

„IOKernel“ užklausų eilė organizuojama kaip žiedo buferis. Kas penkias mikrosekundes algoritmas patikrina, ar visos branduoliui priskirtos užduotys buvo atliktos. Norėdami tai padaryti, jis lygina dabartinę buferio galvutės vietą su ankstesne jo uodegos padėtimi. Jei paaiškėja, kad ankstesnio patikrinimo metu uodega jau buvo eilėje, sistema pažymi buferio perkrovą ir procesui skiria papildomą branduolį.

Paskirstant apkrovą pirmenybė teikiama branduoliams, kuriuose tas pats procesas buvo atliktas anksčiau ir iš dalies liko talpykloje, arba bet kokiems neveikiantiems branduoliams.

Naujas procesoriaus apkrovos balansavimo įrenginys iš MIT

Shenango papildomai laikosi požiūrio darbo vagystės. Vienai programai paleisti skirti branduoliai stebi viena kitos atliekamų užduočių skaičių. Jei vienas branduolys užbaigia savo užduočių sąrašą anksčiau už kitus, tada jis „atleidžia“ dalį apkrovos nuo kaimynų.

Privalumai ir trūkumai

Apie žodžiai inžinieriai iš MIT, Shenango gali apdoroti penkis milijonus užklausų per sekundę ir išlaikyti vidutinį 37 mikrosekundžių atsako laiką. Ekspertai teigia, kad kai kuriais atvejais technologija gali padidinti procesorių panaudojimą duomenų centruose iki 100%. Dėl to duomenų centrų operatoriai galės sutaupyti perkant ir prižiūrint serverius.

Sprendimo potencialas švęsti ir kitų universitetų specialistai. Pasak Korėjos instituto profesoriaus, MIT sistema padės sumažinti interneto paslaugų vėlavimą. Pavyzdžiui, tai bus naudinga internetinėse parduotuvėse. Išpardavimo dienomis puslapis įkeliamas net antrą kartą приводит iki svetainės peržiūrų skaičiaus sumažėjimo 11%. Greitas apkrovos paskirstymas padės aptarnauti daugiau klientų.

Technologija vis dar turi trūkumų – ji nepalaiko kelių procesorių NUMA-sistemos, kuriose lustai yra sujungti su skirtingais atminties moduliais ir „nebendrauja“ tarpusavyje. Tokiu atveju „IOKernel“ gali reguliuoti atskiros procesorių grupės, bet ne visų serverio lustų veikimą.

Naujas procesoriaus apkrovos balansavimo įrenginys iš MIT
/ nuotrauka Timas Reckmannas CC BY

Panašios technologijos

Kitos procesoriaus apkrovos balansavimo sistemos apima Arachne. Jis apskaičiuoja, kiek branduolių reikės programai, kai ji paleidžiama, ir paskirsto procesus pagal šį rodiklį. Autorių teigimu, maksimalus programos delsa Arachne yra apie 10 tūkstančių mikrosekundžių.

Ši technologija įdiegta kaip „Linux“ skirta C++ biblioteka, o jos šaltinio kodą galima rasti adresu GitHub.

Kitas balansavimo įrankis yra ZygOS. Kaip ir Shenango, ši technologija naudoja darbo vagystės metodą procesams perskirstyti. Pasak ZygOS autorių, vidutinė aplikacijos delsa naudojant įrankį yra apie 150 mikrosekundžių, o maksimali – apie 450 mikrosekundžių. Projekto kodas taip pat yra yra viešajame domene.

išvados

Šiuolaikiniai duomenų centrai ir toliau plečiasi.Didėjimo tendencija ypač pastebima hipermastinių duomenų centrų rinkoje: dabar jau pasaulyje yra 430 hiperskalės duomenų centrų, tačiau artimiausiais metais jų skaičius gali išaugti 30 proc. Dėl šios priežasties procesorių apkrovos balansavimo technologijos bus labai paklausios. Tokios sistemos kaip „Shenango“ jau yra prieinamos įgyvendinti didelių korporacijų, o tokių priemonių skaičius ateityje tik augs.

Įrašai iš pirmojo tinklaraščio apie įmonės IaaS:

Šaltinis: www.habr.com

Добавить комментарий