De foreslår en ny minnekontroller for Linux-kjernen

Linux Kernel

Memory Manager er en delmengde av systemet drifts Den deler minne mellom operativsystemet og de forskjellige applikasjonene. Begrepet hukommelse refererer hovedsakelig til hovedminne (RAM), men styringen krever bidrag fra hjelpeminne og hurtigminne.

Memory manager er spesielt ansvarlig for å tildele minne effektivt til prosesser, noe som betyr at du må være i stand til å liste opp ledige plasser for tilgjengelig minne, tildele minnet som kreves for nye prosesser og gjenvinne minne fra prosesser som avsluttes. Prosessutsenderen i Linux-kjernen er SLAB-utsenderen.

PLATE er avhengig av et blokk- og hurtigbuffersystem som optimaliserer minneforespørsler. Denne typen minnehåndtering reduserer fragmentering forårsaket av allokering og flytting.

Blokktildeling innebærer å implementere en cache for en bestemt objekttype / størrelse som har flere forhåndsallokerte minneblokker kuttet i faste størrelser som passer for bestemte objekter.

SLAB administrerer bitene slik at når kjernen blir bedt om å tildele minne til et objekt, Du kan oppfylle forespørselen med en reservedel fra en eksisterende blokk. SLAB beholder det tildelte minnet for gjenbruk, når påfølgende tildelinger av lignende objekter, og reduserer dermed overheadkostnadene knyttet til objektinitialisering.

De har til hensikt å erstatte SLAB

Roman Gushchin, Et medlem av Linux kernel engineering team på Facebook, oppdaget han det han ser på som en "alvorlig feil" i den nåværende minnesjefen / kontrolleren. Og rnylig foreslått en ny minnekontroller blokkere som lover å forbedre minneutnyttelsen dramatisk blant flere "cgroups" (eller kontrollgrupper) fra minnet.

Gitt dette er det viktig å merke seg at cgroups refererer til en funksjon i Linux-kjernen som gjør det mulig å begrense, telle og isolere bruken av systemets ressurser (prosessor, minne, diskbruk, etc.) og begrepet "side of slab» kan bli assimilert til minnetildelingsprosessen av SLAB.

Ifølge Gushchin:

“Den virkelige grunnen til at den eksisterende designen fører til lav SLAB-bruk er enkel: Platesider brukes utelukkende av en enkelt minnepool.

Hvis det bare er noen få tildelinger av en viss størrelse laget av en cgroup, eller hvis det er noen aktive objekter igjen etter at cgroupen er fjernet, eller hvis cgroupen inneholder en enkelt gjenget applikasjon som tildeler praktisk talt ingen kjerner, men gjør det hver gang i en ny CPU: I alle disse tilfellene er den resulterende SLAB-bruken veldig lav.

Hvis kmem-beregning er deaktivert, kan kjernen bruke ledig plass på flisider til andre tildelinger «.

Gushchin hevder at dette ikke var et problem da kmem-føreren ble introdusert som en valgfri funksjon som måtte aktiveres for hver minnepool.

Nå imidlertid, er kmem-driveren aktivert som standard for cgroup v1 og v2. Og siden moderne systemer har en tendens til å skape et stort antall c-grupper, er det mindre effektivt å bruke SLAB.

Ifølge ham, ved å dele platesidene mellom forskjellige minnegrupper og ved å bruke et omarbeidet system der regnskap gjøres av objekt i stedet for per side, man ville ha en optimalisert minnekontroller i Linux-kjernen som gir et mye mer effektivt bruksnivå.

Gushchins foreslåtte oppdatering inneholder to semi-uavhengige elementer: en underside belastning API som kan brukes i fremtiden for regnskapsformål, og en mem_cgroup_ptr API.

Tester utført med den nye kontrolleren Gushchins minne har vist at det er mulig å få mellom 35% og 42% mer minne i Linux på front-end web, database cache og DNS server, og mange andre arbeidsbelastninger.

Gushchins forslag er for tiden under banneret av "forespørsel om kommentar." Hvis akseptert, kan det integreres i 2020 Linux-kjerneversjonen.

Fuente: https://lkml.org/


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.