Nova Facebookova metoda upravljanja memorijom

Jedan od članova tima za razvoj društvenih mreža Facebook, Roman Guščin, predložio je na popisu za razvojne programere skup Linux kernel zakrpeusmjeren na poboljšanje upravljanja memorijom kroz implementaciju novog kontrolera upravljanja memorijom - ploča (kontroler memorije ploče).

distribucija ploča je mehanizam za upravljanje memorijom dizajniran za učinkovitiju dodjelu memorije i uklanjanje značajne fragmentacije. Osnova ovog algoritma je pohranjivanje dodijeljene memorije koja sadrži objekt određene vrste i ponovno korištenje te memorije sljedeći put kada se dodijeli objektu iste vrste. Ovu tehniku ​​je prvi put predstavio Jeff Bonwick u SunOS-u i sada se naširoko koristi u jezgri mnogih Unix operativnih sustava, uključujući FreeBSD i Linux.

Novi kontroler se temelji na premještanju slab obračuna s razine memorijske stranice na razinu objekta jezgre, što omogućuje dijeljenje jedne slab stranice u različitim cgroups, umjesto dodjele zasebne predmemorije za svaku cgroup.

Na temelju rezultata testa, slijedi da predložena metoda upravljanja memorijom omogućuje povećanje efikasnost pomoću ploče na 45%, a također će smanjiti ukupnu potrošnju memorije jezgre OS-a. Također, smanjenjem broja stranica dodijeljenih za slab, smanjuje se fragmentacija memorije u cjelini, što ne može ne utjecati na performanse sustava.

Novi kontroler testiran je na produkcijskim Facebook poslužiteljima nekoliko mjeseci i zasad se ovo testiranje može nazvati uspješnim: bez gubitka performansi i povećanja broja pogrešaka, primijećeno je jasno smanjenje potrošnje memorije - na nekim poslužitelji do 1GB. Ovaj broj je prilično subjektivan, na primjer, raniji testovi su pokazali nešto slabije rezultate:

  • 650-700 MB na web sučelju
  • 750-800 MB na poslužitelju s predmemorijom baze podataka
  • 700 MB na DNS poslužitelju

>>> Autorova stranica na GitHubu


>>> Rani rezultati testa

Izvor: linux.org.ru

Dodajte komentar