Facebook je predložio novi mehanizam upravljanja slabom memorijom za Linux kernel

Roman Guščin (Roman Guščin) s Facebooka objavljen na mailing listi programera Linux kernela skup zakrpa s implementacijom novog kontrolera dodjele memorije ploča (pločasti memorijski kontroler). Novi kontroler je poznat po premještanju slab obračuna s razine memorijske stranice na razinu objekta jezgre, što omogućuje dijeljenje slab stranica u različitim cgroup-ima, umjesto dodjele zasebnih slab predmemorija za svaku cgroup.

Predloženi pristup omogućuje povećanje učinkovitosti korištenja slaba, smanjenje veličine memorije koja se koristi za slab za 30-45% i značajno smanjenje ukupne potrošnje memorije kernela. Smanjenjem broja nepomičnih ploča također se pozitivno utječe na smanjenje fragmentacije memorije. Novi memorijski kontroler značajno pojednostavljuje kod za obračunavanje ploča i ne zahtijeva korištenje kompliciranih algoritama za dinamičko stvaranje i brisanje predmemorija ploča za svaku cgrupu. Sve memorijske cgroups u novoj implementaciji koriste zajednički skup slab predmemorija, a vijek trajanja slab predmemorija više nije vezan za životni vijek onih instaliranih kroz cgroup ograničenja na korištenje memorije.

Preciznije obračunavanje resursa implementirano u novom kontroleru ploče teoretski bi trebalo više opteretiti CPU, ali u praksi se pokazalo da su razlike beznačajne. Konkretno, novi kontroler ploče koristi se nekoliko mjeseci na produkcijskim Facebook poslužiteljima koji rade s različitim vrstama posla, a još uvijek nisu identificirane nikakve primjetne regresije. Istodobno, postoji značajno smanjenje potrošnje memorije - na nekim hostovima bilo je moguće uštedjeti do 1 GB memorije, ali ovaj pokazatelj uvelike ovisi o prirodi opterećenja, ukupnoj veličini RAM-a, broju procesora te značajke rada s memorijom. Prethodni testovi pokazala smanjenje potrošnje memorije za 650-700 MB (42% slabe memorije) na web front-endu, 750-800 MB (35%) na poslužitelju s DBMS predmemorijom i 700 MB (36%) na DNS poslužitelju.

Izvor: opennet.ru

Dodajte komentar