„Facebook“ išleido pataisas, kurios patobulina „Slab“ atminties valdiklį sistemoje „Linux“

Romanas Gushchinas („Facebook“ programinės įrangos inžinierius) registrą „Linux“ branduolio kūrimo sąraše, plokščių valdiklio atminties atvaizdavimo programos pataisų rinkinys (atminties valdiklis).

Naujasis valdiklis yra puikus perkeldami plokščių apskaitą iš atminties puslapio lygio į branduolio objekto lygį, suteikdami galimybę dalytis plokščių puslapiais skirtingose ​​c grupėse, o ne paskirstyti atskiras plokščių talpyklas kiekvienai grupei c.

Romanas rado tai, ką jis vadina „labai rimtu trūkumu“ esamame plokštės atminties valdiklyje, dėl kurio šiomis dienomis mažai naudojamas grupės grupės.

„Tikroji priežastis, kodėl esamas išdėstymas lemia mažą plokščių naudojimą, yra paprasta: plokščių puslapius naudoja tik atminties telkinys.

Jei grupėje yra tik keli tam tikro dydžio priskyrimai arba jei pašalinus grupę lieka keletas aktyvių objektų, arba grupėje yra viena srieginė programa, kuri vos paskirsto branduolio objektus, bet kaskart naujas procesorius: visais šiais atvejais plokštės naudojamos labai mažai.

Jei kmem apskaita išjungta, branduolys gali naudoti laisvą vietą plokščių puslapiuose kitiems paskirstymams. «

Siūlomas plokštės atminties valdiklis Romano Gushchino autorius praėjusiais metais buvo daug žadantis padidina efektyvumą plokštės naudojimo, sumažinti naudojamos atminties dydį plokštėms 30-45% ir žymiai sumažina bendrą branduolio atminties sunaudojimą.

Taip pat įdiegti pleistrai nurodė kad „Facebook“ jau naudoja kodą gamyboje savo serveriuose ir buvo taupant ~ 650–700 MB + išankstinio tinklo serveriams, duomenų bazės talpyklą ir DNS serverius, be kitų apdovanojimų.

Sumažinus ne mobiliųjų plokščių skaičių, teigiamas poveikis pastebimas ir atminties fragmentacijos mažinimo srityje. Naujas atminties valdiklis žymiai supaprastina apskaitos plokštės kodą ir nereikalauja sudėtingų algoritmų, skirtų dinamiškai kurti ir ištrinti plokščių talpyklas kiekvienai grupei c.

Visoms naujojo diegimo atminties grupėms naudojamas bendras plokščių talpyklų rinkinys, o plokščių talpyklų gyvenimo trukmė nebėra susieta su atminties apribojimų, nustatytų per grupę, gyvenimo trukme.

Tikslesnė išteklių apskaita, įdiegta naujame plokštės valdiklyje, teoriškai turėtų labiau apkrauti procesorių, tačiau praktiškai skirtumai pasirodė esą nereikšmingi.

Visų pirma naujoji plokštės tvarkyklė keletą mėnesių buvo naudojama „Facebook“ serveriuose veikiantys įvairių tipų apkrovoms, ir iki šiol nebuvo nustatyta reikšmingų regresijų.

Pleistras turi keletą pusiau nepriklausomų dalių, kurias taip pat galima naudoti ne plokštės atminties valdiklyje:

  • Subpage Load API, kuri ateityje gali būti naudojama skaičiuojant kitus objektus, kurie nėra puslapio dydžio, pvz., Percpu paskirstymai
  • „Mem_cgroup_ptr“ API, kur žymekliai suskaičiuojami į memcg, galima pakartotinai panaudoti efektyviam kitų objektų, pvz., „Pagecache“, atkūrimui.

Tuo pačiu metu žymiai sumažėja atminties suvartojimas- Kai kuriuose kompiuteriuose buvo galima sutaupyti iki 1 GB atminties, tačiau šis rodiklis labai priklauso nuo apkrovos pobūdžio, bendras RAM dydis, procesoriaus kiekis ir darbo su atmintimi ypatybės.

Užuot sukūrę atskirą kmem_cache rinkinį kiekvienai atminties grupei, naudojami du visuotiniai rinkiniai: šaknų rinkinys neapskaitytoms ir šaknų grupės grupių priskyrimams ir antrasis rinkinys visiems kitiems priskyrimams. Tai leidžia supaprastinti atskirų kmem_cache tvarkymą visą gyvenimą.

Galiausiai, jei norite sužinoti naują 19 pleistrų rinkinį, jį galite rasti sąraše branduolio paštas.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.