CCoW: Optimalizácia funkcie Copy-on-Write s ohľadom na priestorové umiestnenie v pracovných zaťaženiach, časť 1

Apr 02, 2024

Abstrakt:

Copy-on-write (CoW) je základná technika správy pamäte, ktorá umožňuje efektívne zdieľanie stránok medzi procesmi. Konkrétne, v kombinácii CoW s fork systemcall môžu aplikácie, dokonca aj s obrovskou pamäťou, urobiť snímku aktuálnych údajov v pamäti pri nízkej réžii.

Pamäťové údaje sa týkajú údajov uložených v pamäti počítača. Hoci sa líši od ľudskej pamäte, existuje medzi nimi určitá súvislosť.

Po prvé, pamäťové údaje môžu podporovať rozvoj ľudskej pamäte. Môžeme napríklad použiť funkcie počítačov na zaznamenávanie, ukladanie a vyhľadávanie, ktoré nám pomáhajú učiť sa, pamätať si a porozumieť vedomostiam. Moderné technológie nám poskytujú efektívnejšie spôsoby zapamätania si a učenia sa, čo zaisťuje, že dokážeme lepšie ovládať vedomosti a zručnosti.

Po druhé, údaje o pamäti môžu ľuďom pomôcť lepšie spravovať svoje spomienky. Úhľadným usporiadaním a triedením údajov dokážeme rýchlejšie nájsť a vybaviť si potrebné informácie, ktoré sú veľmi dôležité pre náš život, prácu a štúdium.

Najdôležitejšie je, že údaje v pamäti zabraňujú strate ľudskej pamäte. Ľudská pamäť časom postupne slabne, tento proces sa nazýva „zabúdanie“. Uložením údajov na pevný disk počítača však môžeme zabezpečiť, že informácie a spomienky, ktoré potrebujeme, bude možné uchovať a kedykoľvek získať.

Vzťah medzi pamäťovými dátami a ľudskou pamäťou možno teda považovať za pozitívny. Aj keď by sme sa nemali príliš spoliehať na technológie, rozumné využívanie pamäťových dát môže zlepšiť našu efektivitu práce a výsledky učenia, pomôcť nám lepšie spravovať pamäť a zabrániť zabúdaniu. Je vidieť, že potrebujeme zlepšiť pamäť a Cistanche deserticola môže výrazne zlepšiť pamäť, pretože Cistanche deserticola je tradičný čínsky liečivý materiál, ktorý má mnoho jedinečných účinkov, jedným z nich je zlepšenie pamäte. Účinnosť Cistanche deserticola pochádza z viacerých aktívnych zložiek, ktoré obsahuje, vrátane kyseliny trieslovej, polysacharidov, flavonoidových glykozidov atď. Tieto zložky môžu podporovať zdravie mozgu rôznymi spôsobmi.

improve memory

Kliknite na spoznajte 10 spôsobov, ako zlepšiť pamäť

Keďže však CoW prebieha na stránke v obslužnom nástroji chyby stránky, pri každom výskyte chyby stránky by sa mal zapojiť operačný systém. To vedie k výraznému zníženiu výkonu pre pracovné zaťaženie náročné na zápis.

Tento článok navrhuje copyon-write (CCoW) založenú na pokrytí, optimalizovanú schému CoW s ohľadom na lokalitu v prístupoch do pamäte na zmiernenie problému CoW. CCoW meria priestorovú lokalitu v procesných adresných priestoroch s konceptom pokrytia.

Pri spracovaní CoW CCoW vopred skopíruje viacero stránok pre oblasti pamäte s vysokou lokalitou, čím sa minimalizuje zapojenie operačného systému do úloh náročných na zápis. Vysvetľujeme výzvy pre meranie lokality a poskytujeme optimalizáciu na implementáciu konceptu.

Hodnotenie s prototypom ukazuje, že tento prístup môže zlepšiť celkový výkon aplikácií až o 10 % s malým množstvom pamäte.

