Az MGLRU az elmúlt években már látványos teljesítményjavulást hozott Linuxon az oldalak visszavételének optimalizálásával, különösen memória-terhelés alatt. Az új MGLRU-FG javítócsomagok erre próbálnak még rátenni egy lapáttal.
Kairui Song Linux-fejlesztő a hétvégén küldte be az MGLRU-FG legújabb javítócsomagjait. Az MGLRU-FG a MGLRU frekvencia-alapú előléptetését valósítja meg. Az új javítócsomagokkal a Linux kernel build benchmark még jobb eredményeket hoz, összességében is nagyon szép számokkal. Song így magyarázza a frekvencia-alapú előléptetést a MGLRU-hoz ebben a patchben:
„Kiegészíti az MGLRU kilakoltatás-kori, szint/PID alapú védelmét egy hozzáférés-kori, frekvencia-alapú előléptetéssel. Bevezet egy egységes segédfüggvény-készletet, amely egy folio hivatkozásainak (hozzáféréseinek) számán alapul.
Minden hozzáférés növeli a folio hivatkozásszámlálóját, amely a folio flagjeiben (refs) tárolódik. A refs továbbra is logaritmikus szintekre vetül, mint korábban, de most már formálisabb bittérképpel, néhány speciális küszöbértékkel: LRU_REFS_REFERENCED (1), LRU_REFS_WORKINGSET (2), LRU_REFS_PROTECTED (3) és LRU_REFS_MAX (7). Ha a refs elér egy bizonyos küszöböt, a folio-t proaktívan előléptetjük, ahelyett hogy megvárnánk, amíg a PID vezérlő beavatkozik.
Egyszerűsítjük az MGLRU PG_workingset és PG_referenced használatát is: ezek a refs számláló alsó két bitjévé válnak, a magasabb biteket az LRU_REFS_MASK adja. Ez az MGLRU eredeti refs bitfelhasználását eggyel csökkenti, mivel most már csak egy extra bit kell ahhoz, hogy a maximális hivatkozásszám 7 legyen, és pontosabbá teszi az MGLRU refs elszámolását.”
A végfelhasználók számára a lényeg az eredmény:
„Összefoglalva: 10–40%-kal nagyobb teljesítményt vagy alacsonyabb refault-arányt látunk különböző tesztekben. Bizonyos terheléseknél drasztikusan csökken a futási idő, miközben az oldal flag-ek bitigényét 1 bittel mérsékeljük. A nyereség főként abból származik, hogy az LRU sokkal jobban meg tudja különböztetni a forró workingset-et. Több, különböző architektúrájú szerveren, desktopon és Androidon is teszteltük, mindenhol nagyon ígéretes eredményekkel. A V2-höz képest a V3-at jobban érinti az anon túlzott visszavétele, de összességében jobb eredményeket ad. Ezt a problémát később vagy külön kell javítani.
Már most is nagyon jól használható, stabil és jó teljesítményt ad, de egyelőre RFC marad, mert ez egy nagy változás az LRU-ban, beleértve az Active/Inactive olvasás módosítását is – szerintem jó irányban.”
A Linux kernel build teszt körülbelül egy másodperccel gyorsabban fut, vagy közel 10 másodperccel gyorsabban, ha 96 párhuzamos fordítási folyamatot indítanak a memória-visszavétel terhelésének növelésére. A MongoDB 13,5%-kal gyorsabb lett MGLRU-FG-vel. A Chromium és a Node.js zRAM-alapú swap használata mellett 76%-os javulást mutatott. Az FIO akár 11%-kal nagyobb átviteli sebességet ért el.A Linux kernel számára készülő MGLRU-FG munkáról további részletek olvashatók ebben az LKML javítócsomag-sorozatban.

