CCoW: Optimiziranje Copy-on-Write s obzirom na prostornu lokaciju u radnim opterećenjima, dio 3
Apr 02, 2024
3. CCoW Dizajn
U ovom odeljku prvo predstavljamo našu motivaciju koja stoji iza poboljšanja kopiranja na pisanje i objašnjavamo osnovni koncept kopiranja na pisanje (CCoW) zasnovanog na pokrivenosti. Zatim objašnjavamo način na koji CCoW bilježi lokalitet pod različitim scenarijima i optimizaciju za snimanje lokaliteta uz niske troškove.
Memorija je sposobnost ljudi da pribavljaju, pohranjuju i preuzimaju informacije. Sećanja ljudi će se takođe razlikovati u različitim scenarijima. U ovom članku ćemo istražiti odnos između pamćenja u različitim scenarijima.
Prvi je scenario učenja. Učenje je važno sredstvo za sticanje znanja i vještina za ljude. U procesu učenja, pamćenje igra vitalnu ulogu. Ako imate jako pamćenje, možete brže savladati nova znanja i lakše zadržati naučeno znanje. Stoga, u scenarijima učenja, moramo zadržati svoje razmišljanje jasnim i fokusiranim, kako bismo bolje poboljšali pamćenje.
Druga je turistička scena. Putovanja nam omogućavaju da iskusimo različite kulture i okruženja, uvelike obogaćujući naše vidike. Tokom putovanja možemo steći bogato kulturološko znanje prisjećajući se geografskih lokacija, ljudi, običaja i drugih informacija. Stoga, u sceni putovanja, moramo je pažljivo promatrati i aktivno doživljavati, kako bismo bolje poboljšali svoje pamćenje.
Još jednom, to je radna scena. Na poslu trebamo baratati velikom količinom informacija, kao što su podaci, kontakti, zadaci, planovi itd. Ako nam pamćenje nije dovoljno snažno, to će uticati na našu radnu efikasnost i postignuća. Stoga, u radnim scenarijima, moramo dobro obaviti posao snimanja i organiziranja i pokušati što više suziti raspon "informacione veze". Na taj način možemo bolje poboljšati svoje pamćenje.
Konačno, tu su i životne scene. Ljudi treba da pamte mnoge dnevne stvari, kao što su adrese, brojevi telefona, zadaci za dan, itd. Ako naše pamćenje nije dovoljno dobro, pojavit će se mnogi problemi u životu. Stoga, u životnim scenama, moramo vježbati svoju sposobnost pamćenja. Možemo poboljšati svoje pamćenje izgradnjom asocijativnog razmišljanja i tihim ponavljanjem.
Ukratko, pamćenje u različitim scenarijima je usko povezano. Namjernim vježbanjem i koncentracijom možemo poboljšati svoje pamćenje i postići bolje performanse u različitim scenarijima. Nastavimo bolji život i karijeru sa optimističnim stavom. Vidi se da moramo poboljšati pamćenje, a Cistanche deserticola može značajno poboljšati pamćenje, jer i Cistanche deserticola može regulisati ravnotežu neurotransmitera, kao što je povećanje nivoa acetilholina i faktora rasta. Ove supstance su veoma važne za pamćenje i učenje. Osim toga, Cistanche deserticola također može poboljšati protok krvi i promovirati isporuku kisika, što može osigurati da mozak dobije dovoljno hranjivih tvari i energije, čime se poboljšava vitalnost i izdržljivost mozga.

