Navrhují nový řadič paměti pro linuxové jádro

Linux Kernel

Správce paměti je podmnožinou systému operativo Sdílí paměť mezi operačním systémem a různými aplikacemi. Pojem paměť označuje hlavně hlavní paměť (RAM), ale její správa vyžaduje příspěvek pomocné paměti a mezipaměti.

Správce paměti je zvláště zodpovědný za efektivní alokaci paměti procesům, což znamená, že musíte být schopni vypsat volná umístění dostupné paměti, přidělit paměť potřebnou pro nové procesy a získat zpět paměť z ukončených procesů. Dispečer procesu v linuxovém jádře je dispečer SLAB.

DESKA spoléhá na systém bloků a mezipaměti, který optimalizuje požadavky na paměť. Tento typ správy paměti snižuje fragmentaci způsobenou operacemi přidělení a přemístění.

Přidělení bloku zahrnuje implementaci mezipaměti pro určitý typ / velikost objektu, který má několik předem přidělených bloků paměti rozřezaných na kusy pevné velikosti, které jsou vhodné pro konkrétní objekty.

SLAB spravuje jednotlivé části tak, že když je jádro požádáno o přidělení paměti objektu, Tento požadavek můžete uspokojit náhradním dílem z existujícího bloku. SLAB zachovává přidělenou paměť pro opětovné použití při následném přidělení podobných objektů, a tím snižuje režijní náklady související s inicializací objektu.

Mají v úmyslu nahradit SLAB

Roman Gushchin, Člen týmu Linux kernel engineering na Facebooku zjistil, co považuje za „vážnou chybu“ v aktuálním správci / řadiči paměti. A rnedávno navrhl nový řadič paměti blok což slibuje výrazné zlepšení využití paměti mezi několika „skupinami“ (nebo kontrolní skupiny) z paměti.

Vzhledem k tomu je důležité si uvědomit, že cgroups odkazuje na vlastnost linuxového jádra, která umožňuje omezit, spočítat a izolovat využití systémových prostředků (procesor, paměť, využití disku atd.) A termín „stránka desky» by mohl být aslabován do procesu přidělování paměti SLAB.

Podle Gushchina:

„Skutečný důvod, proč stávající design vede k nízkému využití SLAB, je jednoduchý: Stránky desek jsou používány výhradně jedním fondem paměti.

Pokud cgroup provede pouze několik alokací určité velikosti nebo pokud po odebrání cgroup zbývají nějaké aktivní objekty, nebo pokud cgroup obsahuje jednu aplikaci se závitem, která alokuje prakticky žádná jádra, ale dělá to pokaždé v nový CPU: Ve všech těchto případech je výsledné využití SLAB velmi nízké.

Pokud je výpočet kmem deaktivován, může jádro použít volné místo na stránkách dlaždic pro další přidělení «.

Gushchin tvrdí, že to nebyl problém, když byl ovladač kmem představen jako volitelná funkce, která musela být povolena pro každý fond paměti.

Nyní však, ovladač kmem je ve výchozím nastavení povolen pro cgroup v1 a v2. A protože moderní systémy mají tendenci vytvářet velké množství c skupin, je používání SLAB méně efektivní.

Podle něj sdílením slabých stránek mezi různými paměťovými skupinami a pomocí přepracovaného systému, kde se účetnictví provádí podle objektu, nikoli podle stránky, jeden by měl v linuxovém jádře optimalizovaný řadič paměti což nabízí mnohem efektivnější úroveň použití.

Gushchinova navrhovaná oprava obsahuje dva polonezávislé prvky: rozhraní API pro načítání podstránek, které lze v budoucnu použít pro účetní účely, a rozhraní mem_cgroup_ptr API.

Testy provedené s novým řadičem vzpomínka na Gushchina ukázaly, že v Linuxu je možné získat o 35% až 42% více paměti na front-end webu, mezipaměti databáze a serveru DNS a mnoha dalších úlohách.

Gushchinův návrh je v současné době pod hlavičkou „žádosti o komentář“. Pokud bude přijato, může být integrováno do vydání linuxového jádra 2020.

zdroj: https://lkml.org/


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.