Systém Shenango plánujú využiť v dátových centrách.
/ фото
Podľa údajov jedného z poskytovateľov, dátové centrá majú len 20–40% dostupných výpočtových výkonov. Pri vysokých zaťaženiach môže tento ukazovateľ . 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 , 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 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 GitHub.
Základom riešenia je algoritmus IOKernel, ktorý beží na vyhradenom jadre viacerých procesorov. Upravuje požiadavky na CPU pomocou rámca , 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 . 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á.

Shenango navyše využíva prístup Jadrá, 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í 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 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 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é -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.

/ фото
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 .
Ď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ž .
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 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 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
