Nová metoda správy paměti Facebooku

Jeden z členů vývojového týmu sociální sítě facebook, Roman Gushchin, navržený v adresáři vývojářů sadu Záplaty linuxového jádrazaměřené na zlepšení správy paměti prostřednictvím implementace nového řadiče správy paměti - slab (řadič paměti desky).

distribuce desek je mechanismus správy paměti navržený pro efektivnější alokaci paměti a odstranění významné fragmentace. Základem tohoto algoritmu je uložit přidělenou paměť obsahující objekt určitého typu a znovu tuto paměť použít při příštím přidělení pro objekt stejného typu. Tato technika byla poprvé představena v SunOS Jeffem Bonwickem a nyní je široce používána v jádrech mnoha unixových operačních systémů, včetně FreeBSD a Linuxu.

Nový řadič je založen na přesunutí slab accountingu z úrovně paměťové stránky na úroveň jaderných objektů, což umožňuje sdílet jednu slab stránku v různých cgroups, namísto alokace samostatné cache pro každou cgroup.

Na základě výsledků testů vyplývá, že navrhovaný způsob správy paměti umožňuje zvýšení účinnost pomocí desky až 45%a také sníží celkovou spotřebu paměti jádra operačního systému. Snížením počtu stránek přidělených pro slab se také sníží fragmentace paměti jako celku, což nemůže ovlivnit výkon systému.

Nový řadič byl několik měsíců testován na produkčních serverech Facebooku a zatím lze toto testování označit za úspěšné: bez ztráty výkonu a bez nárůstu počtu chyb bylo zaznamenáno jasné snížení spotřeby paměti - na některých servery do 1 GB. Toto číslo je dosti subjektivní, například dřívější testy ukázaly o něco nižší výsledky:

  • 650–700 MB na webovém rozhraní
  • 750-800 MB na serveru s mezipamětí databáze
  • 700 MB na serveru DNS

>>> Stránka autora na GitHubu


>>> První výsledky testů

Zdroj: linux.org.ru

Přidat komentář