Facebook yakaburitsa zvigamba zvinovandudza iyo Slab memory controller muLinux

Roman Gushchin (a Facebook software mainjiniya) registry muLinux kernel yekuvandudza runyorwa, seti yemakeshi kune iyo slab controller memory mapping application (mutungamiriri wekurangarira).

Mutungamiriri mutsva anoshamisa nekufambisa slab accounting kubva padanho repeji yekurangarira kuenda padanho rechinhu chekernel, zvichiita kuti zvikwanisike kugovera mapeji esadhi mumapoka akasiyana c, pane kugovera akapatsanurwa masirabhu echikwata chega chega c.

Roman akawana chaanodaidza kuti "chakakomba chakakomba" mune iripo slab memory controller inotungamira mukushandisa zvakaderera mazuva ano nemakgroup.

“Chikonzero chaicho chekuti marongero aripo anotungamira kune yakadzika slab kushandiswa iri nyore: mapeji esirabhu anoshandiswa chete nedziva rekurangarira.

Kana paine zvikamu zvishoma chete zveimwe saizi yakaitwa nekgroup, kana kana paine zvimwe zvinhu zvinoshanda zvasara mushure mokunge boka racho rabviswa, kana iro boka rine chinhu chimwe chakamisikidzwa chisingashandise chero chinhu chekernel, asi nguva dzese CPU nyowani: mune dzese idzi kesi, iyo inokonzeresa kushandisa slab yakaderera kwazvo.

Kana kmem accounting yakaremara, iyo kernel inogona kushandisa yemahara nzvimbo pamapeji e slab kune zvimwe zvakagoverwa. «

Iyo yakarongwa Slab memory controller naRomano Gushchin mugore rapfuura yaivimbisa chaizvo kunowedzera kushanda yekushandiswa kwesirabhu, deredza saizi yekurangarira yakashandiswa yeslab ne30-45% uye zvakanyanya kudzora yakazara kernel ndangariro yekushandisa.

Zvakare zvigamba zvakaitwa zvaratidza iyo Facebook iri kutoshandisa kodhi mukugadzira pane maseva avo uye yaive kuchengetedza ~ 650-700MB + yepamberi-kumagumo ewebhu maseva, database caching uye DNS maseva, pakati pemimwe mibairo.

Nekuderedza huwandu hweasina-nharembozha masirabhu, mhedzisiro inoonekwawo mumunda wekudzora ndangariro kupatsanurwa. Nyowani yekurangarira controller inorerutsa kodhi ye accounting accounting uye haidi algorithms akaomarara ekugadzira zvine simba uye kubviswa kwesilab cache kune rimwe nerimwe boka c.

Ese macgroups ekurangarira mune nyowani yekushandisa anoshandisa yakajairika seti yemasabheki macache, uye hupenyu hwemasirabhu macache hauchina kusungirirwa kuhupenyu hweyeuchidzo yezvirangaridzo zvakaiswa kuburikidza neboka.

Izvo zvakanyatso nyatso zvekuverenga zviitiswa mune nyowani slab controller inofanirwa kutakura iyo CPU zvakanyanya, asi mukuita misiyano yakazove isingakoshe.

Kunyanya iyo nyowani slab driver yakashandiswa kwemwedzi yakati wandei pane Facebook maseva mukushanda unobata mhando dzakasiyana dzemitoro, uye kusvika parizvino hapana kudzokorodza kwakakosha kwakawanikwa.

Iyo chigamba ine akati wandei semi-akazvimirira mativi, ayo anogona zvakare kuwana kwavo kushandisa kunze kweslab's memory controller:

  • Iyo Subpage Load API, iyo inogona kushandiswa mune ramangwana kuverenga zvimwe zvinhu zvisati zviri saizi peji, semuenzaniso kugoverwa kwepercu
  • Iyo mem_cgroup_ptr API, uko kunongedzera kunonongedzwa ku memcg, inogona kushandiswazve kuitira kuchengetedza kwakanaka kwezvimwe zvinhu, semuenzaniso peji peji.

Panguva imwecheteyo, pane kuderera kukuru mukushandisa ndangariro- Pane mamwe mauto zvaikwanisika kuchengetedza kusvika 1 GB ndangariro, asi chiratidzo ichi zvinowanzoenderana nemhando yemutoro, huwandu hwese hwe RAM, huwandu hweCPU uye hunhu hwekushanda nendangariro.

Panzvimbo pekugadzira yakaparadzaniswa seti kmem_caches yeboka rega rega rekurangarira, maviri maseti epasirese anoshandiswa: mudzi wakagadzwa wekusaverengeka uye iro reboka remidzi cgroup migove uye yechipiri seti kune mamwe ese mabasa. Izvi zvinobvumidza kurerutsa manejimendi manejimendi yemunhu kmem_caches.

Chekupedzisira, kana iwe uchifarira kuziva iyo nyowani seti ye19 zvigamba inogona kuwanikwa mune irondedzero tsamba tsanga.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako