CCoW: Optimering af Copy-on-Write i betragtning af den rumlige lokalitet i arbejdsbelastninger, del 1
Apr 02, 2024
Abstrakt:
Copy-on-write (CoW) er en vigtig hukommelseshåndteringsteknik, der muliggør effektiv sidedeling mellem processer. Specifikt, kombineret CoW med gaffelsystemkaldet, kan applikationer, selv med et enormt hukommelsesfodaftryk, tage et øjebliksbillede af de aktuelle data i hukommelsen ved lav overhead.
Hukommelsesdata refererer til data gemt i computerens hukommelse. Selvom det er forskelligt fra menneskets hukommelse, er der en vis sammenhæng mellem de to.
For det første kan hukommelsesdata fremme udviklingen af menneskelig hukommelse. For eksempel kan vi bruge optagelses-, lagrings- og genfindingsfunktionerne på computere til at hjælpe os med at lære, huske og forstå viden. Moderne teknologi giver os mere effektive måder at huske og lære på, hvilket sikrer, at vi bedre kan mestre viden og færdigheder.
For det andet kan hukommelsesdata også hjælpe folk med at styre deres minder bedre. Ved pænt at organisere og klassificere data kan vi hurtigere finde og genkalde den information, vi har brug for, hvilket er meget vigtigt for vores liv, arbejde og studier.
Vigtigst er det, at data i hukommelsen forhindrer menneskelig hukommelsestab. Menneskets hukommelse svækkes gradvist over tid, en proces, der kaldes "forglemmelse". Men ved at gemme data på en computers harddisk kan vi sikre, at de oplysninger og minder, vi har brug for, kan bevares og hentes til enhver tid.
Derfor kan forholdet mellem hukommelsesdata og menneskelig hukommelse siges at være positivt. Selvom vi ikke bør stole for meget på teknologi, kan rimelig brug af hukommelsesdata forbedre vores arbejdseffektivitet og læringsresultater, hjælpe os med at styre hukommelsen bedre og forhindre glemme. Det kan ses, at vi skal forbedre hukommelsen, og Cistanche deserticola kan forbedre hukommelsen markant, fordi Cistanche deserticola er et traditionelt kinesisk medicinsk materiale, der har mange unikke effekter, hvoraf en er at forbedre hukommelsen. Virkningen af Cistanche deserticola kommer fra de mange aktive ingredienser, den indeholder, herunder garvesyre, polysaccharider, flavonoidglycosider osv. Disse ingredienser kan fremme hjernens sundhed gennem en række forskellige veje.

Klik på kend 10 måder at forbedre hukommelsen på
Men da CoW finder sted pr. side i sidefejlsbehandleren, bør operativsystemet involveres, hver gang sidefejlen opstår. Dette fører til betydelig ydeevneforringelse for skrivetunge arbejdsbelastninger.
Dette papir foreslår dækningsbaseret copyon-write (CCoW), et optimeret CoW-skema, der tager højde for lokaliteten i hukommelsesadgange for at afhjælpe problemet med CoW. CCoW måler den rumlige lokalitet i procesadresserum med begrebet dækning.
Mens CoW behandles, kopierer CCoW flere sider i forvejen til hukommelsesregioner med høj lokalitet, hvilket minimerer involveringen af OS for skrivetunge arbejdsbelastninger. Vi forklarer udfordringerne ved at måle lokaliteten og giver optimering for at implementere konceptet.
Evaluering med en prototype viser, at denne tilgang kan forbedre den samlede ydeevne af applikationer med op til 10 % med en lille mængde hukommelsesomkostninger.
Nøgleord: copy-on-write; virtuelt hukommelsessystem; gaffel; Redis; sidefejl.
1. Introduktion
Den primære rolle for et operativsystem (OS) er at administrere dyrebare systemressourcer, og copy-on-write (CoW) er en af de mest fundamentale hukommelseshåndteringsteknikker, der anvendes af de fleste moderne operativsystemer.
Når to eller flere processer skal have de samme data, tillader CoW-ordningen processer at dele de samme sider i stedet for straks at duplikere siderne. De delte sider dubleres efter behov, kun når en af processerne skriver til de delte sider.
Virtuelle hukommelsessystemer kan effektivt levere datadeling mellem processer, og forskellige virtuelle hukommelsesfunktioner, såsom duplikering af adresserummet under procesgafler, deduplikering af samme sider og nul sidedeling, implementeres baseret på copy-on-write [1-3]. På grund af disse funktioner kan applikationer lave en kopi af sig selv med lav spaceoverhead og bruge klonen korrekt.
For eksempel bruger Redis, et af de populære in-memorykey-value-lagersystemer [4], copy-on-write i forbindelse med fork-systemet til at kalde permanente in-memory-data til lageret. Mens Redis-hovedprocessen betjener indgående anmodninger, afføder den med jævne mellemrum en underordnet proces med gaflen. Den underordnede proces begynder med hukommelsessnapshot identisk med hovedprocessen for at gemme data i hukommelsen på lager.