Kliknite znati suplemente za poboljšanje pamćenja
3.1. Motivacija
Kao što je ranije diskutovano, mehanizam kopiranja na upisivanje igra ključnu ulogu u implementaciji karakteristika virtuelne memorije u modernim OS-ovima. Međutim, njegove prednosti u smislu prostora su se smanjivale u modernim računarskim okruženjima i radnim opterećenjima intenzivnom za pisanje, koja su uobičajena u centrima podataka [21,22].
Nove memorijske tehnologije kao što su memorija za skladištenje (SCM) i trajna memorija omogućavaju povećanu gustinu podataka za memorijske module uz smanjenje cene po jedinici podataka.
Danas je izgradnja čvora sa ogromnom količinom memorije u terabajtnoj skali postala jeftinija nego ikad. Osim toga, dobavljači usluga u oblaku su izvijestili da čvorovi u podatkovnim centrima pate od malog iskorištenja memorije, ostavljajući 40-50% memorije neiskorištenim [23-26]. U ovoj situaciji, postaje izvodljivo zamijeniti memorijski prostor za performanse u sistemima koji su kritični za performanse [27]. Prednosti u pogledu performansi također se smanjuju.
Prednost performansi kopiranja na upisivanje može se okarakterizirati učestalošću i performansama rukovanja greškama stranice. Prilikom pokretanja podređenog procesa, dozvola za pisanje na svim stranicama je pala. Iz perspektive ispravnosti, to je neizbježno; međutim, to dovodi do čestih grešaka stranica nakon račvanja, u posluživanju svakog zahtjeva za pisanje. Ova oluja grešaka u pisanju stranice ne dešava se samo podređenim procesima već i roditeljskom procesu.
Da bude još gore, vrijeme obrade grešaka stranice nije poboljšano u posljednje vrijeme, ali ima tendenciju da se produži zbog sigurnosnih razloga. U prošlosti, cijeli adresni prostor kernela bio je uporno mapiran u dio adresnog prostora korisničkog procesa.
Međutim, ovaj raspored adresnog prostora dozvoljava zlonamjernim korisničkim procesima da indirektno čitaju kritične podatke u adresnom prostoru kernela iskorištavanjem spekulativnog izvršavanja u procesorima [28,29].
Da bi ublažili takvu kritičnu sigurnosnu ranjivost, moderni OS koriste izolaciju tablice stranica kernela (KPTI). Općenito, samo ograničeni dio adresnog prostora kernela je mapiran u adresni prostor procesa, a ostatak adresnog prostora kernela je dinamički mapiran i nemapiran tokom rukovanja prekidima i sistemskim pozivima. Ovo mora biti praćeno ispiranjem TLB-a, koje može značajno pogoršati performanse sistema.
U ovom radu, cilj nam je da smanjimo troškove kopiranja na upisivanje korištenjem prostorne lokalizacije memorijskih referenci. Trenutno se kopiranje-upisivanje odvija po stranici, i svaki put kada dođe do greške na stranici, OS bi trebao biti uključen. Naša ključna ideja je da smanjimo učestalost uključivanja OS-a korištenjem prostorne lokacije pristupa memoriji. Ako se stranici pristupi radi pisanja, vjerovatno će se uskoro pristupiti i obližnjim stranicama radi pisanja.
Stoga, ako izvršimo kopiranje pri pisanju ne samo za neispravnu stranicu već i za obližnje stranice zajedno (tj. prethodno kopiramo obližnje stranice), možemo amortizirati troškove kopiranja pri pisanju tokom rukovanja greškom stranice. Međutim, treba da budemo oprezni, da ne kopiramo uvek na slepo sve stranice u blizini.
Ako se kopirane stranice napišu kasnije, plaćaju se režijski troškovi za pretkopiju. Međutim, ako se kopirane stranice ne napišu naknadno, pretkopija nanosi samo dodatne troškove u smislu vremena i prostora.

Stoga je od ključnog značaja identifikovati odgovarajuće ciljne stranice za kopiranje. Slični pristupi su korišćeni da bi se minimizirali troškovi rukovanja greškama stranice. Linux koristi takozvanu karakteristiku 'fault around'. Dok rukuje greškom stranice, Linux pokreće rukovanje greškom stranice za stranice koje se nalaze oko neispravne stranice [2]. Ova karakteristika se, međutim, primjenjuje samo na greške stranice za čitanje za memorijske regije koje podržavaju datoteke.
S obzirom na to da se predložena ideja fokusira na pisanje grešaka stranica za anonimne stranice, možemo tvrditi da se naš pristup razlikuje od funkcije zaokretanja grešaka. Predloženi su mnogi najmoderniji dizajni [12–17] kako bi se optimizirala upotreba ogromne stranice u OS-u.
Ovi sistemi, uobičajeno, predstavljaju šemu za identifikaciju najboljih kandidata za stranice koje treba konvertovati u ogromne stranice i za efikasno promovisanje (tj. pretvaranje osnovne stranice u ogromnu stranicu) ili snižavanje sa (tj. pretvaranje ogromne stranice u osnovne stranice) ogromne stranice.
Međutim, bez obzira na predložene šeme, kopiranje-upisivanje se izvodi samo u granularnosti osnovne stranice, nakon što se ogromna stranica po potrebi razbije na osnovne stranice. Stoga su njihove performanse kopiranja na upisivanje iste kao zadani Linux sistem sa mehanizmom transparentne ogromne stranice (THP). Nasuprot tome, naša predložena shema je jedinstvena po tome što izvodi kopiranje na upisivanje s različitom granularnošću u skladu sa stepenom lokaliteta u pristupima memoriji.
3.2. Identifikacija prostornog lokaliteta
Da bismo realizovali predloženu šemu, trebalo bi da razmotrimo dva izazovna pitanja. Prvo, ciljne stranice treba da budu identifikovane precizno i na vreme, tako da je korist od prethodne kopije maksimizirana, dok su troškovi za pretkopiju svedeni na minimum.
Jednom kada pisac kopira stranicu, stranica neće pokrenuti dalje greške stranice. Ovo efektivno znači da je sistem izgubio priliku da optimizuje pristup pisanju. Dakle, sistem bi trebao biti u stanju da predvidi buduću upotrebu stranica kako bi odredio koje stranice treba kopirati, a koje ne. Drugo, identifikacija ciljnih stranica bi trebala imati male troškove jer OS ne može priuštiti dugotrajnu obradu u podsistemu upravljanja memorijom koji je kritičan za performanse.
Kao što je objašnjeno u Odjeljku 2, mnoge karakteristike virtuelne memorije u modernim OS-ima su zasnovane na mehanizmu kopiranja-upisivanja. Stoga, dodatni troškovi mogu lako nadmašiti korist optimizovanog kopiranja na upisivanje ako cjelokupna implementacija nije dovoljno efikasna.
Da bismo predvidjeli budućnost stranice, prvo prikupljamo historiju forkova za korisničke procese. Konkretno, OS prati broj forksova koje svaki proces poziva. Mali broj za proces implicira da postoji malo mogućnosti da se proces iskoristi, a OS ne mora u potpunosti pratiti greške stranice za pisanje za ovaj proces.
Nasuprot tome, kada proces poziva sistemski poziv vilice više od praga, sistem može očekivati mogućnost optimizacije. Ovo se dešava sa Redis-om, koji povremeno poziva forks da bi napravio snimke u memoriji, ili sa shell skriptom koja forksira više komandi komandne linije. Kao odgovor, sistem počinje da prati greške stranice za proces.