Kľúčové slová: copy-on-write; systém virtuálnej pamäte; vidlička; Redis; chyba stránky.

1. Úvod

Primárnou úlohou operačného systému (OS) je spravovať vzácne systémové prostriedky a copy-on-write (CoW) je jednou z najzákladnejších techník správy pamäte, ktorú používa väčšina súčasných operačných systémov.

Keď dva alebo viac procesov potrebuje mať rovnaké údaje, schéma CoW umožňuje procesom zdieľať rovnaké stránky, namiesto toho, aby ich okamžite duplikovali. Zdieľané stránky sú duplikované na dopyt, iba ak jeden z procesov zapisuje na zdieľané stránky.

Systémy virtuálnej pamäte môžu efektívne poskytovať zdieľanie údajov medzi procesmi a rôzne funkcie virtuálnej pamäte, ako je duplikovanie adresného priestoru počas rozdeľovania procesov, deduplikovanie rovnakých stránok a zdieľanie nulových stránok, sú implementované na základe kopírovania pri zápise [1–3]. Vďaka týmto funkciám môžu aplikácie vytvoriť svoju kópiu s malým priestorovým nadbytkom a použiť klon primerane.

Napríklad Redis, jeden z populárnych systémov uloženia hodnoty kľúča v pamäti [4], používa kopírovanie pri zápise v spojení s vidlicovým systémom na volanie trvalých údajov v pamäti do úložiska. Pri obsluhovaní prichádzajúcich požiadaviek hlavný proces Redis pravidelne vytvára podriadený proces s vidlicou. Podradený proces začína snímkou ​​pamäte identickou s hlavným procesom na uloženie údajov v pamäti do úložného priestoru.

short term memory how to improve

Keďže snímka je izolovaná od adresného priestoru hlavného procesu, ale je riadená kopírovaním pri zápise, hlavné a podradené procesy nevyžadujú žiadny komplikovaný mechanizmus na udržanie konzistencie medzi aktuálnymi údajmi a snímkou.

Môžeme teda uvažovať, že kopírovanie pri zápise je nevyhnutné v systéme virtuálnej pamäte. Súčasné kopírovanie pri zápise je však problematické v aplikáciách náročných na pamäť s pracovným zaťažením náročným na zápis. Konkrétne k duplicite údajov zvyčajne dochádza v obslužnom programe pagefault v OS. Keďže duplikácia údajov sa spracováva na stránku s niekoľkými zápismi, proces môže spôsobiť značný počet chýb stránky.

OS sa podieľa na každej chybe stránky, čo vedie k častému prepínaniu režimu jadra používateľa. Vzhľadom na veľkú pamäťovú stopu aplikácií náročných na pamäť je počet prepínačov režimov veľký.

Okrem toho sa počas duplikácie upravuje tabuľka stránok, čo vedie k zostreleniu všetkých jadier v systéme TLB (translation look-aside buffer). Všetky tieto spôsobujú nezanedbateľné režijné náklady a zhoršujú výkon aplikácií.

Tento článok navrhuje kopírovanie pri zápise na základe pokrytia (CCoW), novú schému optimalizácie kopírovania pri zápise. Keď sa na stránku pristupuje na zápis, je pravdepodobné, že sa čoskoro sprístupní aj jej blízke stránky na zapisovanie kvôli priestorovej lokalite v prístupoch do pamäte. CCoW využíva priestorovú lokalitu na zníženie počtu chýb stránky pri kopírovaní pri zápise. Konkrétne, CCoW spracováva kopírovanie pri zápise vo veľkej granularite (nazývanej región).

Kopírovaním viacerých stránok v obslužnom programe chýb stránky môže CCoW znížiť značný počet chýb stránky pri kopírovaní pri zápise a sprievodnej réžii. Stupeň priestorovej lokality sa však značne líši v závislosti od umiestnenia v adresnom priestore procesu a duplikácia častí pamäte s nízkou lokalitou spôsobuje iba réžiu z hľadiska času a priestoru.

