CCoW: Optimiziranje Copy-on-Write s obzirom na prostorni lokalitet u radnim opterećenjima, 1. dio
Apr 02, 2024
Sažetak:
Copy-on-write (CoW) bitna je tehnika upravljanja memorijom koja omogućuje učinkovito dijeljenje stranica između procesa. Konkretno, u kombinaciji CoW-a s fork systemcall-om, aplikacije, čak i s ogromnim memorijskim otiskom, mogu napraviti snimku trenutnih podataka u memoriji uz niske troškove.
Memorijski podaci odnose se na podatke pohranjene u memoriji računala. Iako se razlikuje od ljudskog pamćenja, postoji određena veza između njih dvoje.
Prvo, podaci o pamćenju mogu pospješiti razvoj ljudskog pamćenja. Na primjer, možemo koristiti funkcije snimanja, pohrane i dohvaćanja računala da nam pomognu u učenju, pamćenju i razumijevanju znanja. Suvremena tehnologija pruža nam učinkovitije načine pamćenja i učenja, što nam osigurava bolje ovladavanje znanjima i vještinama.
Drugo, podaci o pamćenju također mogu pomoći ljudima da bolje upravljaju svojim sjećanjima. Urednim organiziranjem i klasificiranjem podataka brže pronalazimo i prisjećamo se potrebnih informacija koje su vrlo važne za naš život, rad i učenje.
Ono što je najvažnije, podaci u memoriji sprječavaju gubitak ljudske memorije. Ljudsko pamćenje postupno slabi tijekom vremena, proces koji se naziva "zaborav". Međutim, pohranjivanjem podataka na tvrdi disk računala možemo osigurati da se informacije i sjećanja koja su nam potrebna mogu zadržati i dohvatiti u bilo kojem trenutku.
Stoga se može reći da je odnos između podataka o pamćenju i ljudskog pamćenja pozitivan. Iako se ne bismo trebali previše oslanjati na tehnologiju, razumno korištenje memorijskih podataka može poboljšati našu radnu učinkovitost i rezultate učenja, pomoći nam da bolje upravljamo pamćenjem i spriječimo zaboravljanje. Vidi se da moramo poboljšati pamćenje, a Cistanche deserticola može značajno poboljšati pamćenje jer je Cistanche deserticola tradicionalni kineski ljekoviti materijal koji ima mnogo jedinstvenih učinaka, a jedno od njih je i poboljšanje pamćenja. Djelotvornost Cistanche deserticola proizlazi iz brojnih aktivnih sastojaka koje sadrži, uključujući taninsku kiselinu, polisaharide, flavonoidne glikozide itd. Ovi sastojci mogu promicati zdravlje mozga na različite načine.

Kliknite na 10 načina za poboljšanje pamćenja
Međutim, budući da se CoW odvija po stranici u rukovatelju greškama stranice, svaki put kada se pojavi greška stranice, operativni sustav bi se trebao uključiti. To dovodi do značajnog pada performansi za radna opterećenja koja intenzivno pišu.
Ovaj rad predlaže kopiranje-pisanje temeljeno na pokrivenosti (CCoW), optimiziranu CoW shemu koja uzima u obzir lokalitet u pristupima memoriji kako bi se ublažio problem CoW-a. CCoW mjeri prostorni lokalitet u procesnim adresnim prostorima s konceptom pokrivenosti.
Tijekom obrade CoW-a, CCoW kopira više stranica unaprijed za memorijske regije visoke lokalizacije, čime se minimalizira uključenost OS-a za radna opterećenja koja intenzivno pišu. Objašnjavamo izazove za mjerenje lokaliteta i pružamo optimizaciju za implementaciju koncepta.
Evaluacija s prototipom pokazuje da ovaj pristup može poboljšati ukupnu izvedbu aplikacija do 10% s malom količinom dodatne memorije.
Ključne riječi: copy-on-write; sustav virtualne memorije; vilica; Redis; pogreška stranice.
1. Uvod
Primarna uloga operacijskog sustava (OS) je upravljanje dragocjenim sistemskim resursima, a kopiranje na pisanje (CoW) jedna je od najosnovnijih tehnika upravljanja memorijom koju je usvojila većina suvremenih operativnih sustava.
Kada dva ili više procesa trebaju imati iste podatke, CoW shema omogućuje procesima da dijele iste stranice umjesto da odmah dupliciraju stranice. Dijeljene stranice se dupliciraju na zahtjev, samo kada jedan od procesa piše na dijeljene stranice.
Sustavi virtualne memorije mogu učinkovito osigurati dijeljenje podataka između procesa, a različite značajke virtualne memorije, kao što je dupliciranje adresnog prostora tijekom račvanja procesa, uklanjanje duplikata istih stranica i dijeljenje nulte stranice, implementirane su na temelju kopiranja pri pisanju [1-3]. Zahvaljujući ovim značajkama, aplikacije mogu napraviti kopiju same sebe s malim prostorom i koristiti klon na odgovarajući način.
Na primjer, Redis, jedan od popularnih sustava za pohranjivanje ključeva u memoriji [4], koristi kopiranje pri pisanju u kombinaciji sa sustavom fork za pozivanje podataka u memoriji za zadržavanje podataka u memoriji. Dok poslužuje ulazne zahtjeve, Redis glavni proces povremeno stvara podređeni proces s forkom. Podređeni proces započinje snimkom memorije identičnom glavnom procesu kako bi se podaci u memoriji spremili u pohranu.

