ʻO ka mea hoʻohālikelike ukana CPU hou mai MIT

Hoʻolālā ʻia ka ʻōnaehana Shenango e hoʻohana ʻia i nā kikowaena data.

ʻO ka mea hoʻohālikelike ukana CPU hou mai MIT
/ kiʻi ʻO Marco Verch ʻO CC

Wahi a kekahi o nā mea hoʻolako, nā kikowaena data hoʻohana ʻo 20-40% wale nō o ka mana kamepiula i loaʻa. Ma nā haawe kiʻekiʻe kēia hōʻailona hiki i ka 60%. ʻO kēia māhele o nā kumuwaiwai e alakaʻi i ka puka ʻana o nā mea i kapa ʻia ʻo "zombie servers". He mau mīkini kēia e noho wale i ka hapa nui o ka manawa, e hoʻopau i ka ikehu. I kēia lā 30% o nā kikowaena ma ka honua nele i ka hana, e hoʻohana ana i $30 biliona waiwai o ka uila i kēlā me kēia makahiki.

Ua hoʻoholo ʻo MIT e hakakā i ka hoʻohana pono ʻole ʻana i nā kumuwaiwai computing.

Kime hana 'enekinia ua hoʻomohala ʻōnaehana hoʻoili ukana i kapa ʻia ʻo Shenango. ʻO kāna kumu ka nānā ʻana i ke kūlana o ka pahu hana a hāʻawi hou i nā kaʻina hana paʻa (ʻaʻole hiki ke loaʻa ka manawa CPU) i nā mīkini manuahi.

Pehea e hana ai ʻo Shenango

ʻO Shenango kahi waihona Linux ma C me nā paʻa Rust a me C++. Hoʻopuka ʻia ka code papahana a me nā noi hoʻāʻo ma hale waihona ma GitHub.

Hoʻokumu ʻia ka hoʻonā ma ka IOKernel algorithm, e holo ana ma luna o kahi kumu hoʻolaʻa o kahi ʻōnaehana multiprocessor. Mālama ia i nā noi CPU me ka hoʻohana ʻana i kahi framework DPDK, ka mea e hiki ai i nā noi ke kamaʻilio pololei me nā polokalamu pūnaewele.

Hoʻoholo ka IOKernel i nā kernels e hāʻawi i kahi hana kikoʻī. Hoʻoholo pū ka algorithm i ka nui o nā cores e pono ai. No kēlā me kēia kaʻina hana, ua hoʻoholo ʻia nā cores nui (hōʻoiaʻiʻo ʻia) a me nā mea hou aʻe (burstable) - hoʻokuʻu ʻia nā mea hope i ka wā e piʻi nui ai ka nui o nā noi i ka CPU.

Hoʻonohonoho ʻia ka laina noi IOKernel e like me apo apo. I kēlā me kēia ʻelima microseconds, nānā ka algorithm e ʻike inā ua pau nā hana a pau i hāʻawi ʻia i ke kumu. No ka hana ʻana i kēia, hoʻohālikelike ia i ka wahi o kēia manawa o ke poʻo o ka buffer me ke kūlana mua o kona huelo. Inā ʻike ʻia aia ka huelo i ka pila i ka manawa o ka nānā mua, ʻike ka ʻōnaehana i ka overload buffer a hoʻokaʻawale i kahi kumu hou no ke kaʻina hana.

I ka wā e puunaue ai i ka ukana, hāʻawi ʻia ka manaʻo nui i nā cores kahi i hana ʻia ai ke kaʻina hana like ma mua a waiho ʻia kekahi hapa i loko o ka cache, a i ʻole nā ​​​​cores idle.

ʻO ka mea hoʻohālikelike ukana CPU hou mai MIT

Lawe ʻo Shenango i ke ala hana aihue. ʻO nā cores i hoʻokaʻawale ʻia e holo i hoʻokahi noi e nānā i ka nui o nā hana i loaʻa i kēlā me kēia. Inā hoʻopau kekahi kumu i kāna papa inoa o nā hana ma mua o nā mea ʻē aʻe, a laila "hoʻomaha" ia i kahi hapa o ka ukana mai kona mau hoalauna.

