Nieuwe CPU-load balancer van MIT

Het Shenango-systeem is bedoeld voor gebruik in datacenters.

Nieuwe CPU-load balancer van MIT
/ фото Marco Verch CC BY

Volgens gegevens van een van de aanbieders, datacenters gebruikt beschikken over slechts 20-40% van de beschikbare rekencapaciteit. Bij hoge belastingen kan dit percentage tot 60% oplopen. Dit soort hulpbronnenverdeling leidt tot de opkomst van zogenaamde 'zombie-servers'. Dit zijn machines die het grootste deel van de tijd stil staan en onnodig energie verbruiken. Tegenwoordig staan 30% van de servers ter wereld werkloos, wat elektriciteitskosten van $30 miljard per jaar met zich meebrengt.

Om het inefficiënte verbruik van rekencapaciteit aan te pakken, is er bij MIT besloten om

Een team van ingenieurs heeft ontwikkeld een load balancing-systeem voor CPU's met de naam Shenango in te voeren. Het doel is om de status van de takenbuffer te monitoren en 'vastgelopen' processen (die geen CPU-tijd kunnen krijgen) opnieuw toe te wijzen aan vrije machines.

Hoe Shenango werkt

Shenango is een Linux-bibliotheek in C met bindings voor Rust en C++. De code van het project en testapplicaties zijn gepubliceerd in de repository op GitHub.

De basis van de oplossing is het IOKernel-algoritme, dat draait op een toegewezen kern van een multiprocessorsysteem. Het beheert aanvragen naar de CPU via een framework DPDK, dat applicaties in staat stelt rechtstreeks met netwerkinrichting te communiceren.

IOKernel beslist naar welke kernen een specifieke taak moet worden overgedragen. Het algoritme bepaalt ook hoeveel kernen nodig zijn. Voor elke proces worden primaire kernen (guaranteed) en aanvullende kernen (burstable) gedefinieerd — de laatste starten in het geval van een scherpe stijging van het aantal aanvragen naar de CPU.

De queue van aanvragen in IOKernel is georganiseerd als een ringbuffer. Om de vijf microseconden controleert het algoritme of alle taken die aan de kern zijn toegewezen, zijn uitgevoerd. Dit doet het door de huidige positie van de 'kop' van de buffer te vergelijken met de vorige positie van de 'staart'. Als blijkt dat de staart al in de queue was ten tijde van de vorige controle, markeert het systeem een buffer-overload en wijst het een extra kern toe aan het proces.

Bij het verdelen van de belasting hebben kernen die eerder zo'n proces hebben uitgevoerd en gedeeltelijk in de cache zijn gebleven, of inactieve kernen, prioriteit.

Nieuwe CPU-load balancer van MIT

Shenango maakt bovendien gebruik van de aanpak work stealingKernen die aan één applicatie zijn toegewezen, houden elkaar in de gaten voor de hoeveelheid taken. Als één kern zijn takenlijst eerder af heeft dan de anderen, 'neemt' het een deel van de belasting van zijn buren weg.

Voordelen en Nadelen

Volgens woord Ingenieurs van MIT, Shenango, kunnen tot vijf miljoen verzoeken per seconde verwerken en handhaven een gemiddelde reactietijd van 37 microseconden. Experts beweren dat de technologie in sommige gevallen de CPU-gebruik in datacenters tot 100% kan verhogen. Hierdoor kunnen datacenter operators besparen op de aankoop en het onderhoud van servers.

Het potentieel van de oplossing , dat tegen 2021 al 94% van de wereldwijde datacenter-werklasten gevirtualiseerd zal zijn. Volgens en specialisten van andere universiteiten. Volgens een professor van het Koreaanse instituut zal het systeem van MIT helpen om de latentie in webservices te verminderen. Bijvoorbeeld, het zal nuttig zijn voor online winkels. Tijdens uitverkoopdagen kan zelfs een seconde vertraging in het laden van een pagina is leiden tot een daling van het aantal sitebezoeken met 11%. Efficiënte belastingverdeling helpt meer klanten te bedienen.

De technologie heeft nog steeds nadelen - het ondersteunt geen multi-processor NUMA-systemen, waarbij chips zijn aangesloten op verschillende geheugmodules en niet met elkaar 'communiceren'. In dit geval kan IOKernel de werking van een bepaalde groep processors reguleren, maar niet van alle chips van de server.

Nieuwe CPU-load balancer van MIT
/ фото Tim Reckmann CC BY

Soortgelijke technologieën

Onder andere systemen voor belastingverdeling naar processors is Arachne te onderscheiden. Het berekent hoeveel kernen een applicatie nodig zal hebben op het moment van opstarten, en verdeelt processen op basis van deze maatstaf. Volgens de auteurs bedraagt de maximale vertraging bij het gebruik van Arachne ongeveer 10.000 microseconden.

De technologie is geïmplementeerd als een C++ bibliotheek voor Linux, en de broncode is beschikbaar op GitHub.

Een andere load balancer is ZygOS. Net als Shenango maakt deze technologie gebruik van de methode work stealing voor het herverdelen van processen. Volgens de auteurs van ZygOS bedraagt de gemiddelde vertraging in de werking van applicaties bij het gebruik van het instrument ongeveer 150 microseconden, en de maximale - ongeveer 450 microseconden. De code van het project is ook open beschikbaar.

Conclusies

Moderne datacentra blijven uitbreiden, vooral de trend naar groei is merkbaar op de markt van hyperscale datacenters: momenteel zijn er wereldwijd is aanwezig 430 hyperscale datacenters, maar het aantal kan in de komende jaren met 30% toenemen. Om deze reden zullen technologieën voor het balanceren van de belasting op processors zeer gewild zijn. Systemen zoals Shenango worden al op grote schaal geïmplementeerd door grote bedrijven, en in de toekomst zal het aantal van dergelijke tools alleen maar toenemen.

Berichten van de Eerste blog over bedrijfs-IaaS:

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster