Facebook navrhol nový mechanizmus správy slabej pamäte pre jadro Linuxu

Roman Gushchin (Roman Gushchin) z Facebooku publikovaný na mailing listu vývojárov jadra Linuxu sadu záplat s implementáciou nového radiča prideľovania pamäte doska (radič doskovej pamäte). Nový kontrolér je pozoruhodný tým, že presúva slab accounting z úrovne pamäťovej stránky na úroveň objektu jadra, čo umožňuje zdieľať slab stránky v rôznych cgroups namiesto prideľovania samostatných slab cache pre každú cgroup.

Navrhovaný prístup umožňuje zvýšiť efektivitu používania slab, znížiť veľkosť pamäte použitej pre slab o 30-45% a výrazne znížiť celkovú spotrebu pamäte jadra. Znížením počtu nepohyblivých dosiek je tiež pozitívny vplyv na zníženie fragmentácie pamäte. Nový pamäťový radič výrazne zjednodušuje kód pre účtovanie slabov a nevyžaduje použitie zložitých algoritmov na dynamické vytváranie a odstraňovanie slabých vyrovnávacích pamätí pre každú cgroup. Všetky pamäťové cgroups v novej implementácii používajú spoločnú sadu slab cache a životnosť slab cache už nie je viazaná na životnosť tých, ktoré sú nainštalované cez cgroup. obmedzenia o využití pamäte.

Presnejšie účtovanie zdrojov implementované v novom slab radiči by teoreticky malo viac zaťažovať CPU, ale v praxi sa rozdiely ukázali ako zanedbateľné. Najmä nový slab controller sa používa už niekoľko mesiacov na produkčných serveroch Facebook, ktoré zvládajú rôzne typy pracovného zaťaženia, a zatiaľ neboli identifikované žiadne viditeľné regresie. Súčasne dochádza k výraznému zníženiu spotreby pamäte - na niektorých hostiteľoch bolo možné ušetriť až 1 GB pamäte, ale tento ukazovateľ veľmi závisí od charakteru zaťaženia, celkovej veľkosti pamäte RAM, počtu CPU a funkcie práce s pamäťou. Predchádzajúce testy show zníženie spotreby pamäte o 650 – 700 MB (42 % slabej pamäte) na webovom front-ende, 750 – 800 MB (35 %) na serveri s vyrovnávacou pamäťou DBMS a 700 MB (36 %) na serveri DNS.

Zdroj: opennet.ru

Pridať komentár