Budući da je snimka izolirana od adresnog prostora glavnog procesa, ali njome upravlja kopiranje na pisanje, glavni i podređeni procesi ne zahtijevaju nikakav kompliciran mehanizam za održavanje dosljednosti između trenutnih podataka i snimke.
Prema tome, možemo smatrati da je kopiranje pri pisanju ključno u sustavu virtualne memorije. Međutim, trenutno kopiranje pri pisanju je problematično u memorijsko intenzivnim aplikacijama s radnim opterećenjima intenzivnog pisanja. Točnije, dupliciranje podataka obično se događa u rukovatelju pogreškom stranice u OS-u. Budući da se umnožavanje podataka obrađuje po stranici, s nekoliko pisanja, proces može dovesti do značajnog broja grešaka na stranici.
OS je uključen u grešku svake stranice, što rezultira čestim promjenama načina korisničkog kernela. Uzimajući u obzir ogroman memorijski otisak memorijski intenzivnih aplikacija, broj prekidača načina je velik.
Osim toga, tablica stranica se mijenja tijekom umnožavanja, što dovodi do skidanja međuspremnika za gledanje u stranu (TLB) svih jezgri u sustavu. Sve to uzrokuje nezanemarive troškove i pogoršava rad aplikacija.
Ovaj rad predlaže Copy-on-Write (CCoW) temeljenu na pokrivenosti, novu optimizacijsku shemu copy-on-write. Kada se stranici pristupi za pisanje, vjerojatno će se uskoro pristupiti i njenim obližnjim stranicama za pisanje zbog prostorne lokacije u pristupima memoriji. CCoW iskorištava prostorni položaj kako bi smanjio broj grešaka na stranici za kopiranje na pisanje. Konkretno, CCoW obrađuje kopiranje na pisanje u velikoj granularnosti (koja se naziva regija).
Kopiranjem više stranica u rukovatelju greškama stranice, CCoW može smanjiti znatan broj grešaka stranice za kopiranje pri pisanju i popratne režijske troškove. Međutim, stupanj prostorne lokalnosti uvelike varira ovisno o lokaciji u adresnom prostoru procesa, a umnožavanje dijelova memorije niske lokalizacije izaziva samo režijske troškove u smislu vremena i prostora.
Kako bismo prevladali ovaj nedostatak, predlažemo precizan mehanizam s niskim troškovima za procjenu prostorne lokacije u adresnom prostoru procesa. CCoW broji broj kopiranja na pisanje i pisanja u svakoj regiji.
Prenošenjem informacija o lokalitetu preko forkova, možemo procijeniti stupanj prostornog lokaliteta, a CCoW učinkovito izvodi prekopiranje samo za regije s visokom lokalizacijom. Implementirali smo predloženu CCoW shemu u Linux kernelu.
Budući da su integrirane u sustav virtualne memorije operativnog sustava, aplikacije mogu imati koristi od CCoW-a bez modifikacija. Analizirali smo karakteristike performansi s mikrobenchmarkom, a procjena korištenjem benchmarka s realnim radnim opterećenjima pokazuje da CCoW može poboljšati performanse aplikacije do 10% s razumnom količinom dodatne memorije.

Ostatak ovog rada organiziran je na sljedeći način. U Odjeljku 2, dajemo pregled pozadine i povezanog rada rada, uključujući virtualnu memoriju i fork. Pojedinosti dizajna CCoW-a i njegove implementacije objašnjavamo u Odjeljku 3. Odjeljak 4 predstavlja rezultate evaluacije CCoW-a. Na kraju, ovaj rad završavamo u odjeljku 5.
2. Pozadina i povezani poslovi
2.1. Stranicanje i virtualna memorija
Gotovo sva moderna računala i operativni sustavi usvajaju straničnu i virtualnu memoriju kao svoju primarnu shemu upravljanja memorijom [5]. Glavna memorija podijeljena je na stranice iste veličine, a operativni sustavi dodjeljuju ili oslobađaju memoriju iz korisničkih procesa u jedinici stranica.
OS-ovi također održavaju preslikavanja adresnih prostora procesa na fizičku lokaciju u sustavu. Svaka logička stranica u adresnom prostoru procesa mapirana je na svoju fizičku lokaciju, a to mapiranje je pohranjeno u obliku tablice stranica.
Za rukovanje memorijskom referencom za proces, jedinica za upravljanje memorijom (MMU), hardverska komponenta u procesoru, prevodi traženu adresu u svoju fizičku adresu pozivajući se na tablicu stranica. Tablica stranica sadrži unose tablice stranica (PTE). Svaki PTE sadrži informacije o mapiranju i može imati dodatna polja za opisivanje statusa odgovarajuće stranice i mapiranja.
Veličina stranice, iako je specifična za arhitekturu, obično je 4 KB u većini arhitektura. To implicira da svaka 4 KB u adresnom prostoru procesa treba imati jedan PTE. S obzirom na ogromnu veličinu adresnog prostora procesa, veličina tablice stranica, čak i za jedan proces, može biti ogromna.
Na primjer, tablica stranica za proces u 64-bitnoj arhitekturi sa stranicama od 4 KB i 8-bajt PTE bila bi veličine 32 PB (264/212 × 8=255 bajtova). Međutim, adresni prostor obično je rijetko naseljen i većina adresnog prostora nije potrebna.
Ovo prosvjetljuje hijerarhijsku organizaciju tablice stranica. Cijela tablica stranica podijeljena je na dijelove tablice stranica koji stanu na stranicu. Dijelovi tablice stranica nisu dodijeljeni regijama nedodijeljene adrese.

Popunjeni dijelovi tablice stranica mogu se sažeti kao dijelovi tablice stranica više razine. Ovo usmjeravanje se ponavlja sve dok ne postoje samo dijelovi na jednoj stranici, čime se omogućuje kompaktan oblik tablica stranica.
For more information:1950477648nn@gmail.com






