Et nyt system af MIT-forskere forbedrer effektiviteten af højhastighedsoperationer i datacentre ved bedre at tildele tidfølsom databehandling på tværs af CPU-kerner og sikre, at hardware kører produktivt. Kredit:Massachusetts Institute of Technology
Dagens datacentre spiser op og spilder en god mængde energi på at reagere på brugeranmodninger så hurtigt som muligt, med kun et par mikrosekunder forsinkelse. Et nyt system af MIT-forskere forbedrer effektiviteten af højhastighedsoperationer ved bedre at tildele tidfølsom databehandling på tværs af centrale processorenhed (CPU) -kerner og sikre, at hardware kører produktivt.
Datacentre fungerer som distribuerede netværk, med mange web- og mobilapplikationer implementeret på en enkelt server. Når brugere sender anmodninger til en app, bits lagrede data trækkes fra hundredvis eller tusinder af tjenester på tværs af så mange servere. Inden du sender et svar, appen skal vente på, at den langsomste service behandler dataene. Denne forsinkelse er kendt som halelatens.
Nuværende metoder til at reducere hale latencies efterlader tonsvis af CPU -kerner i en server åben for hurtigt at håndtere indgående anmodninger. Men det betyder, at kerner sidder ledigt i det meste af tiden, mens servere fortsætter med at bruge energi bare for at forblive tændt. Datacentre kan indeholde hundredtusinder af servere, så selv små forbedringer i hver servers effektivitet kan spare millioner af dollars.
Alternativt kan nogle systemer omfordeler kerner på tværs af apps baseret på arbejdsbyrde. Men dette sker over millisekunder-omkring en tusindedel af den ønskede hastighed for nutidens hurtige anmodninger. At vente for længe kan også forringe en apps ydeevne, fordi alle oplysninger, der ikke behandles før en tildelt tid, ikke sendes til brugeren.
I et papir, der blev præsenteret på USENIX Networked Systems Design and Implementation -konferencen i næste uge, forskerne udviklede et hurtigere kerneallokeringssystem, kaldet Shenango, der reducerer hale latenser, samtidig med at man opnår en høj effektivitet. Først, en ny algoritme opdager, hvilke apps der kæmper med at behandle data. Derefter, en softwarekomponent tildeler inaktive kerner til at håndtere appens arbejdsbyrde.
"I datacentre, der er en afvejning mellem effektivitet og latenstid, og du skal virkelig omfordele kerner med meget finere granularitet end hvert millisekund, "siger første forfatter Amy Ousterhout, en ph.d. studerende i datalogi og kunstig intelligenslaboratorium (CSAIL). Shenango lader servere "styre operationer, der forekommer på virkelig korte tidsskalaer og gøre det effektivt."
Energi- og omkostningsbesparelser vil variere fra datacenter, afhængig af størrelse og arbejdsbyrde. Men det overordnede mål er at forbedre datacenterets CPU -udnyttelse, så hver kerne bliver brugt godt. De bedste CPU -udnyttelsesgrader i dag ligger på omkring 60 procent, men forskerne siger, at deres system potentielt kan øge dette tal til 100 procent.
"Datacenterudnyttelse i dag er ret lav, "siger medforfatter Adam Belay, en adjunkt i elektroteknik og datalogi og en CSAIL -forsker. "Dette er et meget alvorligt problem [der ikke kan] løses et enkelt sted i datacenteret. Men dette system er et kritisk stykke for at drive udnyttelsen højere."
Sammen med Ousterhout og Belay på papiret er Hari Balakrishnan, Fujitsu -professor i Institut for Elektroteknik og Datalogi, og CSAIL Ph.D. eleverne Jonathan Behrens og Joshua Fried.
Effektiv trængselsdetektion
I et virkeligt datacenter, Shenango - algoritme og software - ville køre på hver server i et datacenter. Alle servere ville være i stand til at kommunikere med hinanden.
Systemets første innovation er en ny algoritme til registrering af overbelastning. Hver femte mikrosekund kontrollerer algoritmen datapakker i kø til behandling for hver app. Hvis en pakke stadig venter fra den sidste observation, algoritmen bemærker, at der er mindst en forsinkelse på 5 mikrosekunder. Det kontrollerer også, om der er beregningsprocesser, kaldes tråde, venter på at blive henrettet. Hvis så, systemet mener, at en "overbelastet" app.
Det virker simpelt nok. Men køens struktur er vigtig for at opnå registrering af overbelastning i mikroskala. Traditionel tænkning betød, at softwaren skulle kontrollere tidsstemplet for hver datapakke i kø, hvilket ville tage for meget tid.
Forskerne implementerer køerne i effektive strukturer kendt som "ringbuffere". Disse strukturer kan visualiseres som forskellige slots omkring en ring. Den første indtastede datapakke går ind i en startplads. Når der kommer nye data, de falder ned i efterfølgende slots rundt om ringen. Som regel, disse strukturer bruges til først-i-først-ud-databehandling, trække data fra startpladsen og arbejde mod slutpladsen.
Forskernes system, imidlertid, gemmer kun datapakker kort i strukturerne, indtil en app kan behandle dem. I mellemtiden, de gemte pakker kan bruges til overbelastningskontrol. Algoritmen behøver kun at sammenligne to punkter i køen - placeringen af den første pakke, og hvor den sidste pakke var for fem mikrosekunder siden - for at afgøre, om pakkerne oplever en forsinkelse.
"Du kan se på disse to punkter, og spore deres fremskridt hvert femte mikrosekund, for at se, hvor mange data der er blevet behandlet, "Siger Fried. Fordi strukturerne er enkle, "du skal kun gøre dette en gang pr. kerne. Hvis du ser på 24 kerner, du foretager 24 kontroller på fem mikrosekunder, som skalerer pænt. "
Smart tildeling
Den anden innovation kaldes IOKernel, den centrale software -hub, der styrer datapakker til passende apps. IOKernel bruger også algoritmen til registrering af overbelastning til hurtigt at allokere kerner til overbelastede apps størrelsesordener hurtigere end traditionelle metoder.
For eksempel, IOKernel kan muligvis se en indgående datapakke til en bestemt app, der kræver mikro -sekundære behandlingshastigheder. Hvis appen er overbelastet på grund af mangel på kerner, IOKernel bruger straks en inaktiv kerne til appen. Hvis den også ser en anden app, der kører kerner med mindre tidsfølsomme data, det vil gribe nogle af disse kerner og omfordele dem til den overbelastede app. Selve apps hjælper også:Hvis en app ikke behandler data, det advarer IOKernel om, at dets kerner kan omfordeles. Behandlede data går tilbage til IOKernel for at sende svaret.
"IOKernel koncentrerer sig om, hvilke apps der har brug for kerner, der ikke har dem, "Siger Behrens." Det forsøger at finde ud af, hvem der er overbelastet og har brug for flere kerner, og giver dem kerner så hurtigt som muligt, så de ikke falder bagud og har enorme forsinkelser. "
Den stramme kommunikation mellem IOKernel, algoritme, apps, og serverhardware er "unik i datacentre" og giver Shenango mulighed for at fungere problemfrit, Belay siger:"Systemet har global synlighed i, hvad der sker på hver server. Det ser hardwaren, der leverer pakkerne, hvad kører hvor i hver kerne, og hvor optaget hver af apps er. Og det gør det i mikrosekundskalaen. "
Næste, forskerne forfiner Shenango til implementering af datacentre i den virkelige verden. For at gøre det, de sikrer, at softwaren kan håndtere en meget høj datagennemstrømning og har passende sikkerhedsfunktioner.