Shenango-systemen planlægges anvendt i datacentre.
/ фото
Ifølge en af udbyderne, datacentre kun 20–40 % af de tilgængelige beregningsressourcer. Ved høje belastninger kan dette tal . En sådan ressourcefordeling fører til fremkomsten af såkaldte «zombie-servere». Det er maskiner, der det meste af tiden står stille og spilder elektricitet. I dag står 30 % af serverne i verden , hvilket forbruger elektricitet for $30 milliarder om året.
MIT har besluttet at bekæmpe ineffektiv ressourceanvendelse.
Ingeniørteamet har udviklet et load balancing-system til processorer kaldet Shenango. Dets mål er at overvåge status på opgavebuffere og omfordele de «fastlåste» processer (som ikke kan få CPU-tid) til ledige maskiner.
Hvordan Shenango fungerer
Shenango er et Linux-bibliotek i C med bindings til Rust og C++. Kildekoden til projektet og testapplikationer er offentliggjort i Kildekoden og alle oplysninger
Kernen i løsningen er IOKernel-algoritmen, som kører på et dedikeret kerne i et multiprosessystem. Den håndterer CPU-forespørgsler ved hjælp af et framework , der tillader applikationer at interagere direkte med netværksenheder.
IOKernel beslutter, hvilke kerner der skal tildeles en bestemt opgave. Algoritmen afgør også, hvor mange kerner der er nødvendige. For hver proces bestemmes de primære kerner (guaranteed) og sekundære (burstable) — de sidste aktiveres ved pludselig stigning i antallet af CPU-forespørgsler.
IOKernels forespørgselskø er organiseret som . Hver fem mikrosekunder tjekker algoritmen, om alle opgaver tildelt kernen er udført. For dette sammenlignes den nuværende placering af bufferens «hoved» med positionen af dens «hale» fra den forrige kontrol. Hvis det viser sig, at halen allerede var i køen på tidspunktet for den tidligere kontrol, markerer systemet en overbelastning af bufferen og tildeler en ekstra kerne til processen.
Ved fordeling af belastningen gives prioritet til kernerne, hvor en sådan proces tidligere er blevet udført, og delvist forbliver i cache-hukommelsen, eller til enhver inaktiv kerne.

Shenango anvender desuden en tilgang Kernene, der er dedikeret til at arbejde med én applikation, overvåger antallet af opgaver blandt hinanden. Hvis en kerne afslutter sin opgaveliste hurtigere end de andre, "aflaster" den naboerne.
Fordele og ulemper
Ifølge ingeniører fra MIT, Shenango kan håndtere fem millioner forespørgsler per sekund og opretholde en gennemsnitlig reaktionstid på 37 mikrosekunder. Specialister hævder, at teknologien i nogle tilfælde kan øge udnyttelsesgraden af processorer i datacentre til 100%. Som følge heraf vil datacenteroperatører kunne spare på indkøb og vedligeholdelse af servere.
Potentialet for løsningen og specialister fra andre universiteter. Ifølge en professor fra et koreansk institut vil systemet fra MIT hjælpe med at reducere forsinkelser i webtjenesters ydeevne. For eksempel vil det være nyttigt i onlinebutikker. På udsalgsdage kan selv en sekunds forsinkelse i indlæsningen af en side føre til et fald i antallet af besøg på siden med 11%. Hurtig belastningsfordeling vil hjælpe med at betjene flere kunder.
Teknologien har dog stadig ulemper - den understøtter ikke multiprocessor -systemer, hvor chips er tilsluttet forskellige hukommelsesmoduler og ikke "kommunikerer" med hinanden. I dette tilfælde kan IOKernel regulere arbejdet i en bestemt gruppe processorer, men ikke alle chips på serveren.

/ фото
Lignende teknologier
Blandt andre systemer til belastningsfordeling på processorer skal Arachne nævnes. Den beregner, hvor mange kerner applikationen vil have brug for i det øjeblik, den startes, og fordeler processerne i overensstemmelse med dette tal. Ifølge forfatterne er den maksimale forsinkelse i applikationsarbejde i Arachne omkring 10.000 mikrosekunder.
Teknologien er implementeret som et C++-bibliotek til Linux, og dens kildekode er tilgængelig på .
Endnu et load balancer-værktøj er ZygOS. Ligesom Shenango anvender teknologien metoden work stealing til at omfordele processer. Ifølge forfatterne af ZygOS er den gennemsnitlige forsinkelse i applikationers arbejde, når værktøjet bruges, omkring 150 mikrosekunder, mens den maksimale er omkring 450 mikrosekunder. Koden til projektet er også .
Konklusioner
Moderne datacentre fortsætter med at ekspandere, især er tendensen til vækst tydelig på markedet for hyperscale datacentre: i øjeblikket er der i verden 430 hyper-skalerede datacentre, men allerede i de kommende år kan antallet stige med 30%. Af denne grund vil teknologier til belastningsbalancering på processorer være meget efterspurgte. Systemer som Shenango implementeres allerede nu store virksomheder, og i fremtiden vil antallet af sådanne værktøjer kun stige.
Indlæg fra Den Første Blog om Erhverv IaaS:
Kilde: habr.com
