I-Facebook ikhiphe ama-patches enza ngcono isilawuli sememori se-Slab ku-Linux

I-Gushchin yamaRoma (unjiniyela we-software ye-Facebook) irejista kuhlu lwe-Linux kernel development, iqoqo lezimagqabhagqabha kuhlelo lokusebenza lokukhumbula imemori yesilawuli (isilawuli sememori).

Isilawuli esisha siyamangalisa ngokuhambisa ukubalwa kwesilayidi kusuka ezingeni lekhasi lememori liye ezingeni lezinto ze-kernel, okwenza kube lula ukwabelana ngamakhasi e-slab emaqenjini ahlukene c, kunokuba kunikezwe ama-cache ehlukene eqembu ngalinye c.

URoman uthole lokho akubiza ngokuthi "yiphutha elibi kakhulu" kusilawuli sememori esikhona esikhona esiholela ekusetshenzisweni okuphansi kulezi zinsuku ngamaqembu.

“Isizathu sangempela sokuthi lo mklamo okhona uholela ekusetshenzisweni kwesilayidi esiphansi silula: amakhasi e-slab asetshenziswa kuphela yichibi lememori.

Uma ngabe kunokwabiwa okumbalwa kuphela kosayizi othize okwenziwe yiqembu, noma uma kukhona izinto ezisebenzayo ezisele ngemuva kokukhishwa kweqembu, noma iqembu liqukethe uhlelo lokusebenza olulodwa olucishiwe olunikezela izinto ze-kernel, kepha ngaso sonke isikhathi kuqhubeke i-CPU entsha: kuzo zonke lezi zimo, ukusetshenziswa kwesilayidi okuholelekile kuphansi kakhulu.

Uma ukubalwa kwe-kmem kukhutshaziwe, i-kernel ingasebenzisa isikhala samahhala emakhasini e-slab kokunye ukwabiwa. «

Isilawuli sememori seSlab esihlongozwayo nguRomano Gushchin ngonyaka odlule kwakuthembisa impela njengoba kwandisa ukusebenza kahle yokusetshenziswa kwesilebhu, ukunciphisa usayizi wememori osetshenzisiwe nge-slab ngo-30-45% futhi kunciphise kakhulu ukusetshenziswa kwenkumbulo ye-kernel.

Futhi amabala asetshenzisiwe akhombisile ukuthi i-Facebook isivele isebenzisa ikhodi ekukhiqizeni kumaseva abo futhi yayikhona iyonga ~ 650-700MB + yamaseva wewebhu angaphambili, i-database caching kanye ne-DNS server, phakathi kweminye imiklomelo.

Ngokunciphisa inani lama-slabs angenawo amaselula, umphumela omuhle ubonwa nasemkhakheni wokunciphisa ukuhlukaniswa kwememori. Isilawuli sememori esisha senza lula ikhodi ye-accounting slab futhi ayidingi ubuchule obuyinkimbinkimbi bokudala okunamandla nokususwa kwama-slab cache eqembu ngalinye c.

Onke amaqoqo ezinkumbulo ekuqalisweni okusha asebenzisa isethi ejwayelekile yama-slab caches, futhi ubude bempilo yama-slab cache abusaboshezelwa esikhathini sokuphila semikhawulo yememori esethwe ngeqembu.

Ukubalwa kwezinsizakusebenza okucacile okusetshenziswe kusilawuli se-slab esisha kufanele kulayishe i-CPU ngokwengeziwe, kepha uma kwenzekile umehluko umehluko ubonakale unganaki.

Ikakhulu i-slab driver entsha isetshenziswe izinyanga ezimbalwa kumaseva we-Facebook ekusebenzeni okuphatha izinhlobo ezahlukahlukene zemithwalo, futhi kuze kube manje akukho ukubuyela emuva okuphawulekayo okutholakele.

Isiqephu siqukethe izingxenye ezimbalwa ezizimele, ezingathola ukusetshenziswa kwazo ngaphandle kwesilawuli sememori se-slab:

  • I-Subpage Load API, engasetshenziswa ngokuzayo ukubala ezinye izinto ezingezona usayizi wekhasi, ngokwesibonelo ukwabiwa kwe-percpu
  • I-mem_cgroup_ptr API, lapho izikhombisi zibalwa khona ku-memcg, ingasetshenziswa kabusha ekukhuliseni kahle ezinye izinto, isibonelo i-pagecache.

Ngesikhathi esifanayo, kunokuncipha okukhulu ekusetshenzisweni kwememori- Kwezinye izikhungo bekungagcinwa kufika ku-1 GB wememori, kepha le nkomba kuncike kakhulu esimweni somthwalo, usayizi ophelele we-RAM, inani le-CPU nezimpawu zokusebenza ngememori.

Esikhundleni sokwenza isethi ehlukile yama-kmem_cache eqenjini ngalinye lememori, kusetshenziswa amasethi womhlaba amabili: impande isethelwe okungabaliwe kanye nezabelo zeqembu lempande kanye nesethi yesibili yazo zonke ezinye izabelo. Lokhu kuvumela ukwenziwa lula kwesikhathi sempilo kwama-kmem_cached ngamanye.

Ekugcineni, uma unentshisekelo yokwazi isethi entsha yama-patches ayi-19 ingatholakala ohlwini imeyili ye-kernel.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.