Zatim predlažemo metod za predviđanje mogućnosti optimizacije iz istorije, pod pretpostavkom da se ukupno ponašanje aplikacija ne menja značajno. U tu svrhu dijelimo procesni adresni prostor na regije fiksne veličine. Svaka regija održava bitmapu, gdje svaki bit odgovara stranici u regiji. Proces se pokreće sa obrisanim bitmapama, kao za novopopunjena područja virtuelne memorije (VMA). Kada se cijeli VMA partor ne mapira, bitmape u odgovarajućem rasponu adresa se također oslobađaju.
Bitmapa se dodeljuje samo za delove VMA koji su popunjeni, a informacije o stranici od 4 KB su sažete u jedan bit. Prema tome, prostor iznad bitmapse približno je 0.003% popunjenog adresnog prostora. U početku, upisi se obrađuju putem kopiranja na upisivanje kao što jesu.
Pristup pisanju je zarobljen u rukovaocu greškama stranice, pri čemu se postavlja odgovarajući unos bitmape. Vremenom, bitmapa efektivno bilježi pristupe regiji, a mi možemo kvantifikovati stepen pokrivenosti. Pokrivenost regiona izračunava se kao procenat kopiranih stranica od svih stranica u regionu, na sledeći način:
![]()
Pretpostavimo da sistem koristi stranice od 4 KB, a adresni prostor je podijeljen na regije od 2 MB.
Tada svaka regija ima 512 4 KB stranica. Ako se 300 stranica kopira na zapise, pokrivenost tog regiona je 300/512 × 100=58.6%. Što je veća pokrivenost regije, region može imati više koristi od mogućnosti optimizacije prekopiranja. Ove informacije o pokrivenosti prenose se preko vilice i koriste se kao metrika za određivanje prednosti kopiranja obližnjih stranica.
Konkretno, ako memorijski region ima veliku pokrivenost, stranice u regionu će verovatno biti kopirane-na-pisane na kraju. Stoga bi bilo korisno unaprijed kopirati druge stranice u regiji dok se obrađuje greška stranice za pisanje za stranicu. Dok je mogućnost optimizacije u prethodnom kopiranju stranica mala ako je pokrivenost mala. Dakle, samo neispravna stranica je kopirana-na-zapisana od strane rukovatelja greškom stranice.
Od sada ćemo ovu šemu nazivati Copy-on-Write iliCCoW zasnovanom na pokrivenosti za ostatak rada. Slika 1 ilustruje koncept CCoW. Postoje dvije regije, regije 0 i 1, od kojih svaka ima šest stranica.
Stranice sa zelenom nijansom su popunjene sa copy-on-write. Kada proces pozove sistemski poziv račvanja, dozvola za pisanje za sve stranice, uključujući i one zelene, će biti odbačena tokom račvanja. Pretpostavimo da je prag za određivanje visoko-lokalne regije 60%. U regiji 0, četiri stranice (stranice 1, 2, 3 i 4) su kopirane za pisanje prije račvanja, pružajući pokrivenost od 4/6=66%.
Stoga se smatra da ova regija ima visoku prostornu lokaciju, a sve stranice se kopiraju kako bi se riješila greška stranice za stranicu 3, osenčena crvenom bojom. Dok, donja regija pruža pokrivenost od 33% pošto su dvije od šest stranica bile kopirane na napisano prije račvanja.
Dakle, ova regija ima nižu pokrivenost od praga, što implicira nisku prostornu lokaciju u regiji. Dakle, kada se stranici 9 pristupi radi pisanja, samo se neispravna stranica kopira pri upisu u rukovaocu greškama stranice, baš kao i normalna procedura kopiranja-upisivanja.

For more information:1950477648nn@gmail.com






