„Facebook“ naujas atminties valdymo metodas

Vienas iš socialinių tinklų kūrimo komandos narių Facebook, Romanas Guščinas, kūrėjo adresų sąraše pasiūlė rinkinį Linux branduolio pataisymaiskirtas pagerinti atminties valdymą diegiant naują atminties valdymo valdiklį - plokštė (plokštės atminties valdiklis).

plokščių paskirstymas yra atminties valdymo mechanizmas, skirtas efektyviau paskirstyti atmintį ir pašalinti reikšmingą fragmentaciją. Šio algoritmo pagrindas yra saugoti paskirtą atmintį, kurioje yra tam tikro tipo objektas, ir pakartotinai panaudoti tą atmintį kitą kartą, kai ji bus skirta to paties tipo objektui. Šią techniką SunOS pirmą kartą pristatė Jeffas Bonwickas, o dabar ji plačiai naudojama daugelio Unix operacinių sistemų branduoliuose, įskaitant FreeBSD ir Linux.

Naujasis valdiklis yra pagrįstas plokščių apskaitos perkėlimu iš atminties puslapio lygio į branduolio objekto lygį, o tai leidžia bendrinti vieną plokštės puslapį skirtingose ​​cgrupėse, o ne kiekvienai cgrupei skirti atskirą talpyklą.

Remiantis testo rezultatais, darytina išvada, kad siūlomas atminties valdymo būdas leidžia padidinti veiksmingumas naudojant plokštę 45%, taip pat sumažins bendrą OS branduolio atminties suvartojimą. Be to, sumažinus plokštei skirtų puslapių skaičių, sumažėja atminties suskaidymas kaip visuma, o tai gali neturėti įtakos sistemos veikimui.

Naujasis valdiklis kelis mėnesius buvo bandomas gamybiniuose Facebook serveriuose ir kol kas šį testavimą galima vadinti sėkmingu: neprarandant našumo ir nepadidėjus klaidų skaičiui, pastebimas aiškus atminties sunaudojimo sumažėjimas – kai kuriuose serveriai iki 1GB. Šis skaičius yra gana subjektyvus, pavyzdžiui, ankstesni testai parodė šiek tiek mažesnius rezultatus:

  • 650–700 MB žiniatinklio priekinėje dalyje
  • 750-800 MB serveryje su duomenų bazės talpykla
  • 700 MB DNS serveryje

>>> Autoriaus puslapis GitHub


>>> Ankstyvieji bandymų rezultatai

Šaltinis: linux.org.ru

Добавить комментарий