Predlagajo nov pomnilniški krmilnik za jedro Linuxa

Linux Kernel

Upravitelj pomnilnika je podmnožica sistema operativni Pomnilnik si deli med operacijskim sistemom in različnimi aplikacijami. Izraz pomnilnik se nanaša predvsem na glavni pomnilnik (RAM), vendar njegovo upravljanje zahteva prispevek pomožnega pomnilnika in predpomnilnika.

Upravitelj pomnilnika je še posebej odgovoren za učinkovito dodeljevanje pomnilnika procesom, kar pomeni, da morate biti sposobni našteti prosta mesta razpoložljivega pomnilnika, dodeliti pomnilnik, potreben za nove procese, in pridobiti pomnilnik iz procesov, ki se končajo. Dispečer procesov v jedru Linuxa je dispečer SLAB.

PLOŠČA se zanaša na sistem blokov in predpomnilnika, ki optimizira zahteve po pomnilniku. Ta vrsta upravljanja pomnilnika zmanjšuje razdrobljenost, ki jo povzročajo operacije dodeljevanja in premestitve.

Dodelitev blokov vključuje izvajanje predpomnilnika za določeno vrsto / velikost predmeta, ki ima več vnaprej dodeljenih pomnilniških blokov, razrezanih na koščke fiksne velikosti, ki so primerni za določene predmete.

SLAB upravlja koščke tako, da ko jedro zahteva, da predmetu dodeli pomnilnik, To zahtevo lahko zadovoljite z rezervnim delom iz obstoječega bloka. SLAB zadrži dodeljeni pomnilnik za ponovno uporabo pri nadaljnjih dodelitvah podobnih predmetov in tako zmanjša splošne stroške, povezane z inicializacijo predmetov.

Nameravali bodo nadomestiti SLAB

Roman Guščin, Član inženirske ekipe za jedro Linuxa pri Facebooku je odkril, kaj v trenutnem upravitelju / krmilniku pomnilnika vidi kot "resno napako". In rnedavno predlagal nov krmilnik pomnilnika blok kar obljublja, da bo drastično izboljšalo uporabo pomnilnika med več "skupinami" (ali nadzorne skupine) iz pomnilnika.

Glede na to je pomembno omeniti, da se cgroups nanaša na značilnost jedra Linuxa, ki omogoča omejevanje, štetje in izoliranje uporabe sistemskih virov (procesor, pomnilnik, uporaba diska itd.) In izraz "stran plošče" lahko SLAB asimilira v postopek dodeljevanja pomnilnika.

Po besedah ​​Gushchina:

»Pravi razlog, da obstoječa zasnova vodi do nizke uporabe SLAB-a, je preprost: strani plošče uporablja izključno en sam pomnilniški bazen.

Če ima skupina le nekaj dodelitev določene velikosti ali če po odstranitvi skupine ostane nekaj aktivnih predmetov ali če skupina vsebuje eno navojno aplikacijo, ki skoraj ne dodeli jeder, vendar to stori vsakič, ko nov CPU: V vseh teh primerih je posledična uporaba SLAB zelo majhna.

Če je izračun kmem onemogočen, lahko jedro uporabi prosti prostor na straneh ploščic za druge dodelitve «.

Gushchin trdi, da to ni predstavljalo težav, ko je bil gonilnik kmem uveden kot neobvezna funkcija, ki jo je bilo treba omogočiti za vsako pomnilniško področje.

Zdaj pa, je gonilnik kmem privzeto omogočen za cgroup v1 in v2. Ker sodobni sistemi ponavadi ustvarjajo veliko število skupin c, je uporaba SLAB manj učinkovita.

Po njegovem mnenju z delitvijo strani plošče med različne skupine spomina in z uporabo predelanega sistema, kjer se računovodstvo izvaja po objektih in ne po straneh, v jedru linux bi bil optimiziran krmilnik pomnilnika ki ponuja veliko bolj učinkovito rabo.

Predlagani popravek Gushchina vsebuje dva napol neodvisna elementa: API za nalaganje podstrani, ki se bo v prihodnosti lahko uporabljal za računovodske namene, in API mem_cgroup_ptr.

Preskusi, opravljeni z novim krmilnikom Gushchinov spomin so pokazali, da je v Linuxu mogoče dobiti med 35% in 42% več pomnilnika v prednjem delu spleta, predpomnilnika baz podatkov in strežnika DNS ter številnih drugih delovnih obremenitvah.

Gushchinov predlog je trenutno pod zastavo "prošnje za komentar". Če bo sprejeta, jo bo mogoče integrirati v različico jedra Linux 2020.

vir: https://lkml.org/


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.