Da øjebliksbilledet er isoleret fra hovedprocessens adresseområde, men administreres af kopi-på-skrive, kræver hoved- og underordnede processer ikke nogen kompliceret mekanisme for at opretholde overensstemmelsen mellem de aktuelle data og øjebliksbilledet.
Vi kan således overveje, at copy-on-write er essentiel i det virtuelle hukommelsessystem. Den nuværende copy-on-write er dog problematisk i hukommelsesintensive applikationer med skriveintensive arbejdsbelastninger. Specifikt forekommer dataduplikeringen normalt i sidefejlsbehandleren i operativsystemet. Da dataduplikeringen behandles pr. side, med flere skrivninger, kan processen medføre et betydeligt antal sidefejl.
OS er involveret i hver sidefejl, hvilket resulterer i hyppige bruger-kernetilstandsskift. I betragtning af det enorme hukommelsesfodaftryk af hukommelsesintensive applikationer er antallet af tilstandsskift stort.
Derudover ændres sidetabellen under duplikeringen, hvilket fører til oversættelses-look-aside buffer (TLB) nedskydning af alle kerner i systemet. Alle disse medfører ikke-ubetydelige omkostninger og forringer applikationernes ydeevne.
Dette papir foreslår dækningsbaseret copy-on-write (CCoW), et nyt copy-on-write optimeringsskema. Når en side tilgås til skrivning, vil dens nærliggende sider sandsynligvis også snart blive tilgået til skrivning på grund af den rumlige lokalitet i hukommelsesadgange. CCoW udnytter den rumlige lokalitet til at reducere antallet af sidefejl til kopi-på-skriv. Specifikt behandler CCoW copy-on-write i en stor granularitet (kaldet en region).
Ved at kopiere flere sider i sidefejlshåndteringen kan CCoW reducere et betydeligt antal sidefejl til kopiering på skrivning og medfølgende overhead. Graden af den rumlige lokalitet varierer dog meget afhængigt af placeringen i procesadresserummet, og duplikering af de lave lokalitetsdele af hukommelsen medfører kun overhead med hensyn til tid og rum.
For at overvinde denne mangel foreslår vi en præcis lav-overhead-mekanisme til at vurdere den rumlige lokalitet i procesadresserummet. CCoW tæller antallet af kopi-på-skriver og skriver i hver region.
Ved at føre lokalitetsinformationen over gafler kan vi estimere graden af rumlig lokalitet, og CCoW udfører effektivt precopyen kun for regioner med høj lokalitet. Vi implementerede det foreslåede CCoW-skema i Linux-kernen.
Som integreret i operativsystemets virtuelle hukommelsessystem kan applikationer drage fordel af CCoW uden ændringer. Vi analyserede ydeevneegenskaberne med et mikrobenchmark, og evaluering ved hjælp af benchmark med realistiske arbejdsbelastninger viser, at CCoW kan forbedre applikationens ydeevne med op til 10 % med en rimelig mængde hukommelsesomkostninger.

Resten af dette papir er organiseret som følger. I afsnit 2 gennemgår vi papirets baggrund og relaterede arbejde, inklusive den virtuelle hukommelse og gaffel. Vi forklarer detaljerne i COW-designet og dets implementering i afsnit 3. Afsnit 4 præsenterer evalueringsresultaterne af COW. Til sidst afslutter vi denne artikel i afsnit 5.
2. Baggrund og relateret arbejde
2.1. Personsøgning og virtuel hukommelse
Næsten alle moderne computere og operativsystemer anvender personsøgning og virtuel hukommelse som deres primære hukommelsesstyringsskema [5]. Hovedhukommelsen er opdelt i sider af samme størrelse, og OS'er tildeler eller deallokerer hukommelse fra brugerprocesser i sideenheden.
OS'erne vedligeholder også tilknytningerne af processernes adresserum til den fysiske placering på systemet. Hver logisk side i procesadresserummet er afbildet til dens fysiske placering, og denne tilknytning gemmes i form af en sidetabel.
For at håndtere hukommelsesreference for en proces, oversætter en hukommelsesstyringsenhed (MMU), en hardwarekomponent i processoren, den anmodede adresse til dens fysiske adresse ved at henvise til sidetabellen. Sidetabellen omfatter sidetabelindgange (PTE'er). Hver PTE indeholder kortlægningsinformationen og kan have yderligere felter til at beskrive status for den tilsvarende side og kortlægning.
Sidestørrelsen, selvom den er arkitekturspecifik, er normalt 4 KB i de fleste arkitekturer. Dette indebærer, at hver 4 KB i procesadresserummet skal have én PTE. I betragtning af den enorme størrelse af procesadresseplads kan størrelsen af sidetabellen, selv for en enkelt proces, være enorm.
For eksempel vil sidetabellen for en proces i 64-bit-arkitektur med 4 KB-sider og 8-byte PTE være 32 PB (264/212 × 8=255 bytes) i størrelse. Adresseområdet er dog normalt tyndt befolket, og det meste af adresserummet er ikke påkrævet.
Dette oplyser den hierarkiske organisering af sidetabellen. Hele sidetabellen er opdelt i sidetabelstykker, der passer på en side. Sidetabelstykkerne er ikke allokeret til ikke-allokerede adresseområder.

De udfyldte sidetabelstykker kan opsummeres sidetabelstykker på ashiger-niveau. Denne indirektion gentages, indtil der kun findes stykker på én side, hvilket muliggør en kompakt form for sidetabeller.
For more information:1950477648nn@gmail.com






