Nová metóda správy pamäte Facebooku

Jeden z členov vývojového tímu sociálnej siete facebook, Roman Gushchin, navrhol v zozname adresátov vývojárov súbor Záplaty jadra Linuxuzamerané na zlepšenie správy pamäte prostredníctvom implementácie nového radiča správy pamäte - slab (radič doskovej pamäte).

doskové rozvody je mechanizmus správy pamäte určený na efektívnejšie prideľovanie pamäte a elimináciu výraznej fragmentácie. Základom tohto algoritmu je uloženie pridelenej pamäte obsahujúcej objekt určitého typu a opätovné použitie tejto pamäte, keď bude nabudúce pridelená objektu rovnakého typu. Táto technika bola prvýkrát predstavená v SunOS Jeffom Bonwickom a teraz je široko používaná v jadrách mnohých operačných systémov Unix, vrátane FreeBSD a Linuxu.

Nový kontrolér je založený na presune slab accountingu z úrovne pamäťovej stránky na úroveň objektu jadra, čo umožňuje zdieľať jednu slab stránku v rôznych cgroups namiesto prideľovania samostatnej cache pre každú cgroup.

Na základe výsledkov testov vyplýva, že navrhovaná metóda správy pamäte umožňuje zvýšenie účinnosť pomocou dosky až 45%a tiež zníži celkovú spotrebu pamäte jadra OS. Znížením počtu stránok pridelených pre slab sa tiež zníži fragmentácia pamäte ako celku, čo nemôže ovplyvniť výkon systému.

Nový ovládač bol niekoľko mesiacov testovaný na produkčných serveroch Facebooku a zatiaľ možno toto testovanie nazvať úspešným: bez straty výkonu a bez zvýšenia počtu chýb bol zaznamenaný jasný pokles spotreby pamäte - na niektorých servery do 1 GB. Toto číslo je dosť subjektívne, napríklad predchádzajúce testy ukázali o niečo nižšie výsledky:

  • 650 – 700 MB na webovom rozhraní
  • 750-800 MB na serveri s databázovou vyrovnávacou pamäťou
  • 700 MB na serveri DNS

>>> Stránka autora na GitHub


>>> Skoré výsledky testov

Zdroj: linux.org.ru

Pridať komentár