Mbinu Mpya ya Kusimamia Kumbukumbu ya Facebook

Mmoja wa wajumbe wa timu ya maendeleo ya mtandao wa kijamii Facebook, Kirumi Gushchin, iliyopendekezwa katika orodha ya utumaji barua ya wasanidi programu seti ya Viraka vya Linux kernelinayolenga kuboresha usimamizi wa kumbukumbu kupitia utekelezaji wa kidhibiti kipya cha usimamizi wa kumbukumbu - slab (kidhibiti cha kumbukumbu cha slab).

usambazaji wa slab ni utaratibu wa usimamizi wa kumbukumbu iliyoundwa ili kutenga kumbukumbu kwa ufanisi zaidi na kuondoa mgawanyiko mkubwa. Msingi wa algorithm hii ni kuhifadhi kumbukumbu iliyotengwa iliyo na kitu cha aina fulani na kutumia tena kumbukumbu hiyo wakati ujao inapotengwa kwa kitu cha aina sawa. Mbinu hii ilianzishwa kwa mara ya kwanza katika SunOS na Jeff Bonwick na sasa inatumika sana katika kokwa za mifumo mingi ya uendeshaji ya Unix, ikijumuisha FreeBSD na Linux.

Kidhibiti kipya kinategemea kuhamisha uhasibu wa slab kutoka kiwango cha ukurasa wa kumbukumbu hadi kiwango cha kitu cha kernel, ambayo inafanya uwezekano wa kushiriki ukurasa mmoja wa slab katika vikundi tofauti, badala ya kutenga kache tofauti kwa kila kikundi.

Kulingana na matokeo ya mtihani, inafuata kwamba njia iliyopendekezwa ya usimamizi wa kumbukumbu inaruhusu kuongezeka ufanisi kwa kutumia slab kwa 45%, na pia itapunguza matumizi ya kumbukumbu ya jumla ya kernel ya OS. Pia, kwa kupunguza idadi ya kurasa zilizotengwa kwa slab, mgawanyiko wa kumbukumbu kwa ujumla hupunguzwa, ambayo haiwezi lakini kuathiri utendaji wa mfumo.

Kidhibiti kipya kimejaribiwa kwenye seva za uzalishaji za Facebook kwa miezi kadhaa, na hadi sasa jaribio hili linaweza kuitwa kuwa limefanikiwa: bila upotezaji wa utendaji na hakuna ongezeko la idadi ya makosa, kupungua kwa wazi kwa utumiaji wa kumbukumbu kumeonekana - kwa wengine. seva hadi 1GB. Nambari hii ni ya kibinafsi, kwa mfano, majaribio ya mapema yalionyesha matokeo ya chini kidogo:

  • 650-700 MB kwenye ukurasa wa mbele wa wavuti
  • 750-800 MB kwenye seva iliyo na kashe ya hifadhidata
  • 700 MB kwenye seva ya DNS

>>> Ukurasa wa mwandishi kwenye GitHub


>>> Matokeo ya mtihani wa mapema

Chanzo: linux.org.ru

Kuongeza maoni