Facebook imependekeza utaratibu mpya wa usimamizi wa kumbukumbu ya slab kwa kernel ya Linux

Roman Gushchin (Kirumi Gushchin) kutoka kwenye Facebook kuchapishwa kwenye orodha ya barua ya watengenezaji wa kernel ya Linux seti ya viraka na utekelezaji wa kidhibiti kipya cha mgao wa kumbukumbu. slab (kidhibiti cha kumbukumbu cha slab). Kidhibiti kipya kinajulikana kwa kuhamisha uhasibu wa slab kutoka kiwango cha ukurasa wa kumbukumbu hadi kiwango cha kitu cha kernel, ambayo inafanya uwezekano wa kushiriki kurasa za slab katika vikundi tofauti, badala ya kutenga kache tofauti za slab kwa kila kikundi.

Njia iliyopendekezwa inafanya uwezekano wa kuongeza ufanisi wa kutumia slab, kupunguza ukubwa wa kumbukumbu inayotumiwa kwa slab kwa 30-45%, na kupunguza kwa kiasi kikubwa matumizi ya kumbukumbu ya jumla ya kernel. Kwa kupunguza idadi ya slabs zisizohamishika, pia kuna athari nzuri katika kupunguza kugawanyika kwa kumbukumbu. Kidhibiti kipya cha kumbukumbu hurahisisha sana msimbo wa uhasibu wa slabs na hauhitaji matumizi ya algoriti ngumu kwa kuunda na kufuta kache za slab kwa kila kikundi. Vikundi vyote vya kumbukumbu katika utekelezaji mpya hutumia seti ya kawaida ya kashe za slab, na maisha ya kashe za slab hazijafungwa tena kwa maisha ya zile zilizosanikishwa kupitia kikundi. vikwazo juu ya matumizi ya kumbukumbu.

Uhasibu sahihi zaidi wa rasilimali unaotekelezwa katika kidhibiti kipya cha slaba unapaswa kupakia CPU kinadharia zaidi, lakini kiutendaji tofauti ziligeuka kuwa ndogo. Hasa, kidhibiti kipya cha slab kimetumika kwa miezi kadhaa kwenye seva za Facebook za uzalishaji zinazoshughulikia aina tofauti za mzigo wa kazi, na hakuna urejeshaji unaoonekana bado umetambuliwa. Wakati huo huo, kuna upunguzaji mkubwa wa utumiaji wa kumbukumbu - kwa majeshi mengine iliwezekana kuhifadhi hadi 1GB ya kumbukumbu, lakini kiashiria hiki kinategemea sana asili ya mzigo, saizi ya jumla ya RAM, idadi ya CPU. na sifa za kufanya kazi na kumbukumbu. Vipimo vya awali ilionyesha kupunguzwa kwa utumiaji wa kumbukumbu kwa 650-700 MB (42% ya kumbukumbu ya slab) kwenye mwisho wa wavuti, 750-800 MB (35%) kwenye seva iliyo na kashe ya DBMS na 700 MB (36%) kwenye seva ya DNS.

Chanzo: opennet.ru

Kuongeza maoni