Uusi suorittimen kuormituksen tasapainotin MIT:ltä

Shenango-järjestelmää on suunniteltu käytettäväksi datakeskuksissa.

Uusi suorittimen kuormituksen tasapainotin MIT:ltä
/ valokuva Marco-soitto CC BY

Yhden palveluntarjoajan mukaan datakeskukset käyttää vain 20–40 % käytettävissä olevasta laskentatehosta. Suurilla kuormituksilla tämä ilmaisin voi saavuttaa 60 %. Tämä resurssien jakautuminen johtaa niin kutsuttujen "zombie-palvelimien" syntymiseen. Nämä ovat koneita, jotka istuvat käyttämättömänä suurimman osan ajasta tuhlaten energiaa. Nykyään 30% maailman palvelimista ovat ilman työtäkuluttaa sähköä 30 miljardin dollarin arvosta vuodessa.

MIT päätti torjua laskentaresurssien tehotonta käyttöä.

Insinööritiimi on kehittynyt prosessorin kuormituksen tasausjärjestelmä nimeltä Shenango. Sen tarkoituksena on valvoa tehtäväpuskurin tilaa ja jakaa jumittuneet prosessit (jotka eivät voi vastaanottaa CPU-aikaa) vapaille koneille.

Kuinka Shenango toimii

Shenango on C-kielinen Linux-kirjasto Rust- ja C++-sidoksilla. Hankkeen koodi ja testihakemukset julkaistaan arkistot GitHubissa.

Ratkaisu perustuu IOKernel-algoritmiin, joka toimii moniprosessorijärjestelmän omistetussa ytimessä. Se hallitsee suorittimen pyyntöjä kehyksen avulla DPDK, jonka avulla sovellukset voivat kommunikoida suoraan verkkolaitteiden kanssa.

IOKernel päättää, mille ytimille tietty tehtävä delegoidaan. Algoritmi päättää myös kuinka monta ydintä tarvitaan. Jokaiselle prosessille määritetään pääytimet (taattu) ja lisäytimet (purskettavat) - jälkimmäiset käynnistetään, jos prosessorille lähetettyjen pyyntöjen määrä lisääntyy jyrkästi.

IOKernel-pyyntöjono on järjestetty muodossa rengaspuskuri. Algoritmi tarkistaa viiden mikrosekunnin välein, onko kaikki ytimelle määrätyt tehtävät suoritettu. Tätä varten se vertaa puskurin pään nykyistä sijaintia sen hännän aiempaan sijaintiin. Jos osoittautuu, että häntä oli jo jonossa edellisen tarkistuksen aikaan, järjestelmä panee merkille puskurin ylikuormituksen ja varaa prosessille lisäytimen.

Kuormaa jaettaessa etusijalla ovat ytimet, joissa sama prosessi on suoritettu aiemmin ja jotka jäivät osittain välimuistiin, tai kaikki vapaat ytimet.

Uusi suorittimen kuormituksen tasapainotin MIT:ltä

Shenango käyttää lisäksi lähestymistapaa työn varastamista. Yhden sovelluksen suorittamiseen varatut ytimet seuraavat toistensa tehtävien määrää. Jos yksi ydin saa tehtäväluettelonsa valmiiksi ennen muita, se "keventää" osan kuormasta naapureiltaan.

Edut ja haitat

Päälle mukaan MIT:n insinöörit Shenango pystyy käsittelemään viisi miljoonaa pyyntöä sekunnissa ja ylläpitämään keskimääräistä vasteaikaa 37 mikrosekunnissa. Asiantuntijat sanovat, että joissakin tapauksissa tekniikka voi nostaa datakeskusten prosessorien käyttöasteen 100 prosenttiin. Näin konesalioperaattorit voivat säästää palvelimien hankinnassa ja ylläpidossa.

Ratkaisupotentiaali merkki ja asiantuntijoita muista yliopistoista. Korealaisen instituutin professorin mukaan MIT-järjestelmä auttaa vähentämään viiveitä verkkopalveluissa. Siitä on hyötyä esimerkiksi verkkokaupoissa. Myyntipäivinä sivujen latauksessa on jopa toinen viive приводит sivuston katselukertojen laskuun 11 %. Nopea kuormanjako auttaa palvelemaan enemmän asiakkaita.

Tekniikassa on edelleen haittoja - se ei tue moniprosessoria NUMA-järjestelmät, joissa sirut on kytketty eri muistimoduuleihin eivätkä "kommunikoi" toistensa kanssa. Tässä tapauksessa IOKernel voi säädellä erillisen prosessoriryhmän toimintaa, mutta ei kaikkia palvelinsiruja.

Uusi suorittimen kuormituksen tasapainotin MIT:ltä
/ valokuva Tim Reckmann CC BY

Samanlaisia ​​tekniikoita

Muita prosessorin kuormituksen tasausjärjestelmiä ovat Arachne. Se laskee, kuinka monta ydintä sovellus tarvitsee käynnistyessään, ja jakaa prosesseja tämän indikaattorin mukaan. Kirjoittajien mukaan Arachnen sovelluksen maksimilatenssi on noin 10 tuhatta mikrosekuntia.

Tekniikka on toteutettu C++-kirjastona Linuxille, ja sen lähdekoodi on saatavilla osoitteessa GitHub.

Toinen tasapainotustyökalu on ZygOS. Kuten Shenango, tekniikka käyttää työnvarasmenetelmää prosessien uudelleenjakamiseen. ZygOS:n tekijöiden mukaan sovelluksen keskimääräinen latenssi työkalua käytettäessä on noin 150 mikrosekuntia ja maksimi noin 450 mikrosekuntia. Projektin koodi on myös on julkisessa käytössä.

Tulokset

Nykyaikaiset palvelinkeskukset jatkavat laajentumistaan ​​Kasvava trendi on erityisen havaittavissa hyperscale-palvelinkeskusten markkinoilla: nyt maailmassa on olemassa 430 hyperscale-palvelinkeskusta, mutta lähivuosina niiden määrä voi kasvaa 30 %. Tästä syystä prosessorikuormituksen tasaustekniikoilla on suuri kysyntä. Shenangon kaltaiset järjestelmät ovat jo saatavilla toteuttaa suuria yrityksiä, ja tällaisten työkalujen määrä vain kasvaa tulevaisuudessa.

Viestit ensimmäisestä yritys-IaaS-blogista:

Lähde: will.com

Lisää kommentti