MGLRU-FG: akár 10–40%-kal nagyobb Linux-teljesítmény bizonyos tesztekben

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

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.