Nieuwe CPU-loadbalancer van MIT

Het Shenango-systeem is bedoeld voor gebruik in datacenters.

Nieuwe CPU-loadbalancer van MIT
/ foto Marco Verch CC BY

Volgens een van de providers datacenters gebruik slechts 20-40% van de beschikbare rekenkracht. Bij hoge belastingen is deze indicator kan oplopen tot 60%. Deze verdeling van hulpbronnen leidt tot de opkomst van zogenaamde ‘zombieservers’. Dit zijn machines die het grootste deel van de tijd stil staan ​​en energie verspillen. Tegenwoordig 30% van de servers ter wereld zijn zonder werk, die jaarlijks voor 30 miljard dollar aan elektriciteit verbruiken.

MIT besloot het inefficiënte gebruik van computerbronnen te bestrijden.

Ingenieursteam heeft ontwikkeld processor load-balancing systeem genaamd Shenango. Het doel ervan is om de status van de taakbuffer te monitoren en vastgelopen processen (die geen CPU-tijd kunnen ontvangen) te herverdelen naar vrije machines.

Hoe Shenango werkt

Shenango is een Linux-bibliotheek in C met Rust- en C++-bindingen. De projectcode en testapplicaties worden gepubliceerd in opslagplaatsen op GitHub.

De oplossing is gebaseerd op het IOKernel-algoritme, dat draait op een speciale kern van een multiprocessorsysteem. Het beheert CPU-verzoeken met behulp van een raamwerk DPDK, waarmee applicaties rechtstreeks met netwerkapparaten kunnen communiceren.

De IOKernel beslist aan welke kernels een specifieke taak moet worden gedelegeerd. Het algoritme bepaalt ook hoeveel cores er nodig zijn. Voor elk proces worden de hoofdkernen (gegarandeerd) en aanvullende kernen (burstable) bepaald - deze laatste worden gelanceerd in het geval van een sterke toename van het aantal verzoeken aan de CPU.

De IOKernel-verzoekwachtrij is georganiseerd als ringbuffer. Elke vijf microseconden controleert het algoritme of alle taken die aan de kern zijn toegewezen, zijn voltooid. Om dit te doen, vergelijkt het de huidige locatie van de kop van de buffer met de vorige positie van zijn staart. Als blijkt dat de staart al in de wachtrij stond op het moment van de vorige controle, noteert het systeem de bufferoverbelasting en wijst het een extra kern toe voor het proces.

Bij het verdelen van de belasting wordt prioriteit gegeven aan cores waarop hetzelfde proces eerder is uitgevoerd en gedeeltelijk in de cache is gebleven, of aan eventuele inactieve cores.

Nieuwe CPU-loadbalancer van MIT

Shenango kiest bovendien voor de aanpak werk stelen. De kernen die zijn toegewezen om één applicatie uit te voeren, monitoren het aantal taken dat elkaar heeft. Als één kern zijn lijst met taken eerder voltooit dan de andere, dan ‘ontlast’ hij een deel van de last van zijn buren.

Voor- en nadelen

Op volgens Met technici van MIT kan Shenango vijf miljoen verzoeken per seconde verwerken en een gemiddelde responstijd van 37 microseconden handhaven. Experts zeggen dat de technologie in sommige gevallen de bezettingsgraad van processors in datacenters tot 100% kan verhogen. Hierdoor kunnen datacenterexploitanten besparen op de aanschaf en het onderhoud van servers.

Oplossingspotentieel mark en specialisten van andere universiteiten. Volgens een professor van een Koreaans instituut zal het MIT-systeem vertragingen bij webservices helpen verminderen. Het zal bijvoorbeeld handig zijn in online winkels. Op verkoopdagen is er zelfs een tweede vertraging bij het laden van de pagina приводит tot een daling van het aantal sitebezoeken met 11%. Een snelle verdeling van de belasting zal helpen om meer klanten te bedienen.

De technologie heeft nog steeds nadelen: het ondersteunt geen multiprocessor NUMA-systemen waarbij chips op verschillende geheugenmodules zijn aangesloten en niet met elkaar ‘communiceren’. In dit geval kan IOKernel de werking van een afzonderlijke groep processors regelen, maar niet van alle serverchips.

Nieuwe CPU-loadbalancer van MIT
/ foto Tim Reckman CC BY

Soortgelijke technologieën

Andere taakverdelingssystemen voor processors zijn onder meer Arachne. Het berekent hoeveel cores een applicatie nodig heeft wanneer deze start, en verdeelt processen op basis van deze indicator. Volgens de auteurs bedraagt ​​de maximale latentie van een applicatie in Arachne ongeveer 10 microseconden.

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

Een ander balanceringsinstrument is ZygOS. Net als Shenango gebruikt de technologie de methode voor het stelen van werk om processen te herverdelen. Volgens de auteurs van ZygOS bedraagt ​​de gemiddelde applicatielatentie bij gebruik van de tool ongeveer 150 microseconden, en het maximum is ongeveer 450 microseconden. De projectcode is ook bevindt zich in het publieke domein.

Bevindingen

Moderne datacenters blijven groeien.De stijgende trend is vooral merkbaar in de markt van hyperscale datacenters: nu in de wereld er is Er zijn 430 hyperscale datacenters, maar de komende jaren kan hun aantal met 30% toenemen. Om deze reden zal er veel vraag zijn naar technologieën voor taakverdeling van processors. Systemen zoals Shenango zijn al beschikbaar implementeren grote bedrijven, en het aantal van dergelijke instrumenten zal in de toekomst alleen maar toenemen.

Berichten uit de eerste blog over corporate IaaS:

Bron: www.habr.com

Voeg een reactie