Facebook navrhl nový mechanismus správy slabých pamětí pro linuxové jádro

Roman Gushchin (Roman Gushchin) z Facebooku zveřejněna na mailing listu vývojářů linuxového jádra sadu oprav s implementací nového řadiče alokace paměti deska (řadič pamětí desky). Nový řadič je pozoruhodný tím, že přesouvá slab accounting z úrovně stránky paměti na úroveň objektů jádra, což umožňuje sdílet slab stránky v různých cgroups, namísto alokace samostatných slab cache pro každou cgroup.

Navrhovaný přístup umožňuje zvýšit efektivitu používání slab, snížit velikost paměti použité pro slab o 30–45 % a výrazně snížit celkovou spotřebu paměti jádra. Snížením počtu nepohyblivých slabů se také pozitivně projeví snížení fragmentace paměti. Nový řadič paměti výrazně zjednodušuje kód pro účtování slabů a nevyžaduje použití složitých algoritmů pro dynamické vytváření a mazání mezipaměti slabů pro každou cgroup. Všechny paměťové cgroups v nové implementaci používají společnou sadu slab cache a životnost slab cache již není vázána na životnost těch nainstalovaných prostřednictvím cgroup. omezení na využití paměti.

Přesnější účtování zdrojů implementované v novém slab controlleru by teoreticky mělo více zatěžovat CPU, ale v praxi se rozdíly ukázaly jako nevýznamné. Zejména nový slab controller byl několik měsíců používán na produkčních serverech Facebook, které zvládaly různé typy zátěže, a dosud nebyly identifikovány žádné znatelné regrese. Současně dochází k výraznému snížení spotřeby paměti - na některých hostitelích bylo možné ušetřit až 1 GB paměti, ale tento ukazatel velmi závisí na povaze zatížení, celkové velikosti RAM, počtu CPU a funkce práce s pamětí. Předchozí testy ukázáno snížení spotřeby paměti o 650-700 MB (42 % slab paměti) na webovém front-endu, 750-800 MB (35 %) na serveru s mezipamětí DBMS a 700 MB (36 %) na serveru DNS.

Zdroj: opennet.ru

Přidat komentář