A közösségi hálózatok fejlesztőcsapatának egyik tagja Facebook, Római Gushchin, javasolta a fejlesztői levelezőlistán egy sor Linux kernel javításokcélja a memóriakezelés javítása egy új memóriakezelő vezérlő bevezetésével - födém (födém memóriavezérlő).
födémelosztás egy memóriakezelő mechanizmus, amelyet a memória hatékonyabb lefoglalására és a jelentős töredezettség kiküszöbölésére terveztek. Ennek az algoritmusnak az alapja, hogy tárolja a lefoglalt memóriát, amely egy bizonyos típusú objektumot tartalmaz, és ezt a memóriát újra felhasználja, amikor legközelebb lefoglalja egy azonos típusú objektumhoz. Ezt a technikát először Jeff Bonwick vezette be a SunOS rendszerben, és ma már széles körben használják számos Unix operációs rendszer kernelében, beleértve a FreeBSD-t és a Linuxot is.
Az új vezérlő alapja a födém-elszámolás a memórialap-szintről a kernelobjektum-szintre való áthelyezésén alapul, ami lehetővé teszi egy födémoldal megosztását különböző cgroupokban, ahelyett, hogy minden egyes c-csoporthoz külön gyorsítótárat rendelne.
A teszteredmények alapján az következik, hogy a javasolt memóriakezelési módszer lehetővé teszi a bővítést hatékonyság födém segítségével A 45%, és csökkenti az operációs rendszer kernel teljes memóriafogyasztását is. Ezenkívül a födémhez kiosztott oldalak számának csökkentésével csökken a memória töredezettsége összességében, ami csak befolyásolja a rendszer teljesítményét.
Az új vezérlőt több hónapja tesztelték éles Facebook-szervereken, és ez a tesztelés eddig sikeresnek mondható: teljesítménycsökkenés és hibaszám növekedés nélkül a memóriafelhasználás egyértelmű csökkenése volt megfigyelhető - egyes esetekben szerverek akár 1 GB-ig. Ez a szám meglehetősen szubjektív, például a korábbi tesztek valamivel alacsonyabb eredményeket mutattak:
- 650-700 MB a webes felületen
- 750-800 MB adatbázis-gyorsítótárral rendelkező szerveren
- 700 MB a DNS-kiszolgálón
>>> A szerző oldala a GitHubon
Forrás: linux.org.ru