Jeden z členů týmu pro vývoj sociálních sítí facebook, Roman Guščin, navrhl soubor záplaty jádra Linux, jehož cílem je zlepšení správy paměti implementací nového řadiče správy paměti - slab (řadič paměti slab).
Distribuce desek – je mechanismus správy paměti navržený pro efektivnější alokaci paměti a eliminaci významné fragmentace. Jádrem tohoto algoritmu je ušetřit alokovanou paměť obsahující objekt určitého typu a znovu použít tuto paměť při příští alokaci objektu stejného typu. Tuto metodu poprvé představil Jeff Bonwick v systému SunOS a nyní je široce používána v jádrech mnoha unixových operačních systémů, včetně FreeBSD a Linux.
Nový kontrolér je založen na přesunu účtování slabů z úrovně paměťových stránek na úroveň objektů jádra, což umožňuje sdílení jedné slabové stránky mezi různými cgroupmi namísto alokace samostatné mezipaměti pro každou cgroup.
Výsledky testů ukazují, že navrhovaná metoda správy paměti může zlepšit účinnost použití desky až 45%a také sníží celkovou spotřebu paměti jádrem operačního systému. Snížením počtu stránek přidělených slabům se také obecně snižuje fragmentace paměti, což nevyhnutelně ovlivňuje výkon systému.
Nový řadič je testován na produkčních serverech Facebooku již několik měsíců a zatím je úspěšný: bez ztráty výkonu nebo nárůstu chyb bylo pozorováno zřetelné snížení spotřeby paměti – na některých serverech až o 1 GB. Toto číslo je poměrně subjektivní; například předchozí testy ukázaly o něco nižší výsledky:
- 650-700 MB na webovém frontendu
- 750–800 MB na serveru s mezipamětí databáze
- 700 MB na DNS serveru
Zdroj: linux.org.ru
