De föreslår en ny minneskontroll för Linux-kärnan

Linux Kernel

Minneshanteraren är en delmängd av systemet rörelse Det delar minne mellan operativsystemet och de olika applikationerna. Termen minne avser huvudsakligen huvudminne (RAM), men dess hantering kräver bidrag från extra minne och cacheminne.

Minneshanteraren är särskilt ansvarig för att effektivt fördela minne till processer, vilket innebär att du måste kunna räkna lediga platser för tillgängligt minne, allokera det minne som krävs för nya processer och återta minnet från processer som avslutas. Processutskickaren inom Linux-kärnan är SLAB-utskickaren.

PLATTA förlitar sig på ett block- och cache-system som optimerar minnesförfrågningar. Denna typ av minneshantering minskar fragmentering orsakad av allokerings- och omplaceringsoperationer.

Blockallokering innebär implementering av en cache för en viss objekttyp / storlek som har flera fördelade minnesblock som skärs i bitar med fast storlek som är lämpliga för specifika objekt.

SLAB hanterar bitarna så att när kärnan uppmanas att allokera minne till ett objekt, Du kan tillgodose den begäran med en reservdel från ett befintligt block. SLAB behåller det tilldelade minnet för återanvändning vid efterföljande allokeringar av liknande objekt och minskar därmed omkostnaderna relaterade till objektinitiering.

De tänker ersätta SLAB

Roman Gushchin, En medlem av Linux kernel engineering team på Facebook, han upptäckte vad han ser som ett "allvarligt fel" i den nuvarande minneshanteraren / styrenheten. Och rnyligen föreslog en ny minneskontroll blockera vilket lovar att dramatiskt förbättra minnesanvändningen bland flera "cgroups" (eller kontrollgrupper) från minnet.

Med tanke på detta är det viktigt att notera att cgroups hänvisar till en funktion i Linux-kärnan som gör det möjligt att begränsa, räkna och isolera användningen av systemets resurser (processor, minne, diskanvändning, etc.) och termen "sida av plattan» kan likställas med minnesallokeringsprocessen av SLAB.

Enligt Gushchin:

”Den verkliga anledningen till att den befintliga designen leder till låg SLAB-användning är enkel: platssidor används uteslutande av en enda minnespool.

Om det bara finns några få tilldelningar av en viss storlek som görs av en cgroup eller om det finns några aktiva objekt kvar efter att cgroup har tagits bort eller om cgroup innehåller en enda gängad applikation som tilldelar praktiskt taget inga kärnor, men gör det varje gång i en ny CPU: I alla dessa fall är SLAB-användningen mycket låg.

Om kmem-beräkning är inaktiverad kan kärnan använda ledigt utrymme på sidor för andra tilldelningar «.

Gushchin hävdar att detta inte var ett problem när kmem-föraren introducerades som en valfri funktion som måste aktiveras för varje minnespool.

Men nuär kmem-drivrutinen aktiverad som standard för cgroup v1 och v2. Och eftersom moderna system tenderar att skapa ett stort antal c-grupper är det mindre effektivt att använda SLAB.

Enligt honom genom att dela sidorna mellan olika minnesgrupper och genom att använda ett omarbetat system där redovisning sker genom objekt snarare än per sida, man skulle ha en optimerad minneskontroller i Linux-kärnan vilket ger en mycket effektivare användningsnivå.

Gushchins föreslagna korrigeringsfil innehåller två semi-oberoende element: ett undersida-belastnings-API som kan användas i framtiden för redovisningsändamål och ett mem_cgroup_ptr API.

Tester utförda med den nya styrenheten Gushchins minne har visat att det är möjligt att få mellan 35% och 42% mer minne i Linux på front-end webben, databascache och DNS-server och många andra arbetsbelastningar.

Gushchins förslag är för närvarande under fanan "begäran om kommentar". Om det accepteras kan det integreras i Linux-kärnversionen 2020.

Fuente: https://lkml.org/


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.