Jelentősen gyorsulhat a Linux 6.18: Sheaves – per-CPU, tömbalapú gyorsítótár a SLUB memóriakezeléshez

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 fejlesztői folyamatosan dolgoznak azon, hogy a többmagos rendszerek teljesítményét és skálázhatóságát javítsák. A közelgő 6.18-as verzió egyik ígéretes újdonsága a Sheaves, egy választható (opt-in), per-CPU, tömbalapú gyorsítótár-réteg (array-based caching layer) a SLUB memória-allokátorhoz. A Google által karbantartott javításcsomag már bekerült a slab/for-next Git ágba, így jó eséllyel ott lesz a 6.18-as kernel összeolvasztási ablakában.

Mi az a Sheaves?

A Sheaves célja, hogy hatékonyabbá tegye a SLUB memória-allokátor működését nagy számú processzormag esetén. A megoldás per-CPU gyorsítótárakat hoz létre tömbösített formában, így csökkenthető a versenyhelyzetek (contention) száma és a lockolási költség.
A fejlesztést elsősorban a nagy teljesítményű, sokmagos szerverekhez igazítják, ahol a memória-allokáció párhuzamos terhelés alatt jelentős szűk keresztmetszet lehet.

Google-benchmarkok: kiugró eredmények az AMD EPYC Turin rendszereken

A Google mérnöke, Sudarsan Mahendran a múlt pénteken osztotta meg a Linux Kernel Mailing Listen (LKML) az első Sheaves-teszteket. A szoftverfoltokat egy Linux 6.17 alapú kernelre portolta, és a következő architektúrákon futtatta a méréseket:

  • Intel Granite Rapids (480 mag)
  • AMD EPYC Turin (512 mag)
  • ARM szerver (80 mag)

A vizsgált tesztcsomagok között szerepelt a will-it-scale, a hackbench, a redis, a unixbench és a kernbench.

A legizgalmasabb eredményeket az AMD Turin platform produkálta:

  • A will-it-scale benchmarkon +28,58% átlagos javulás már az alacsonyabb terhelési szinteken.
  • Magasabb processz-számnál akár +70,59%, +112,89% és +126,89% gyorsulás is megfigyelhető volt.
  • Más tesztekben (hackbench, redis, stb.) nem volt jelentős eltérés, viszont néhány esetben 13–20%-os visszaesés is előfordult.

A regressziók feltehetően a Sheaves belső algoritmusainak finomhangolására utalnak, amelyet a fejlesztők várhatóan tovább optimalizálnak.

Kilátások és jelentőség

A Sheaves különösen a nagy mag- és szál-számmal rendelkező rendszereknél (például: AMD EPYC Turin, Intel Xeon Granite Rapids) hozhat komoly előrelépést a Linux memóriakezelésében. A fejlesztők a patch-sorozatot valószínűleg a 6.18-as verzió főágába is beolvasztják, így a kiadás idején a vállalati és felhőszolgáltatók körében is élesben tesztelhetik majd a hatásait.

A következő hónapokban várható, hogy további benchmarkok és valós felhasználási példák is megjelennek, amelyek pontosabb képet adnak arról, mikor és milyen munkaterhelésnél érdemes bekapcsolni a Sheaves réteget.