CCoW: Íráskor másolás optimalizálása, figyelembe véve a munkaterhelések térbeli elhelyezkedését 1. rész

Apr 02, 2024

Absztrakt:

A Copy-on-Write (CoW) egy alapvető memóriakezelési technika, amely hatékony oldalmegosztást tesz lehetővé a folyamatok között. Konkrétan, a CoW és a fork systemcall kombinálásával az alkalmazások még a hatalmas memóriaterülettel is képesek pillanatfelvételt készíteni az aktuális memóriában lévő adatokról alacsony terhelés mellett.

A memóriaadatok a számítógép memóriájában tárolt adatokra vonatkoznak. Bár eltér az emberi emlékezettől, van egy bizonyos kapcsolat a kettő között.

Először is, a memóriaadatok elősegíthetik az emberi memória fejlődését. Használhatjuk például a számítógépek rögzítési, tárolási és visszakeresési funkcióit az ismeretek tanulásában, emlékezésében és megértésében. A modern technológia hatékonyabb emlékezési és tanulási módokat biztosít számunkra, ami biztosítja, hogy jobban elsajátíthassuk tudásunkat és készségeinket.

Másodszor, a memóriaadatok segíthetnek az embereknek az emlékeik jobb kezelésében. Az adatok gondos rendszerezésével és osztályozásával gyorsabban megtalálhatjuk és felidézhetjük azokat az információkat, amelyekre szükségünk van, ami nagyon fontos életünk, munkánk, tanulásunk szempontjából.

A legfontosabb, hogy a memóriában lévő adatok megakadályozzák az emberi memória elvesztését. Az emberi memória idővel fokozatosan gyengül, ezt a folyamatot "felejtésnek" nevezik. Az adatok számítógép merevlemezén való tárolásával azonban biztosíthatjuk, hogy a szükséges információk, memóriák bármikor megőrizhetők és előhívhatók legyenek.

Ezért a memóriaadatok és az emberi emlékezet közötti kapcsolat pozitívnak mondható. Bár nem szabad túlságosan a technológiára hagyatkoznunk, a memóriaadatok ésszerű felhasználása javíthatja munkavégzésünk hatékonyságát és tanulási eredményeinket, segíthet a memória jobb kezelésében, és megelőzheti a felejtést. Látható, hogy javítanunk kell a memórián, a Cistanche deserticola pedig jelentősen javíthatja a memóriát, mert a Cistanche deserticola egy hagyományos kínai gyógyászati ​​anyag, amelynek számos egyedi hatása van, amelyek közül az egyik a memória javítása. A Cistanche deserticola hatékonysága a benne található számos hatóanyagnak köszönhető, beleértve a csersavat, poliszacharidokat, flavonoid glikozidokat stb. Ezek az összetevők számos úton elősegíthetik az agy egészségét.

improve memory

Kattintson a Tudjon meg 10 módszerre a memória javítására

Mivel azonban a CoW oldalanként megy végbe az oldalhibakezelőben, minden alkalommal, amikor az oldalhiba előfordul, az operációs rendszernek is részt kell vennie. Ez az írásintenzív munkaterhelések teljesítményének jelentős csökkenéséhez vezet.

Ez a cikk lefedettség alapú másolás-írás (CCoW) javaslatot tesz, egy optimalizált CoW-sémát, amely figyelembe veszi a memória-elérések helyét, hogy enyhítse a CoW problémáját. A CCoW a lefedettség fogalmával méri a térbeli lokalitást a folyamatcímterekben.

A CoW feldolgozása közben a CCoW több oldalt előre másol a nagy lokalitású memóriarégiókhoz, így minimálisra csökkenti az operációs rendszer bevonását az intenzív írási terhelések esetén. Elmagyarázzuk a lokalitás mérésének kihívásait, és biztosítjuk az optimalizálást a koncepció megvalósításához.

A prototípussal végzett értékelés azt mutatja, hogy ez a megközelítés kis mennyiségű memória mellett akár 10%-kal is javíthatja az alkalmazások általános teljesítményét.

Kulcsszavak: másolás-írás; virtuális memória rendszer; Villa; Redis; oldal hiba.

1. Bemutatkozás

Az operációs rendszer (OS) elsődleges szerepe az értékes rendszererőforrások kezelése, a másolás írásra (CoW) pedig az egyik legalapvetőbb memóriakezelési technika, amelyet a legtöbb kortárs operációs rendszer alkalmaz.

Ha két vagy több folyamatnak ugyanazokkal az adatokkal kell rendelkeznie, a CoW-séma lehetővé teszi, hogy a folyamatok ugyanazokat az oldalakat megosszák, ahelyett, hogy azonnal megkettőznék az oldalakat. A megosztott oldalak csak akkor duplikálódnak igény szerint, ha az egyik folyamat ír a megosztott oldalakra.

A virtuális memóriarendszerek hatékonyan képesek adatmegosztást biztosítani a folyamatok között, és a különböző virtuális memória funkciók, mint például a címtér megkettőzése a folyamatelágazások során, az azonos oldalak duplikálásának megszüntetése és a nulla oldalmegosztás, az írásra másolás alapján valósulnak meg [1–3]. Ezeknek a tulajdonságoknak köszönhetően az alkalmazások kis helyfelhasználással másolatot készíthetnek magukról, és megfelelően használhatják a klónt.

Például a Redis, az egyik népszerű in-memorykey-value tárolórendszer [4], a fork rendszerrel együtt írásra másolást használ, hogy a memóriában megmaradó adatokat a tárolóba hívja. A bejövő kérések kiszolgálása közben a Redis főfolyamat rendszeresen létrehoz egy gyermekfolyamatot a villával. Az alárendelt folyamat a memóriában lévő adatok tárolására szolgáló fő folyamattal azonos memória-pillanatfelvétellel kezdődik.

short term memory how to improve

Mivel a pillanatkép el van szigetelve a főfolyamat címterétől, de írás közbeni másolás kezeli, a fő- és a gyermekfolyamatok nem igényelnek bonyolult mechanizmust az aktuális adatok és a pillanatkép közötti konzisztencia fenntartásához.

Így tehát úgy tekinthetjük, hogy a másolás írásra elengedhetetlen a virtuális memóriarendszerben. A jelenlegi másolás írásra azonban problémás a memóriaigényes alkalmazásokban, amelyekben nagy a munkaterhelés. Pontosabban, az adatkettőzés általában az operációs rendszer oldalhiba-kezelőjében történik. Mivel az adatmásolatok feldolgozása oldalanként, több írással történik, a folyamat jelentős számú oldalhibával járhat.

Az operációs rendszer minden oldalhibában részt vesz, ami gyakori felhasználói kernel módváltásokat eredményez. Figyelembe véve a memóriaigényes alkalmazások hatalmas memóriaterületét, az üzemmódkapcsolók száma nagy.

Ezenkívül az oldaltáblázat módosul a duplikáció során, ami a rendszer összes magjának TLB (translation look-aide buffer) leállításához vezet. Mindezek nem elhanyagolható általános költségekkel járnak, és rontják az alkalmazások teljesítményét.

Ez a cikk a lefedettség alapú írásra másolást (CCoW), egy újszerű másolás-írás-optimalizálási sémát javasol. Amikor egy oldalt írás céljából férünk hozzá, a memóriaelérésekben lévő térbeli elhelyezkedés miatt valószínűleg hamarosan hozzáférünk a közeli oldalakhoz is íráshoz. A CCoW kihasználja a térbeli lokalitást, hogy csökkentse az írás-másolásnál előforduló oldalhibák számát. Pontosabban, a CCoW nagy részletességgel (úgynevezett régiónak) dolgozza fel a másolást írásra.

Azáltal, hogy több oldalt másol az oldalhibakezelőben, a CCoW jelentős számú oldalhibát csökkenthet az írási másolásnál és az ezzel járó általános költségeknél. A térbeli lokalitás mértéke azonban a folyamatcímtérben elfoglalt helytől függően nagyon változó, és a memória alacsony lokalitású részeinek megkettőzése csak idő- és térbeli többletköltséget jelent.

