Nový vyvážič zaťaženia CPU od MIT

Systém Shenango plánujú využiť v dátových centrách.

Nový vyvážič zaťaženia CPU od MIT
/ фото Marco Verch CC BY

Podľa údajov jedného z poskytovateľov, dátové centrá používajú majú len 20–40% dostupných výpočtových výkonov. Pri vysokých zaťaženiach môže tento ukazovateľ dosahovať 60%. Takéto rozdelenie zdrojov vedie k vzniku takzvaných 'zombie serverov'. To sú stroje, ktoré väčšinu času nepracujú a zbytočne spotrebúvajú elektrinu. Dnes 30% serverov na svete stojí bez práce, spotrebujúc elektrinu v hodnote 30 miliárd dolárov ročne.

Proti neefektívnemu využívaniu výpočtových zdrojov sa rozhodli zabojovať na MIT.

Tím inžinierov vyvinula vyvinul systém vyvažovania záťaže na procesoroch s názvom Shenango. Jeho cieľom je monitorovať stav fronty úloh a preradiť 'zaseknuté' procesy (ktoré nemôžu získať procesorový čas) na voľné stroje.

Ako funguje Shenango

Shenango predstavuje knižnicu Linuxu v jazyku C s viazaním na Rust a C++. Kód projektu a testovacie aplikácie sú uverejnené na repozitári GitHub.

Základom riešenia je algoritmus IOKernel, ktorý beží na vyhradenom jadre viacerých procesorov. Upravuje požiadavky na CPU pomocou rámca DPDK, ktorý umožňuje aplikáciám priamo komunikovať so sieťovými zariadeniami.

IOKernel rozhoduje, ktorým jadrom priradiť konkrétnu úlohu. Algoritmus tiež určuje, koľko jadier bude potrebných. Pre každý proces sú určené hlavné jadrá (guaranteed) a dodatočné (burstable) — druhé sú spustené v prípade náhleho zvýšenia počtu požiadaviek na CPU.

Fronta požiadaviek IOKernel je organizovaná vo forme prstencovej vyrovnávacej pamäte. Každých päť mikrosekúnd algoritmus kontroluje, či sú všetky úlohy priradené jadru splnené. Na tento účel porovnáva aktuálnu polohu 'hlavy' vyrovnávacej pamäte s predchádzajúcou polohou jej 'chvosta'. Ak sa ukáže, že chvost už bol vo fronte v čase predchádzajúcej kontroly, systém označí preťaženie vyrovnávacej pamäte a pridelí pre proces dodatočné jadro.

Pri rozdeľovaní záťaže sa uprednostňujú jadrá, na ktorých sa taký istý proces vykonával skôr a čiastočne ostal v cache pamäti, alebo akékoľvek nečinné jadrá.

Nový vyvážič zaťaženia CPU od MIT

Shenango navyše využíva prístup ukradnutia práceJadrá, vyhradené na prácu jedného aplikácie, sledujú počet úloh medzi sebou. Ak jedno jadro dokončí svoj zoznam úloh skôr ako ostatné, "zníži" časť záťaže na susedov.

Výhody a nevýhody

V porovnaní súhrnu inžinierov z MIT, Shenango dokáže spracovať päť miliónov požiadaviek za sekundu a udržať priemerný čas reakcie na úrovni 37 mikrosekúnd. Odborníci tvrdia, že v niektorých prípadoch dokáže technológia zvýšiť využitie procesorov v dátových centrách až na 100%. V dôsledku toho budú operátori dátových centier schopní šetriť na nákupe a údržbe serverov.

Potenciál riešenia poznamenávajú a odborníkov z iných univerzít. Podľa profesora z kórejského inštitútu systém z MIT pomôže skrátiť oneskorenia v práci webových služieb. Napríklad, použije sa v online obchodoch. Počas akcií aj sekondové oneskorenie načítania stránky vedie vedie k zníženiu počtu zobrazení stránky o 11%. Rýchle rozdelenie záťaže pomôže obslúžiť viac zákazníkov.

Technológia má zatiaľ svoje nevýhody — nepodporuje viacprocesorové NUMA-systémy, v ktorých sú čipy pripojené k rôznym modulom pamäte a „nekomunikujú“ medzi sebou. V takom prípade môže IOKernel regulovať prácu samostatnej skupiny procesorov, ale nie všetkých čipov servera.

Nový vyvážič zaťaženia CPU od MIT
/ фото Tim Reckmann CC BY

Podobné technológie

Medzi inými systémami vyvažovania záťaže na procesoroch patrí Arachne. Počítava, koľko jadier bude aplikácia potrebovať v momente jej spustenia, a rozdeľuje procesy podľa tohto ukazovateľa. Podľa odhadov autorov maximálne oneskorenie v práci aplikácie v Arachne je približne 10 tisíc mikrosekúnd.

Technológia je implementovaná vo forme knižnice C++ pre Linux a jej zdrojový kód je k dispozícii na GitHub.

Ďalší nástroj na vyvažovanie záťaže — ZygOS. Tak ako Shenango, technológia využíva na preusporiadanie procesov metódu work stealing. Podľa údajov autorov ZygOS, priemerná doba oneskorenia v práci aplikácií pri použití nástroja je približne 150 mikrosekúnd a maximum je približne 450 mikrosekúnd. Kód projektu je tiež vo verejnom prístupe.

Zhrnutie

Moderné dátové centrá sa naďalej rozširujú, najmä tendencia k nárastu je viditeľná na trhu hyperscale dátových centier: v súčasnosti na svete existuje 430 hyper-scale dátových centier, ale v nasledujúcich rokoch by ich počet mohol vzrásť o 30 %. Z tohto dôvodu budú technológie vyvažovania záťaže na procesoroch veľmi žiadané. Systémy ako Shenango už teraz implementujú veľké korporácie, a v budúcnosti sa počet takýchto nástrojov bude len zvyšovať.

Príspevky z Prvého blogu o korporátnom IaaS:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster