Nová metoda správy paměti od Facebooku

Jeden z členů vývojového týmu sociální sítě Facebook, Roman Gušin, navrhl v mailing listu vývojářů sadu patchů pro jádro Linuxu, zaměřených na zlepšení výkonu paměti prostřednictvím realizace nového řadiče správy paměti — slab (slab memory controller).

Distribuce slab –– je mechanismus správy paměti navržený pro efektivnější distribuci paměti a eliminaci významné fragmentace. Základem tohoto algoritmu je uchování alokované paměti obsahující objekt určitého typu a opětovné použití této paměti při následující alokaci pro objekt téhož typu. Tato metoda byla poprvé zavedena v SunOS Jeffem Bonvickem a nyní je široce používána v jádrech mnoha operačních systémů Unix, včetně FreeBSD a Linuxu.

Na základě nového řadiče leží přenos sledování slab z úrovně stránek paměti na úroveň objektů jádra, což umožňuje sdílení jedné slab-stránky v různých cgroups, místo alokace samostatné cache pro každou cgroup.

Z výsledků testování vyplývá, že navržená metoda správy paměti umožňuje zvýšit efektivitu využívání slab až o 45%, a také sníží celkovou spotřebu paměti jádrem OS. Také díky zmenšení počtu alokovaných slab stránek dochází k úpravě fragmentace paměti v celku, což nemůže ale neovlivnit výkonnost systému.

Nový řadič již několik měsíců testován na pracovních serverech Facebooku a dosavadní testování lze označit za úspěšné: při absenci ztrát ve výkonnosti a zvýšení počtu chybných hlášení bylo pozorováno jasné snížení spotřeby paměti — na některých serverech až 1 GB. Toto číslo je spíše subjektivní, jak ukazují například dříve provedené testy, které vykázaly mírně nižší výsledky:

  • 650-700 MB na webovém front-endu
  • 750-800 MB na serveru s datovým cache
  • 700 MB na DNS serveru

>>> Stránka autora na GitHubu


>>> Výsledky raných testů

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster