De foreslår en ny hukommelsescontroller til Linux-kernen

Linux Kernel

Hukommelseshåndteringen er en delmængde af systemet drift som deler hukommelse mellem styresystemet og de forskellige applikationer. Udtrykket hukommelse refererer hovedsageligt til hovedhukommelsen (RAM), men dens styring kræver bidraget fra hjælpehukommelse og cachehukommelse.

memory manager er især ansvarlig for effektivt at allokere hukommelse til processer, hvilket indebærer, at det skal være i stand til at opregne ledige placeringer af tilgængelig hukommelse, allokere hukommelse, der er nødvendig for nye processer, og genvinde hukommelse fra afsluttende processer. Dispatcheren i Linux-kernen er SLAB-dispatcheren.

PLADE er baseret på et blok- og cachesystem, der optimerer hukommelsesanmodninger. Denne type hukommelsesstyring reducerer fragmentering forårsaget af allokerings- og flytningsoperationer.

Blokallokering involverer implementering af en cache for en bestemt type/størrelse af objekt, der har forskellige præ-allokerede hukommelsesblokke skåret i faste størrelsesstykker, der er egnede til specifikke objekter.

SLAB administrerer brikkerne, så når kernen bliver bedt om at allokere hukommelse til et objekt, kan opfylde denne anmodning med en gratis del af en eksisterende blok. SLAB beholder allokeret hukommelse til genbrug ved efterfølgende allokeringer af lignende objekter, og reducerer dermed overhead forbundet med objektinitialisering.

De agter at erstatte SLAB

Roman Gushchin, medlem af Linux-kerneingeniørteamet hos Facebook, opdagede, hvad han ser som en "alvorlig fejl" i den nuværende driver/hukommelsesmanager. og rfor nylig foreslået en ny hukommelsescontroller blok som lover drastisk at forbedre hukommelsesudnyttelsen mellem flere cgroups (eller kontrolgrupper) fra hukommelsen.

I betragtning af dette er det vigtigt at bemærke, at cgroups refererer til en Linux-kernefunktion, der tillader begrænsning, optælling og isolering af brugen af ​​systemressourcer (processor, hukommelse, diskbrug osv.), og udtrykket "side "slab" kunne være assimileret til hukommelsesallokeringsbehandling af SLAB.

Ifølge Gushchin:

"Den virkelige grund til, at det eksisterende design fører til lavt SLAB-brug, er enkel: Slab-sider bruges udelukkende af en enkelt hukommelsespool.

Hvis der kun er nogle få allokeringer af en vis størrelse lavet af en cgroup, eller hvis der er nogle aktive objekter tilbage efter cgroup er blevet fjernet, eller hvis cgroup indeholder en enkelt-trådet applikation, der stort set ikke tildeler nogen kerne, men gør det hver gang en ny CPU: i alle disse tilfælde er det resulterende SLAB-forbrug meget lavt.

Hvis kmem-beregning er deaktiveret, kan kernen bruge den ledige plads på flisesiderne til andre tildelinger."

Gushchin hævder, at dette ikke var et problem, da kmem-driveren blev introduceret som en valgfri funktion, der skulle aktiveres for hver hukommelsespulje.

Nu dog, er kmem-driveren aktiveret som standard for cgroup v1 og v2. Og da moderne systemer har tendens til at skabe et stort antal c-grupper, er det mindre effektivt at bruge SLAB.

Ifølge ham ved at dele pladesiderne mellem forskellige hukommelsespuljer og ved at bruge et omarbejdet system, hvor regnskabet foretages pr. objekt i stedet for pr. side, man ville have en optimeret hukommelsescontroller i linux-kernen som giver et meget mere effektivt brugsniveau.

Gushchins foreslåede patch indeholder to semi-uafhængige elementer: en undersideindlæsnings-API, der kan bruges i fremtiden til regnskabsmæssige formål, og en mem_cgroup_ptr API.

Test udført med den nye driver fra Gushchins hukommelse har vist, at det er muligt at få 35% til 42% mere hukommelse på Linux i front-end-nettet, databasecachen og DNS-serveren og i mange andre arbejdsbelastninger.

Gushchins forslag er i øjeblikket under banneret "anmodning om kommentarer." Hvis det accepteres, kan det integreres i 2020 Linux-kerneudgivelsen.

kilde: https://lkml.org/


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.