Facebook je predložio novi mehanizam za upravljanje memorijom za Linux kernel

Roman Gushchin (Roman Gushchin) sa Facebooka objavljen na mailing listi programera Linux kernela set zakrpa sa implementacijom novog kontrolera za dodjelu memorije ploča (kontrolor memorije ploča). Novi kontroler je značajan po premeštanju obračuna ploča sa nivoa memorijske stranice na nivo objekta kernela, što omogućava deljenje pločastih stranica u različitim cgrupama, umesto dodeljivanja zasebnih predmemorija ploča za svaku cgrupu.

Predloženi pristup omogućava povećanje efikasnosti korišćenja ploče, smanjenje veličine memorije koja se koristi za ploču za 30-45% i značajno smanjenje ukupne potrošnje memorije kernela. Smanjenjem broja nepomičnih ploča, postoji i pozitivan učinak u smanjenju fragmentacije memorije. Novi memorijski kontroler značajno pojednostavljuje kod za obračun ploča i ne zahtijeva korištenje kompliciranih algoritama za dinamičko kreiranje i brisanje keša ploča za svaku cgrupu. Sve memorijske cgrupe u novoj implementaciji koriste zajednički skup predmemorije ploča, a životni vijek ploča predmemorije više nije vezan za vijek trajanja onih instaliranih kroz cgroup ograničenja o upotrebi memorije.

Preciznije obračunavanje resursa implementirano u novom pločastom kontroleru bi teoretski trebalo više opteretiti CPU, ali se u praksi pokazalo da su razlike beznačajne. Konkretno, novi pločasti kontroler se već nekoliko mjeseci koristi na proizvodnim Facebook serverima koji rukovode različitim vrstama opterećenja, a još uvijek nisu identificirane primjetne regresije. Istovremeno, postoji značajno smanjenje potrošnje memorije - na nekim hostovima je bilo moguće uštedjeti do 1 GB memorije, ali ovaj pokazatelj uvelike ovisi o prirodi opterećenja, ukupnoj veličini RAM-a, broju CPU-a. i karakteristike rada sa memorijom. Prethodni testovi pokazao smanjenje potrošnje memorije za 650-700 MB (42% slab memorije) na web front-endu, 750-800 MB (35%) na serveru sa DBMS kešom i 700 MB (36%) na DNS serveru.

izvor: opennet.ru

Dodajte komentar