Ny CPU load balancer fra MIT

Shenango-systemet er planlagt brukt i datasentre.

Ny CPU load balancer fra MIT
/ bilde Marco verken CC BY

Ifølge en av leverandørene, datasentre bruk bare 20–40 % av tilgjengelig datakraft. Ved høy belastning denne indikatoren kan nå 60 %. Denne fordelingen av ressurser fører til fremveksten av såkalte "zombieservere". Dette er maskiner som står stille mesteparten av tiden og sløser med energi. I dag 30% av serverne i verden er uten arbeidforbruker strøm for 30 milliarder dollar per år.

MIT bestemte seg for å bekjempe ineffektiv bruk av dataressurser.

Ingeniørteam har utviklet prosessor lastbalanseringssystem kalt Shenango. Formålet er å overvåke tilstanden til oppgavebufferen og omdistribuere fastlåste prosesser (som ikke kan motta CPU-tid) til å frigjøre maskiner.

Hvordan Shenango fungerer

Shenango er et Linux-bibliotek i C med Rust- og C++-bindinger. Prosjektkoden og testapplikasjonene publiseres i depoter på GitHub.

Løsningen er basert på IOKernel-algoritmen, som kjører på en dedikert kjerne i et multiprosessorsystem. Den administrerer CPU-forespørsler ved hjelp av et rammeverk DPDK, som lar applikasjoner kommunisere direkte med nettverksenheter.

IOKernel bestemmer hvilke kjerner en spesifikk oppgave skal delegeres til. Algoritmen bestemmer også hvor mange kjerner som skal til. For hver prosess bestemmes hovedkjernene (garantert) og ytterligere (burstable) - sistnevnte lanseres i tilfelle en kraftig økning i antall forespørsler til CPU.

IOKernel-forespørselskøen er organisert som ringbuffer. Hvert femte mikrosekund sjekker algoritmen om alle oppgavene som er tildelt kjernen er fullført. For å gjøre dette sammenligner den den nåværende plasseringen av bufferens hode med den forrige posisjonen til halen. Hvis det viser seg at halen allerede var i køen på tidspunktet for forrige kontroll, merker systemet bufferoverbelastningen og tildeler en ekstra kjerne for prosessen.

Ved fordeling av lasten blir prioritet gitt til kjerner som den samme prosessen ble utført på tidligere og delvis forble i cachen, eller til eventuelle ledige kjerner.

Ny CPU load balancer fra MIT

Shenango tar i tillegg tilnærmingen arbeid å stjele. Kjernene som er tildelt for å kjøre én applikasjon overvåker antall oppgaver hverandre har. Hvis en kjerne fullfører sin liste over oppgaver før de andre, så "avlaster" den en del av belastningen fra naboene.

Fordeler og ulemper

i følge ingeniører fra MIT, Shenango er i stand til å behandle fem millioner forespørsler per sekund og opprettholde en gjennomsnittlig responstid på 37 mikrosekunder. Eksperter sier at teknologien i noen tilfeller kan øke utnyttelsesgraden av prosessorer i datasentre til 100 %. Som et resultat vil datasenteroperatører kunne spare på kjøp og vedlikehold av servere.

Løsningspotensial mark og spesialister fra andre universiteter. Ifølge en professor fra et koreansk institutt vil MIT-systemet bidra til å redusere forsinkelser i webtjenester. For eksempel vil det være nyttig i nettbutikker. På salgsdager er det til og med en ny forsinkelse i sideinnlasting приводит til en nedgang i antall sidevisninger med 11 %. Rask lastfordeling vil hjelpe flere kunder.

Teknologien har fortsatt ulemper - den støtter ikke multiprosessor NUMA-systemer der brikker er koblet til forskjellige minnemoduler og ikke "kommuniserer" med hverandre. I dette tilfellet kan IOKernel regulere driften av en egen gruppe prosessorer, men ikke alle serverbrikker.

Ny CPU load balancer fra MIT
/ bilde Tim Reckmann CC BY

Lignende teknologier

Andre prosessorbelastningsbalanseringssystemer inkluderer Arachne. Den beregner hvor mange kjerner en applikasjon vil trenge når den starter, og distribuerer prosesser i henhold til denne indikatoren. I følge forfatterne er den maksimale latensen for en applikasjon i Arachne omtrent 10 tusen mikrosekunder.

Teknologien er implementert som et C++-bibliotek for Linux, og kildekoden er tilgjengelig på GitHub.

Et annet balanseringsverktøy er ZygOS. I likhet med Shenango bruker teknologien metoden for arbeid som stjeler for å omfordele prosesser. I følge forfatterne av ZygOS er den gjennomsnittlige applikasjonsforsinkelsen ved bruk av verktøyet omtrent 150 mikrosekunder, og maksimum er omtrent 450 mikrosekunder. Prosjektkoden er også er i det offentlige domene.

Funn

Moderne datasentre fortsetter å ekspandere. Den økende trenden er spesielt merkbar i markedet for hyperskala datasentre: nå i verden det er 430 hyperskala datasentre, men i de kommende årene kan antallet øke med 30 %. Av denne grunn vil prosessorbelastningsbalanseringsteknologier være etterspurt. Systemer som Shenango er allerede tilgjengelige implementere store selskaper, og antallet slike verktøy vil bare vokse i fremtiden.

Innlegg fra den første bloggen om bedriftens IaaS:

Kilde: www.habr.com

Legg til en kommentar