Ny CPU-belaster fra MIT.

Shenango-systemen planlægges anvendt i datacentre.

Ny CPU-belaster fra MIT.
/ фото Marco Verch CC BY

Ifølge en af udbyderne, datacentre bruger kun 20–40 % af de tilgængelige beregningsressourcer. Ved høje belastninger kan dette tal nå op på 60 %. 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 uden arbejde, hvilket forbruger elektricitet for $30 milliarder om året.

MIT har besluttet at bekæmpe ineffektiv ressourceanvendelse.

Ingeniørteamet har udviklet 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 repository 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 DPDK, 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 en ringbuffer. 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.

Ny CPU-belaster fra MIT.

Shenango anvender desuden en tilgang work stealingKernene, 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 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 prognoserne 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 angiver 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 NUMA-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.

Ny CPU-belaster fra MIT.
/ фото Tim Reckmann CC BY

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å GitHub.

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å tilgængelig for offentligheden.

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 eksisterer 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 af 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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster