Nova Facebookova metoda upravljanja pomnilnika

Eden od članov ekipe za razvoj družbenega omrežja Facebook , Roman Guščin, je na poštnem seznamu za razvijalce predlagal niz Popravki jedra Linuxanamenjen izboljšanju upravljanja pomnilnika z implementacijo novega krmilnika za upravljanje pomnilnika - plošča (pomnilniški krmilnik plošče).

porazdelitev plošč je mehanizem za upravljanje pomnilnika, zasnovan za učinkovitejše dodeljevanje pomnilnika in odpravo znatne razdrobljenosti. Osnova tega algoritma je shranjevanje dodeljenega pomnilnika, ki vsebuje objekt določene vrste, in ponovna uporaba tega pomnilnika, ko je naslednjič dodeljen objektu iste vrste. To tehniko je v SunOS prvič predstavil Jeff Bonwick in se zdaj pogosto uporablja v jedrih številnih operacijskih sistemov Unix, vključno s FreeBSD in Linuxom.

Novi krmilnik temelji na premikanju obračunavanja slabe strani z ravni pomnilniške strani na raven objekta jedra, kar omogoča skupno rabo ene slabe strani v različnih cgroupih, namesto da bi za vsako cgroup dodelili ločen predpomnilnik.

Na podlagi rezultatov testiranja sledi, da predlagani način upravljanja pomnilnika omogoča povečanje učinkovitost z uporabo plošče da 45%, prav tako pa bo zmanjšal skupno porabo pomnilnika jedra OS. Poleg tega se z zmanjšanjem števila strani, dodeljenih plošči, zmanjša razdrobljenost pomnilnika kot celote, kar ne more vplivati ​​na zmogljivost sistema.

Novi krmilnik je bil več mesecev preizkušen na produkcijskih strežnikih Facebook in zaenkrat lahko to testiranje imenujemo uspešno: brez izgube zmogljivosti in brez povečanja števila napak je bilo opaziti očitno zmanjšanje porabe pomnilnika - na nekaterih strežniki do 1 GB. Ta številka je precej subjektivna, na primer prejšnji testi so pokazali nekoliko nižje rezultate:

  • 650-700 MB na spletnem vmesniku
  • 750–800 MB na strežniku s predpomnilnikom baze podatkov
  • 700 MB na DNS strežniku

>>> Avtorjeva stran na GitHubu


>>> Zgodnji rezultati testa

Vir: linux.org.ru

Dodaj komentar