
A Linux kernel memóriakezelési alrendszere hamarosan komoly változáson eshet át. A Tencent mérnöke, Kairui Song által benyújtott új patch-sorozat ugyanis egy „Swap Table” nevű megoldást vezetne be, amely a jelenlegi swap cache helyére lépne, és amelynek köszönhetően jelentős, valódi teljesítményjavulás érhető el.
Az ötlet először a LSF/MM/BPF konferencián hangzott el, ahol Kairui Song felvetette, hogy a kernel jelenlegi swap-kezelése túlzottan töredezett: a swap cache, a swap map és a swap allocator külön rendszerekként működnek, amelyek egyre nehezebben fejleszthetők és optimalizálhatók. A jelenlegi megoldás ugyan minimális memóriát használ – mindössze 1 byte per swap map bejegyzés –, de az évek során rengeteg részmegoldás és toldozgatás került a kódba, amelyek összességében akadályozzák az új funkciók bevezetését és fenntartják a komplexitást.
Az új Swap Table infrastruktúra ezzel szemben egységesen kezelné a swap slotokat, így a jövőben könnyebb lenne bővíteni és karbantartani a kódot. Az első, most közzétett fázis kilenc patchből áll, és már önmagában is figyelemre méltó eredményeket hozott:
- 5–20%-os teljesítménynövekedés volt mérhető áteresztőképességben (throughput), másodpercenkénti kérésekben (RPS) és buildidőkben.
- A tesztek ARM alapú gépeken (8 mag, 1 GB RAM) és nagyteljesítményű x86_64 szervereken (48 mag, 96 szál, 128 GB RAM) egyaránt kimutatták a gyorsulást.
- A virtuális gépes skálázhatósági tesztek több mint 20%-os javulást mutattak a legtöbb esetben.
- A Linux kernel fordítási ideje néhány százalékkal csökkent.
- Az in-memory adatbázisok (pl. Redis, Valkey) körülbelül 6–7%-kal nagyobb áteresztőképességet értek el.
Mindez jól mutatja, hogy az új cserehely-kezelési infrastruktúra nemcsak elméleti szinten ígéretes, hanem gyakorlati munkaterhelések alatt is komoly előnyöket nyújt.
Ez még csak az első lépés a teljes patch-sorozatból, de már most látszik, hogy a Swap Table megközelítés hosszú távon is jövőbiztosabbá teheti a Linux memóriakezelését. Ha a további fázisok is sikeresen valósulnak meg, és a fejlesztés bekerül a mainline kernelbe, akkor a felhasználók számottevő gyorsulásra számíthatnak a mindennapi munkaterhelések során – legyen szó akár szerverekről, akár beágyazott rendszerekről.