Nā pōmaikaʻi a me nā meaʻinoʻole

e like me ʻenehana mai MIT, hiki iā Shenango ke hana i ʻelima miliona mau noi i kēlā me kēia kekona a mālama i ka manawa pane awelika o 37 microseconds. Ua ʻōlelo ka poʻe loea i kekahi mau manawa hiki i ka ʻenehana ke hoʻonui i ka nui o ka hoʻohana ʻana o nā mea hana i nā kikowaena data i 100%. ʻO ka hopena, hiki i nā mea kikowaena data ke mālama i ke kūʻai ʻana a me ka mālama ʻana i nā kikowaena.

Hiki ke hoʻonā hoʻolauleʻa a me nā loea mai nā kulanui ʻē aʻe. Wahi a kekahi kumu aʻoaʻo mai kahi kula ʻo Korea, e kōkua ka ʻōnaehana MIT i ka hōʻemi ʻana i nā lohi i nā lawelawe pūnaewele. No ka laʻana, pono ia ma nā hale kūʻai pūnaewele. Ma nā lā kūʻai, aia ka lua o ka lohi i ka hoʻouka ʻana i ka ʻaoʻao приводит i ka emi ʻana o ka helu o nā ʻike pūnaewele ma 11%. E kōkua ka hāʻawi ʻana i ka hoʻouka ʻana i nā mea kūʻai aku.

He mau hemahema ka ʻenehana - ʻaʻole ia e kākoʻo i ka multiprocessor HELU- nā ʻōnaehana i hoʻopili ʻia nā chips i nā modula hoʻomanaʻo like ʻole a ʻaʻole "kamaʻilio" kekahi i kekahi. I kēia hihia, hiki iā IOKernel ke hoʻoponopono i ka hana o kahi hui kaʻawale o nā kaʻina hana, ʻaʻole naʻe nā chip server āpau.

ʻO ka mea hoʻohālikelike ukana CPU hou mai MIT
/ kiʻi ʻO Tim Reckmann ʻO CC

Nā ʻenehana like

ʻO nā ʻōnaehana hoʻoili ukana ʻē aʻe me Arachne. Heluhelu ʻo ia i ka nui o nā cores e pono ai kahi noi i ka wā e hoʻomaka ai, a e puʻunaue i nā kaʻina hana e like me kēia hōʻailona. Wahi a nā mea kākau, ʻo ka latency kiʻekiʻe loa o kahi noi ma Arachne ma kahi o 10 tausani microseconds.

Hoʻokomo ʻia ka ʻenehana ma ke ʻano he waihona C++ no Linux, a loaʻa kāna code kumu ma GitHub.

ʻO kekahi mea hana kaulike ʻo ZygOS. E like me Shenango, hoʻohana ka ʻenehana i ke ʻano ʻaihue hana e hāʻawi hou i nā kaʻina hana. Wahi a nā mea kākau o ZygOS, ʻo ka latency noi maʻamau i ka wā e hoʻohana ai i ka mea hana ma kahi o 150 microseconds, a ʻo ka nui loa ma kahi o 450 microseconds. ʻO ke code papahana kekahi aia ma ka lehulehu.

haʻina

Ke hoʻomau nei ka hoʻonui ʻana o nā kikowaena data hou. ʻIke ʻia ka piʻi ʻana o ke ʻano ma ka mākeke o nā kikowaena data hyperscale: i kēia manawa i ka honua. aia ma laila 430 mau kikowaena data hyperscale, akā i nā makahiki e hiki mai ana e piʻi aʻe ko lākou helu e 30%. No kēia kumu, e koi nui ʻia nā ʻenehana hoʻohālikelike ukana. Loaʻa nā ʻōnaehana e like me Shenango hoʻokō hui nui, a e ulu wale ana ka nui o ia mau mea paahana i keia mua aku.

Nā memo mai ka blog mua e pili ana i ka hui ʻo IaaS:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka