Jelentős teljesítménynövekedést hozhat a Linux kernel swap kódjának átdolgozása

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

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.