Roman Gushchin () iz tvrtke Facebook na mailing listi programera jezgre Linuxa paket zakrpa s implementacijom novog kontrolera za raspodjelu memorije (kontroler slab memorije). Novi kontroler ističe se prijenosom praćenja slab s razine stranica memorije na razinu objekata jezgre, što omogućuje zajedničko korištenje slab-stranica u različitim cgroup, umjesto dodjeljivanja posebnih slab-cacheva za svaku cgroup.
Predloženi pristup omogućava povećanje učinkovitosti korištenja slab, smanjenje veličine korištene memorije za slab za 30-45% i značajno smanjenje ukupne potrošnje memorije od strane jezgre. Zbog smanjenja broja nepreseljenih slab-ova također se vidi pozitivan učinak na smanjenje fragmentacije memorije. Novi kontroler memorije značajno pojednostavljuje kod za praćenje slab i ne zahtijeva primjenu složenih algoritama dinamičkog stvaranja i uništavanja slab-cacheva za svaku cgroup. Sve cgroup za memoriju u novoj implementaciji koriste zajednički set slab-cacheva, a životni vijek slab-cacheva više nije vezan uz životni vijek postavljenih putem cgroup u korištenju memorije.
Implementiran u novom kontroleru, precizniji nadzor resursa teoretski bi trebao više opteretiti CPU, no u praksi su razlike bile beznačajne. Konkretno, novi kontroler slab koristi se već nekoliko mjeseci na radnim serverima Facebooka koji obrađuju razne vrste opterećenja, i do sada nije uočeno značajnih regresija. U tom procesu primijećeno je značajno smanjenje potrošnje memorije — na nekim hostovima uspjelo se uštedjeti do 1 GB memorije, no ovaj pokazatelj snažno ovisi o karakteru opterećenja, ukupnoj veličini RAM-a, broju CPU-a i karakteristikama rada s memorijom. Ranije provedeni testovi smanjenje potrošnje memorije za 650-700 MB (42% slab memorije) na web frontendu, 750-800 MB (35%) na serveru s cacheom DBMS-a i 700 MB (36%) na DNS serveru.
Izvor: opennet.ru
