I-Facebook ikhuphe iipatches eziphucula isilawuli sememori seSlab kwiLinux

YaseRoma Gushchin (injineli yesoftware ka-Facebook) Ubhaliso kuluhlu lwe-Linux kernel yophuhliso, iseti yamachaphaza kwi-slab memory memory application (umlawuli wenkumbulo)

Isilawuli esitsha siyamangalisa Ngokuhambisa i-slab accounting kwinqanaba lememori kwiphepha le-kernel, ukwenza ukuba kwabelwane ngamaphepha e-slab kumaqela ahlukeneyo c, endaweni yokwabiwa kweeclab ezahlukeneyo kwiqela ngalinye c.

URoman ufumene into ayibiza ngokuba "sisiphene esibi kakhulu" kwisilawuli senkumbulo esisezantsi esikhokelela ekusetyenzisweni okuphantsi kwezi ntsuku ngamaqela.

“Esona sizathu sokuba ubeko esele lukhona lukhokelela ekusetyenzisweni kwe-slab esezantsi silula: amaphepha e-slab asetyenziswa ngokukodwa yiphuli yememori.

Ukuba kukho ulwabiwo oluncinci lobungakanani obuthile obenziwe liqela, okanye ukuba kukho izinto ezisebenzayo ezishiyekileyo emva kokuba iqela lisusiwe, okanye iqela liqulathe usetyenziso olunye olunomsonto olungabelaniyo nantoni na yekernel, kodwa ngalo lonke ixesha kwi-CPU entsha: kuzo zonke ezi meko, ukusetyenziswa kweslab okubangelwa kukuphantsi kakhulu.

Ukuba i-kmem accounting ikhubazekile, i-kernel ingasebenzisa indawo yasimahla kumaphepha e-slab kolunye ulwabiwo. «

Isilawuli sememori yeSlab esicetywayo nguRomano Gushchin kunyaka ophelileyo kwakuthembisa njenge kwandisa ukusebenza yokusetyenziswa kwesilayidi, ukunciphisa ubungakanani bememori esetyenzisiweyo I-slab nge-30-45% kunye nokunciphisa ngokubonakalayo ukusetyenziswa kwenkumbulo yenkozo.

Kwakhona Iimpawu ezenziweyo zibonisile ukuba i-Facebook sele isebenzisa ikhowudi kwimveliso kwiiseva zabo kwaye yayinjalo ukugcina ~ 650-700MB + kwiiseva zewebhu zangaphambili, i-caching database kunye neeseva ze-DNS, phakathi kwamanye amabhaso.

Ngokunciphisa inani leeslabs ezingezizo ezeselfowuni, isiphumo esihle sikwabonwa kwicandelo lokunciphisa ukwahlulwa kwememori. Umlawuli wememori omtsha wenza lula ikhowudi ye-accounting slab kwaye ayifuni ii-algorithms ezintsonkothileyo zokwenza amandla kunye nokususa ii-slab cache kwiqela ngalinye c.

Onke amaqela ememori kuphumezo olutsha asebenzisa iseti eqhelekileyo yeekhabhi zeslab, kwaye ubude beeslab cache abusabotshelelwanga kubude bemiqobo ethintela imemori ebekwe kwiqela.

Ubalo-mali oluchanekileyo olwenziweyo olusebenzayo kumlawuli weslab entsha kufuneka alayishe i-CPU ngakumbi, kodwa ngokwenza oko umahluko ufumaneke ungabalulekanga.

Ngokukodwa Umqhubi weslab entsha sele esetyenziswe iinyanga ezininzi kwiiseva zikaFacebook ekusebenzeni okuphatha iintlobo ezahlukeneyo zemithwalo, kwaye ukuza kuthi ga ngoku akukho kugqitha kubalulekileyo kufunyenweyo.

Ipaki inezinto ezimbalwa ezizimeleyo ezinokufumana ukusetyenziswa kwazo ngaphandle kwesilawuli senkumbulo yeslab:

  • I-Subpage Load API, enokusetyenziselwa kwixesha elizayo ukubala ezinye izinto ezingalinganiyo nephepha, umzekelo ulwabiwo lwepaspu
  • I-mem_cgroup_ptr API, apho izikhombisi zibalwe kwi-memcg, zinokuphinda zisetyenziselwe ukukhulisa kakuhle ezinye izinto, umzekelo iphepha lephepha.

Kwangelo xesha kukho ukwehla okubonakalayo ekusebenziseni inkumbulo-Kweminye imikhosi kwakunokwenzeka ukugcina ukuya kwi-1 GB yememori, kodwa esi salathisi ubukhulu becala kuxhomekeke kubume bomthwalo, ubungakanani bebonke be-RAM, isixa se-CPU kunye neempawu zokusebenza kwememori.

Endaweni yokwenza iseti eyahlukileyo ye-kmem_cache kwiqela ngalinye lememori, kusetyenziswa iiseti ezimbini zehlabathi: iseti yengcambu yokungaziwa kunye neqela leengcambu zeqela lezabelo kunye nolwesibini kuzo zonke ezinye izabelo. Oku kuvumela ukwenziwa lula kolawulo lobomi be-kmem_caches nganye.

Okokugqibela, ukuba unomdla wokwazi iseti entsha yamanqaku angama-19 anokufumaneka kuluhlu imeyile yekernel.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.