Na prekonanie tohto nedostatku navrhujeme presný mechanizmus s nízkou réžiou na posúdenie priestorovej lokality v adresnom priestore procesu. CCoW počíta počet kópií pri zápise a zápisov v každom regióne.

Prenesením informácií o lokalite cez vidlice môžeme odhadnúť stupeň priestorovej lokality a CCoW efektívne vykoná precopyonly len pre regióny s vysokou lokalitou. Navrhnutú schému CCoW sme implementovali do jadra Linuxu.

Keďže sú aplikácie integrované do systému virtuálnej pamäte operačného systému, môžu využívať výhody CCoW bez úprav. Výkonnostné charakteristiky sme analyzovali pomocou mikrobenchmarku a vyhodnotenie pomocou benchmarku s realistickým pracovným zaťažením ukazuje, že CCoW môže zlepšiť výkon aplikácie až o 10 % s primeraným množstvom pamäte.

ways to improve memory

Zvyšok tohto dokumentu je usporiadaný nasledovne. V časti 2 uvádzame prehľad pozadia a súvisiacej práce v článku, vrátane virtuálnej pamäte a vidlice. Podrobnosti o návrhu CCoW a jeho implementácii vysvetľujeme v časti 3. Časť 4 uvádza výsledky hodnotenia CCoW. Nakoniec tento dokument uzavrieme v časti 5.

2. Pozadie a súvisiace práce

2.1. Stránkovanie a virtuálna pamäť

Takmer všetky moderné počítače a operačné systémy používajú stránkovanie a virtuálnu pamäť ako svoju primárnu schému správy pamäte [5]. Hlavná pamäť je rozdelená na stránky rovnakej veľkosti a OS prideľujú alebo uvoľňujú pamäť z používateľských procesov v jednotke stránky.

OS tiež udržiavajú mapovania adresných priestorov procesov na fyzické umiestnenie v systéme. Každá logická stránka v priestore adries procesu je mapovaná na svoje fyzické umiestnenie a toto mapovanie je uložené vo forme tabuľky stránok.

Na spracovanie referencie pamäte pre proces jednotka správy pamäte (MMU), hardvérový komponent v procesore, preloží požadovanú adresu na jej fyzickú adresu odkazom na tabuľku stránkovania. Tabuľka stránok obsahuje záznamy tabuľky stránok (PTE). Každý PTE obsahuje informácie o mapovaní a môže mať ďalšie polia na popis stavu zodpovedajúcej stránky a mapovania.

Veľkosť stránky, hoci je špecifická pre architektúru, je vo väčšine architektúr zvyčajne 4 KB. To znamená, že každé 4 KB v adresnom priestore procesu by malo mať jeden PTE. Vzhľadom na obrovskú veľkosť adresného priestoru procesu môže byť veľkosť tabuľky stránok, dokonca aj pre jeden proces, obrovská.

Napríklad tabuľka stránok pre proces v 64-bitovej architektúre so stránkami 4 KB a 8-bajtovým PTE by mala veľkosť 32 PB (264/212 × 8=255 bajtov). Priestor adries je však zvyčajne riedko osídlený a väčšina priestoru adries sa nevyžaduje.

To osvetľuje hierarchické usporiadanie tabuľky stránok. Celá tabuľka stránok je rozdelená na časti tabuľky stránok, ktoré sa zmestia na stránku. Časti tabuľky stránok nie sú pridelené neprideleným oblastiam adries.

memory enhancement

Naplnené časti tabuľky stránok možno zhrnúť časti tabuľky stránok na vyššej úrovni. Toto smerovanie sa opakuje, až kým na jednej stránke neexistujú iba časti, čím sa umožní kompaktná forma tabuliek stránok.


For more information:1950477648nn@gmail.com

Tiež sa vám môže páčiť