Bagong CPU load balancer mula sa MIT

Ang Shenango system ay binalak na gamitin sa mga data center.

Bagong CPU load balancer mula sa MIT
/ larawan Marco Verch CC BY

Ayon sa isa sa mga provider, data center gamitin 20–40% lang ng available na computing power. Sa mataas na pag-load ang tagapagpahiwatig na ito maaaring umabot sa 60%. Ang pamamahagi ng mga mapagkukunang ito ay humahantong sa paglitaw ng tinatawag na "mga server ng zombie". Ang mga ito ay mga makina na nakaupo sa halos lahat ng oras, nag-aaksaya ng enerhiya. Ngayon 30% ng mga server sa mundo ay walang trabaho, kumokonsumo ng $30 bilyong halaga ng kuryente kada taon.

Nagpasya ang MIT na labanan ang hindi mahusay na paggamit ng mga mapagkukunan ng computing.

Koponan sa engineering ay nabuo processor load balancing system na tinatawag na Shenango. Ang layunin nito ay subaybayan ang estado ng buffer ng gawain at muling ipamahagi ang mga natigil na proseso (na hindi makakatanggap ng oras ng CPU) sa mga libreng makina.

Paano gumagana ang Shenango

Ang Shenango ay isang Linux library sa C na may Rust at C++ bindings. Ang code ng proyekto at mga application ng pagsubok ay nai-publish sa mga repositoryo sa GitHub.

Ang solusyon ay batay sa algorithm ng IOKernel, na tumatakbo sa isang nakatuong core ng isang multiprocessor system. Pinamamahalaan nito ang mga kahilingan ng CPU gamit ang isang balangkas DPDK, na nagbibigay-daan sa mga application na direktang makipag-ugnayan sa mga network device.

Ang IOKernel ang magpapasya kung aling mga kernel ang magdedelegate ng isang partikular na gawain. Ang algorithm din ang nagpapasya kung gaano karaming mga core ang kakailanganin. Para sa bawat proseso, ang mga pangunahing core (garantisadong) at mga karagdagang (burstable) ay tinutukoy - ang huli ay inilunsad sa kaganapan ng isang matalim na pagtaas sa bilang ng mga kahilingan sa CPU.

Ang queue ng kahilingan ng IOKernel ay isinaayos bilang buffer ng singsing. Bawat limang mikrosegundo, sinusuri ng algorithm upang makita kung nakumpleto na ang lahat ng gawaing nakatalaga sa core. Upang gawin ito, inihahambing nito ang kasalukuyang lokasyon ng ulo ng buffer sa nakaraang posisyon ng buntot nito. Kung lumalabas na ang buntot ay nasa pila na sa oras ng nakaraang pagsusuri, ang system ay nagtatala ng buffer overload at naglalaan ng karagdagang core para sa proseso.

Kapag namamahagi ng load, binibigyan ng priyoridad ang mga core kung saan ang parehong proseso ay naisagawa nang mas maaga at bahagyang nanatili sa cache, o sa anumang mga idle na core.

Bagong CPU load balancer mula sa MIT

Si Shenango ay tumatagal din ng diskarte pagnanakaw ng trabaho. Ang mga core na inilaan para magpatakbo ng isang application ay sinusubaybayan ang bilang ng mga gawain na mayroon ang bawat isa. Kung natapos ng isang core ang listahan ng mga gawain nito bago ang iba, pagkatapos ay "inaalis" nito ang bahagi ng pagkarga mula sa mga kapitbahay nito.

Mga kalamangan at disadvantages

Sa ayon sa mga inhinyero mula sa MIT, ang Shenango ay may kakayahang magproseso ng limang milyong kahilingan kada segundo at mapanatili ang average na oras ng pagtugon na 37 microseconds. Sinasabi ng mga eksperto na sa ilang mga kaso ay maaaring pataasin ng teknolohiya ang rate ng paggamit ng mga processor sa mga data center sa 100%. Bilang resulta, ang mga operator ng data center ay makakatipid sa pagbili at pagpapanatili ng mga server.

Potensyal na Solusyon magdiwang at mga espesyalista mula sa ibang mga unibersidad. Ayon sa isang propesor mula sa isang Korean institute, ang MIT system ay makakatulong na mabawasan ang mga pagkaantala sa mga serbisyo sa web. Halimbawa, magiging kapaki-pakinabang ito sa mga online na tindahan. Sa mga araw ng pagbebenta mayroong kahit isang pangalawang pagkaantala sa paglo-load ng pahina ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ sa pagbaba ng bilang ng mga site view ng 11%. Ang mabilis na pamamahagi ng pagkarga ay makakatulong na makapaglingkod sa mas maraming kliyente.

Ang teknolohiya ay mayroon pa ring mga kakulangan - hindi nito sinusuportahan ang multiprocessor SA-mga sistema kung saan ang mga chip ay konektado sa iba't ibang mga module ng memorya at hindi "nakikipag-usap" sa isa't isa. Sa kasong ito, maaaring i-regulate ng IOKernel ang pagpapatakbo ng isang hiwalay na grupo ng mga processor, ngunit hindi lahat ng server chips.

Bagong CPU load balancer mula sa MIT
/ larawan Tim Reckmann CC BY

Mga katulad na teknolohiya

Kasama sa iba pang mga sistema ng pagbabalanse ng load ng processor ang Arachne. Kinakalkula nito kung gaano karaming mga core ang kakailanganin ng isang application kapag nagsimula ito, at namamahagi ng mga proseso ayon sa indicator na ito. Ayon sa mga may-akda, ang maximum na latency ng isang application sa Arachne ay halos 10 thousand microseconds.

Ang teknolohiya ay ipinatupad bilang isang C++ library para sa Linux, at ang source code nito ay available sa GitHub.

Ang isa pang tool sa pagbabalanse ay ZygOS. Tulad ng Shenango, ginagamit ng teknolohiya ang paraan ng pagnanakaw ng trabaho upang muling ipamahagi ang mga proseso. Ayon sa mga may-akda ng ZygOS, ang average na latency ng application kapag ginagamit ang tool ay humigit-kumulang 150 microseconds, at ang maximum ay humigit-kumulang 450 microseconds. Ang code ng proyekto ay din ay nasa pampublikong domain.

Natuklasan

Ang mga modernong data center ay patuloy na lumalawak. Ang pagtaas ng trend ay lalong kapansin-pansin sa merkado ng hyperscale data center: ngayon sa mundo umiiral 430 hyperscale data center, ngunit sa mga darating na taon ang kanilang bilang ay maaaring tumaas ng 30%. Para sa kadahilanang ito, ang mga teknolohiya sa pagbabalanse ng pag-load ng processor ay magiging malaki ang pangangailangan. Available na ang mga system tulad ng Shenango ipatupad malalaking korporasyon, at ang bilang ng mga naturang kasangkapan ay lalago lamang sa hinaharap.

Mga post mula sa Unang blog tungkol sa corporate IaaS:

Pinagmulan: www.habr.com

Magdagdag ng komento