Ennek a hiányosságnak a kiküszöbölésére egy precíz, alacsony költségű mechanizmust javasolunk a folyamatcímtérben lévő térbeli lokalitás felmérésére. A CCoW megszámolja az írásonkénti másolások és írások számát az egyes régiókban.

A lokalitásinformáció elágazása révén megbecsülhetjük a térbeli lokalitás mértékét, és a CCoW hatékonyan csak a magas lokalitású régiókban végzi el az előmásolást. A javasolt CCoW sémát implementáltuk a Linux kernelben.

Az operációs rendszer virtuális memóriarendszerébe integrálva az alkalmazások módosítás nélkül élvezhetik a CCoW előnyeit. Mikrobenchmark segítségével elemeztük a teljesítményjellemzőket, és a benchmark segítségével valószerű munkaterheléssel végzett értékelés azt mutatja, hogy a CCoW akár 10%-kal is javíthatja az alkalmazás teljesítményét ésszerű többletmemória mellett.

ways to improve memory

A cikk további része a következőképpen van felszerelve. A 2. részben áttekintjük a dolgozat hátterét és kapcsolódó munkáit, beleértve a virtuális memóriát és a villát. A CCW tervezésének és megvalósításának részleteit a 3. részben ismertetjük. A 4. fejezet a CCW értékelési eredményeit mutatja be. Végül ezt az írást az 5. részben zárjuk.

2. Háttér és kapcsolódó munka

2.1. Lapozás és virtuális memória

Szinte minden modern számítógép és operációs rendszer a lapozást és a virtuális memóriát alkalmazza elsődleges memóriakezelési sémaként [5]. A fő memória azonos méretű oldalakra van osztva, és az operációs rendszerek lefoglalják vagy felszabadítják a memóriát az oldalegység felhasználói folyamataiból.

Az operációs rendszerek emellett fenntartják a folyamatok címtereinek leképezését a rendszer fizikai helyére. A folyamat címterében minden logikai oldal le van képezve a fizikai helyére, és ez a leképezés oldaltábla formájában tárolódik.

Egy folyamat memóriareferenciájának kezelésére egy memóriakezelő egység (MMU), a processzor hardverkomponense, a laptáblázatra hivatkozva lefordítja a kért címet annak fizikai címére. Az oldaltábla oldaltábla bejegyzéseket (PTE) tartalmaz. Mindegyik PTE tartalmazza a leképezési információkat, és további mezőkkel is rendelkezhet a megfelelő oldal és a leképezés állapotának leírására.

Az oldalméret, bár architektúra-specifikus, általában 4 KB a legtöbb architektúrában. Ez azt jelenti, hogy a folyamat címterében minden 4 KB-nak egy PTE-nek kell lennie. Figyelembe véve a folyamat címterének hatalmas méretét, az oldaltábla mérete akár egyetlen folyamat esetében is óriási lehet.

Például egy 64-bit architektúrában 4 KB oldalakkal és 8-byte PTE-vel rendelkező folyamat oldaltáblázata 32 PB (264/212 × 8=255 bájt) méretű lenne. A címtér azonban általában ritkán lakott, és a címtér nagy része nem szükséges.

Ez megvilágítja az oldaltábla hierarchikus felépítését. A teljes oldaltáblázat oldaltáblázat-darabokra van felosztva, amelyek elférnek egy oldalon. Az oldaltábla-darabok nincsenek lefoglalva nem lefoglalt címrégiókhoz.

memory enhancement

A kitöltött oldaltábla-darabok összefoglalhatók ashigher szintű oldaltábla-darabok. Ez az útmutatás mindaddig ismétlődik, amíg egy oldalon csak darabok léteznek, ezáltal lehetővé válik az oldaltáblázatok kompakt formája.


For more information:1950477648nn@gmail.com

Akár ez is tetszhet