Facebook vydal opravy, ktoré vylepšujú radič pamäte Slab v Linuxe

Roman Gushchin (softvérový inžinier spoločnosti Facebook) registratúra v zozname vývoja jadra Linuxu, sada opráv do aplikácie na mapovanie pamäte radiča dosky (radič pamäte).

Nový radič je pozoruhodný presunutím účtovníctva platní z úrovne pamäťovej stránky na úroveň objektov jadra, čo umožňuje zdieľať stránky platní naprieč rôznymi skupinami c, a nie prideľovať samostatné cache platní pre každú skupinu c.

Roman našiel to, čo nazýva „veľmi vážnou chybou“ v existujúcom radiči pamätí dosky, čo vedie v dnešnej dobe k nízkemu využitiu pomocou skupín.

„Skutočný dôvod, prečo súčasný dizajn vedie k nízkemu využitiu dosky, je jednoduchý: stránky dosky sú používané výhradne v oblasti pamäte.

Ak cgroup urobí iba niekoľko alokácií určitej veľkosti, alebo ak po odstránení cgroup zostanú nejaké aktívne objekty, alebo cgroup obsahuje jednu aplikáciu so závitom, ktorá ťažko alokuje žiadne základné objekty, ale vždy na novom CPU: vo všetkých týchto prípadoch je výsledné využitie dosky veľmi nízke.

Ak je účtovníctvo kmem zakázané, jadro môže na ďalšie rozdelenie využiť voľné miesto na stránkach slab. «

Navrhovaný radič pamäte Slab Romano Gushchin v minulom roku bol celkom sľubný ako zvyšuje účinnosť použitia dosky, zmenšiť veľkosť použitej pamäte pre dosku o 30-45% a výrazne znížiť celkovú spotrebu pamäte jadra.

Okrem toho, implementované opravy označili že Facebook už používa kód pri výrobe na svojich serveroch a bol úspora ~ 650 - 700 MB + + pre front-end webové servery, ukladanie dát do pamäte cache a servery DNS, okrem iných ocenení.

Znížením počtu nemobilných dosiek sa pozitívny účinok pozoruje aj v oblasti znižovania fragmentácie pamäte. Nový radič pamäte výrazne zjednodušuje kód pre účtovnú dosku a nevyžaduje zložité algoritmy na dynamické vytváranie a mazanie dosiek cache pre každú skupinu c.

Všetky skupiny pre pamäť v novej implementácii používajú spoločnú sadu dosiek cache a životnosť dosiek cache už nie je viazaná na životnosť pamäťových obmedzení nastavených prostredníctvom cgroup.

Presnejšie účtovanie zdrojov implementované v novom kontroléri slab by malo teoreticky zaťažiť CPU viac, ale v praxi sa rozdiely ukázali ako zanedbateľné.

Najmä nový ovládač slab sa na serveroch Facebook používa už niekoľko mesiacov v prevádzke, ktoré manipulujú s rôznymi typmi záťaží, a doteraz neboli zistené žiadne významné regresie.

Patch obsahuje niekoľko polonezávislých častí, ktoré nájdu svoje využitie aj mimo radiča pamäte dosky:

  • Rozhranie Subpage Load API, ktoré sa v budúcnosti bude dať použiť na počítanie ďalších objektov, ktoré nemajú veľkosť stránky, napríklad pridelenia percpu
  • Rozhranie mem_cgroup_ptr API, kde sa ukazovatele počítajú do memcg, je možné znovu použiť na efektívne opätovné rodičovské spojenie iných objektov, napríklad pagecache.

Súčasne dochádza k výraznému poklesu spotreby pamäte- Na niektorých hostiteľoch bolo možné uložiť až 1 GB pamäte, ale tento indikátor do veľkej miery závisí od povahy nákladu, celková veľkosť RAM, množstvo CPU a charakteristiky práce s pamäťou.

Namiesto vytvorenia samostatnej sady kmem_caches pre každú pamäťovú cgroup sa používajú dve globálne sady: koreňová sada pre nepočítané a priradenie koreňovej skupiny cgroup a druhá sada pre všetky ostatné priradenia. To umožňuje zjednodušenie celoživotnej správy jednotlivých kmem_caches.

Na záver, ak máte záujem poznať novú sadu 19 opráv, nájdete ju v zozname jadrova pošta.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.