A Facebook kiadott olyan javításokat, amelyek javítják a Slab memória vezérlőjét a Linuxban

Roman Gushchin (Facebook szoftvermérnök) Iktató hivatal a Linux kernel fejlesztési listáján, javítócsomagok a födémvezérlő memória leképező alkalmazásához (memória vezérlő).

Az új vezérlő figyelemre méltó a födémelszámolás áthelyezésével a memóriaoldalak szintjéről a kernelobjektumok szintjére, ami lehetővé teszi a födémlapok megosztását különböző c csoportokban, ahelyett, hogy minden c csoport számára külön tábla gyorsítótárat osztana ki.

Roman azt találta, amit "nagyon súlyos hibának" nevez a meglévő memóriavezérlőben, ami manapság alacsony kihasználtsághoz vezet a csoportoknál.

„A valódi ok, ami miatt a meglévő kialakítás alacsony födémfelhasználáshoz vezet, egyszerű: a födémlapokat kizárólag a memóriakészlet használja.

Ha csak egy bizonyos méretű allokáció van egy cgroup által, vagy ha a cgroup eltávolítása után van néhány aktív objektum, vagy a cgroup egyetlen szálas alkalmazást tartalmaz, amely alig oszt fel kernelobjektumokat, de mindig új CPU: ezekben az esetekben az ebből származó födém kihasználtság nagyon alacsony.

Ha a kmem könyvelés le van tiltva, a kern felhasználhatja a födémoldalakon a szabad teret más kiosztásokhoz. «

A javasolt lemez memóriavezérlő Romano Gushchin által az elmúlt évben meglehetősen ígéretes volt növeli a hatékonyságot a födém használatáról, csökkentse a felhasznált memória méretét a födémhez 30-45% -kal, és jelentősen csökkenti a kernel teljes memóriafelhasználását.

További, a megvalósított javítások jelezték hogy a Facebook már a gyártás során használja a kódot a szervereiken, és volt ~ 650-700 MB + megtakarítás a front-end webszerverek számára, adatbázis-gyorsítótár és DNS-szerverek, többek között díjak.

A nem mobil táblák számának csökkentésével pozitív hatás figyelhető meg a memória töredezettségének csökkentése terén is. Az új memóriavezérlő jelentősen leegyszerűsíti a könyvelési táblák kódját és nem igényel bonyolult algoritmusokat a lemezek gyorsítótárainak dinamikus létrehozásához és törléséhez az egyes c csoportokhoz.

Az új megvalósításban a memória összes csoportja közös tábla gyorsítótárakat használ, és a lemezek gyorsítótárainak élettartama már nem kötődik a cgroup által beállított memória korlátok élettartamához.

Az új födémvezérlőben megvalósított pontosabb erőforrás-elszámolásnak elméletileg többet kellene megterhelnie a CPU-t, de a gyakorlatban a különbségek elhanyagolhatónak bizonyultak.

Különösen az új födémillesztőt több hónapja használják a Facebook szerverein különböző típusú terheléseket kezelő üzemben, és eddig nem észleltek jelentős regressziót.

A javítás tartalmaz néhány félig független alkatrészt, amelyek a panel memóriavezérlőjén kívül is megtalálhatók:

  • Az aloldal betöltése API, amely a jövőben felhasználható más, nem egy oldal méretű objektumok, például percpu kiosztások számlálására
  • A mem_cgroup_ptr API, ahol a memcg-ig számolt mutatók újrafelhasználhatók más objektumok, például pagecache hatékony újraszámlálására.

Ugyanakkor, jelentősen csökken a memóriafelhasználás- Néhány állomáson 1 GB memóriát lehetett megtakarítani, de ez a jelző nagyban függ a terhelés jellegétől, a RAM teljes mérete, a CPU mennyisége és a memóriával való munka jellemzői.

Ahelyett, hogy minden memóriacsoportra külön kmem_cache-készletet hoznának létre, két globális halmazt használnak: a gyökérhalmaz a megszámlálatlan és a gyökércsoport-csoportcsoport-hozzárendelésekhez, a második pedig az összes többi hozzárendeléshez. Ez lehetővé teszi az egyes kmem_cache élettartam-kezelésének egyszerűsítését.

Végül, ha érdekel az új 19 javítás készlet, megtalálja a listában kernel mail.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.