CCoW: Optimiziranje Copy-on-Write s obzirom na prostornu lokaciju u radnim opterećenjima, dio 6
Apr 03, 2024
Najbolja veličina regiona i prag variraju u zavisnosti od karakteristika radnog opterećenja. Da bismo procenili uticaj radnog opterećenja, merimo performanse CCoW na opterećenjima sa različitim lokalitetima. Konkretno, promijenili smo parametar Zipfdistribucije, koji određuje stupanj lokaliteta.
Postoji bliska veza između ljudskog pamćenja i radnog opterećenja. Kada trebamo obraditi velike količine informacija ili završiti složene zadatke, naš mozak mora ostati vrlo oprezan kako bi osigurao da su sve potrebne informacije ispravno obrađene i pohranjene. Neuroni u mozgu se neprestano povezuju i komuniciraju, što uvelike utiče na način na koji razmišljamo i pamtimo.
Iako obrada velikih količina informacija i dovršavanje složenih zadataka mogu izazvati naše pamćenje i kognitivne sposobnosti, istraživanja pokazuju da uz pravilnu obuku i praksu možemo značajno poboljšati svoje pamćenje i produktivnost. Na primjer, kroz eksperimente, naučnici su otkrili da kroz opsežnu obuku i praksu pamćenja ljudi mogu značajno poboljšati svoje pamćenje i radnu efikasnost.
Iz ove perspektive možemo zaključiti da su kontinuirana praksa i obuka veoma važni za one koji žele poboljšati svoje pamćenje i radnu efikasnost. Takođe, zadržite pozitivan stav, jer stres može ugroziti nečije pamćenje i produktivnost.
Ukratko, postoji jaka korelacija između radnog opterećenja i memorije. Sve dok ostanemo fokusirani, redovno treniramo i vježbamo te održavamo pozitivan stav, možemo značajno poboljšati svoje pamćenje i radnu efikasnost. Cistanche deserticola takođe može regulisati ravnotežu neurotransmitera, kao što je povećanje nivoa acetilholina i faktora rasta, koji su važni 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 na saznajte načine da poboljšate svoje pamćenje
Pristupi su ravnomjerno raspoređeni kada je {{0}}, a što je veća vrijednost , to je viši nivo lokaliteta koji pokazuje radno opterećenje. Kada je 1.0, otprilike 80% operacija uključuje 20% podataka.
Ovaj stepen lokalnosti se obično nalazi u nekoliko stvarnih radnih opterećenja, kako navodi Pareto princip. Mjerimo sa tri različite vrijednosti, 1.0, 0.9 i 1.1, gdje je 1.0 osnovna linija, a 0.9 i 1.1 predstavljaju nisko i visoko lokalno radno opterećenje, respektivno.
Originalni učinak CoW varira ovisno o radnom opterećenju, tako da je period račvanja za radno opterećenje postavljen u skladu s vremenom izmjerenim s originalnom postavom CoW. Na primjer, ako originalna CoW konfiguracija zahtijeva 10 sekundi da se povrati normalne performanse nakon afork-a, druge konfiguracije CCoW također razdvajaju podređene procese svakih 10 s.
Slika 5 sumira prosječnu propusnost i korištenje memorije CCoW-a s različitim radnim opterećenjima lokaliteta. Za radno opterećenje niske lokacije, konfiguracije s malim CCoW pragovima pokazuju bolje performanse od onih s velikim pragovima. 'CCoW-all' čak nadmašuje originalnu CoW za 15% u opterećenju na niskim lokacijama. To je zbog djelotvornosti prekopije. U radnom opterećenju niske lokacije, veliki dio memorije bi trebao biti repliciran jer su pristupi raspoređeni po cijelom adresnom prostoru procesa. U stvari, kopiranje cijelih regija rezultira unaprijed kopiranjem potrebne memorije s malim troškovima.

Dakle, što je manji prag, to je veća performansa programa s radnim opterećenjem niske lokacije. Međutim, ovaj trend ima suprotan učinak s velikim opterećenjem na lokaciji. Sa radnim opterećenjima visoke lokacije, mnogi pristupi su fokusirani na nekoliko stranica.
Ovo implicira da samo mali dio memorije treba biti repliciran tijekom kopiranja-pisanja. Kopiranje cijelog regiona na grešku stranice ima tendenciju kopiranja stranica kojima se uopće ne pristupa.
Ovo uzrokuje samo privremene troškove, smanjujući performanse s radnim opterećenjima na većoj lokaciji. Kao rezultat toga, CCoW-all pokazuje najgore performanse sa velikim opterećenjem na lokaciji. Druge konfiguracije pokazuju slične obrasce osnovnog radnog opterećenja; performanse dostižu vrhunac na vrijednosti praga od 80% i opadaju s manjim pragovima.

Korištenje memorije benčmarka pokazuje dosljedan trend bez obzira na stepen lokalizacije radnih opterećenja. 'CCoW-all' uvijek predstavlja najveću upotrebu memorije jer uvijek kopira sve stranice u memoriji nakon račvanja. Osim toga, memorijski otisci su obrnuto proporcionalni vrijednosti praga; što je manja vrijednost praga, to više memorije koristi benčmark.
Pojačanje memorije je samo povećano za do 10% u odnosu na originalnu CoW konfiguraciju, za koju se smatra da je u razumnom rasponu. Pored analize performansi CCoW, upoređujemo performanse CCoW sa performansama transparentne ogromne stranice (THP) shema Linuxa.
THP je donekle sličan CCoW po tome što ima za cilj ublažavanje troškova koji potiču od malih stranica. 'CoW-THP' na slici 5 predstavlja performanse THP-omogućene konfiguracije. Imajte na umu da THP-omogućen sistem upravlja CoW tako što dijeli ogromne stranice na osnovne stranice prije kopiranja neispravne stranice, kao i druge šeme koje optimiziraju THP [12–15,17].
Možemo primijetiti da THP pokazuje bolje performanse od zadane konfiguracije 'Samo za CoW'. Povećanje performansi pripisujemo povećanju efikasnosti u prevođenju adresa sa ogromnim stranicama.
Konkretno, prema THP šemi, vrući dio procesnog adresnog prostora će vjerovatno biti razbijen na osnovne stranice, čime će se pružiti iste performanse kao i konfiguracija 'Samo za CoW'. Međutim, hladni dio procesnog adresnog prostora nije podijeljen i održava se ogromnim stranicama. Dakle, ovo može donekle povećati performanse aplikacije.
Međutim, THP ne pruža toliko poboljšanje performansi kao CCoW. Slika 6 prikazuje kumulativnu distribuciju protoka tokom evaluacije. X-osa predstavlja propusnost u operacijama u sekundi, a y-osa predstavlja kumulativni omjer performansi i vrijednost propusnosti. Osim za CCoW-all, možemo pronaći tri često posmatrana opsega protoka bez obzira na konfiguracije.
Prva grupa u kumulativnom omjeru od {{0}} do 0.1 označava period tokom kojeg performanse benčmarka opadaju odmah nakon viljuške. Tada se učinak oporavlja preko vremena, kao u drugoj grupi sa kumulativnim omjerom od 0.1 do 0.7.
Preostali kumulativni omjeri u rasponu od {{0}}.7 do 1.0 su od pristupa koji ne uzrokuju greške stranice. Sveukupno, konfiguracije CCoW imaju tendenciju da imaju ozbiljnije padove performansi od originalnih CoW. Konkretno, s radnim opterećenjem visoke lokacije originalne CoW sheme, propusnost pada na približno 1900 K operacija u sekundi odmah nakon račvanja.

Zatim se polako povećava do raspona od 2500 K operacija u sekundi. Sa CCoW, performanse su još više pale, na raspon od 1700 K operacija u sekundi. Međutim, performanse su se brže oporavile, pokazujući bolje performanse od originalnog CoW većinu vremena (tj. uglavnom na desnoj strani kumulativnog grafikona). Sličan trend možemo uočiti i kod drugih radnih opterećenja, a konfiguracija CCoW-all pokazuje ekstremno ponašanje; odmah nakon račvanja performanse značajno opadaju i ostaju niske dok se većina adresnog prostora kopira s proširenim pristupima.
Nakon tog trenutka, međutim, dolazi do samo nekoliko grešaka stranica, tako da se većina pristupa obrađuje bez grešaka stranica. Dakle, propusnost ima bimodalnu distribuciju u CCoW. Iz ove evaluacije, potvrdili smo da CCoW pruža optimalne performanse optimizacijom uobičajenog slučaja.
Međutim, pad performansi bi trebao biti riješen kako bi se dobile bolje karakteristike performansi. U tu svrhu trenutno radimo na smanjenju količine kopiranih podataka odmah nakon viljuške.

4.2. CCoW performanse na realnom opterećenju
Da bismo procijenili predloženi CCoW na realnom radnom opterećenju, koristili smo Redis i YCSB. Redis je baza podataka ključ/vrijednost u memoriji koja se široko koristi za ubrzavanje aplikacija na Internetu.
Koristili smo YCSB Benchmark da popunimo parove ključ/vrijednost u Redis instanci i da izvršimo operacije na njima. Konkretno, Redis instanca se inicijalizira sa 10 GB parova ključ/vrijednost sa zadanom YCSB konfiguracijom.
Svi ključevi i vrijednosti su veličine 23 odnosno 100 bajtova, a svaki ključ sadrži 10 polja vrijednosti. Nakon popunjavanja Redis instance, konfigurisali smo je da pravi snimke, a zatim vršili operacije ažuriranja sa YCSB.
Da bismo inkorporirali vremensku lokaciju u pristupe ključ/vrijednost, postavili smo YCSB radno opterećenje za odabir ciljnih ključeva prema Zip distribuciji koristeći vrijednost parametra od 1.0.
Dok smo pravili 100 GB ažuriranja, prikupili smo propusnost za svaku sekundu YCSB benchmark izvještaja. Slika 7 sumira prosječnu propusnost i korištenje memorije Redis instance kada je sistem konfiguriran da koristi originalni CoW iliCCoW. Imajte na umu da smo koristili 2 MB za veličinu regije, a sve vrijednosti rezultata su normalizirane na vrijednost CoW.

Sve u svemu, sve konfiguracije CCoW nadmašile su originalnu CoW, bez obzira na prag pokrivenosti. Isto tako, kao što smo analizirali iznad, performanse su određene kompromisom između poboljšanja performansi od smanjenog kopiranja pri pisanju i troškova kopiranja dodatnih stranica. Kada je vrijednost praga visoka, kopira se samo nekoliko regiona, što čini i mogućnost optimizacije i memorijski prostor malim.
Kada se vrijednost praga smanji ispod 85%, memorijski otisak se povećava i uzrokuje više troškova. Kao rezultat toga, prosječna propusnost CCoW varira u zavisnosti od praga pokrivenosti, ali pokazuje do 5% poboljšanja performansi u odnosu na originalni CoW.
Sa Redis i YCSB radnim opterećenjem, primetili smo samo neznatno poboljšanje performansi sa THP-om. To je zbog toga što su u radnom opterećenju pristupi za pisanje raštrkani po cijelom adresnom prostoru procesa, a ogromne stranice su efektivno podijeljene na osnovne stranice dok se rukuje CoW.
Kako Redis proces može imati samo nekoliko ogromnih stranica, njegove performanse su slične performansama osnovne konfiguracije. Ovaj rezultat pokazuje da je pristup zasnovan na THP-u manje efikasan u radnim opterećenjima sa intenzivnim pisanjem, a CCoW nadmašuje THP.
Da bismo procenili tačnost mehanizma u identifikaciji regiona sa visokom lokacijom, klasifikovali smo razlog za mehanizam za generisanje kopija za svaku kopiranu stranicu. Konkretno, prikupili smo omjer kopiranih stranica od svih kopiranih stranica. Kada je omjer prethodne kopije x%, povećavajući ukupni memorijski otisak za y%, možemo izračunati omjer nepotrebne prekopije dijeljenjem y sa x.
Na primjer, na konfiguraciji CCoW-80, 26,9% kopiranih stranica se kopira, što povećava memorijski otisak za 6,7%. To implicira da 24,9% stranica prije kopiranja nije referencirano. Tabela 1 sumira proračun. Omjer nepotrebnog prethodnog kopiranja kreće se u rasponu od 23,4% do 35,6%, a iz rezultata evaluacije može se zaključiti da predložena shema precizno bilježi regije visokog lokaliteta.

5. Zaključci
U ovoj studiji predložili smo CCoW, optimiziranu shemu kopiranja-upisivanja za radna opterećenja s visokom prostornom lokacijom. CCoW dijeli procesni adresni prostor na regije i procjenjuje njihovu lokaciju s pokrivenošću.
Upis u regiju visoke lokacije vodi rukovaocu greškom stranice da unaprijed kopira obližnje stranice. Da bi pravilno pratio pokrivenost nakon prethodnog kopiranja, CCoW koristi prljavi dio u tabeli stranica. Evaluacija s referentnim vrijednostima potvrdila je da predložena šema može identificirati regije visoke lokacije sa malim troškovima, omogućavajući povećanje performansi od aplikacija bez modifikacija.
Kao što smo spomenuli, performanse značajno opadaju odmah nakon fork-a zbog ogromne količine podataka za kopiranje. Trenutno radimo na upravljanju smanjenjem performansi smanjenjem brzine predkopiranja i asinhronim izvođenjem predkopiranja. Također planiramo da ugradimo adaptivni mehanizam koji podešava konfiguracijske parametre prema karakteristikama trenutnog radnog opterećenja.
Doprinosi autora: Konceptualizacija, MH i S.-HK; metodologija, MZ; softver, MH; validacija, MH i S.-HK; formalna analiza, MH i S.-HK; istraga, MH, i S.-HK;resursi, S.-HK; kuriranje podataka, MH; pisanje-izrada originalnog nacrta, MZ; pisanje-recenzija i uređivanje, MH i S.-HK; vizualizacija, MH; nadzor, S.-HK; administracija projekta,S.-HK; pribavljanje sredstava, S.-HK Svi autori su pročitali i složili se s objavljenom verzijom rukopisa.

Finansiranje: Ovo istraživanje je podržano grantom Instituta za istraživanje elektronike i telekomunikacija (ETRI) koji finansira korejska vlada (20ZS1310) i programom BK21 FOUR Nacionalne istraživačke fondacije Koreje koji finansira Ministarstvo obrazovanja (NRF5199991014091).
Izjava institucionalnog odbora za reviziju: Nije primjenjivo.
Izjava o informiranom pristanku: Nije primjenjivo.
Izjava o dostupnosti podataka: Nije primjenjivo.
Sukob interesa: Autori izjavljuju da nema sukoba interesa.
Reference
1. Gorman, M. Razumijevanje Linux Virtual Memory Managera; Prentice Hall: Upper Saddle River, NJ, SAD, 2007.
2. Bovet, DP; Cesati, M. Razumijevanje Linux kernela; O'Reilly: Newton, MA, SAD, 2001.
3. Love, R. Linux Kernel Development, 3. ed.; Addison Wesley: Boston, MA, SAD, 2010.
4. Labs, R. Redis. Dostupno na mreži: https://github.com/redis/redis (pristupljeno 7. juna 2021.).
5. Silberschatz, A.; Galvin, PB; Gagne, G. Koncepti operativnog sistema; Addison-Wesley Longman Publishing Co., Inc.: Boston, MA, SAD, 2018.
6. Harris, SL; Harris, D. Digitalni dizajn i računarska arhitektura; Morgan Kaufmann: Burlington, MA, SAD, 2022.
7. Abi-Chahla, F. Intel Core i7 (Nehalem): Architecture By AMD? Dostupno na mreži: https://www.tomshardware.com/reviews/Intel-i7-nehalem-cpu,2041.html (pristupljeno 18. oktobra 2021.).
8. Pham, B.; Bhattacharjee, A.; Eckert, Y.; Loh, GH Povećanje dosega TLB-a korištenjem grupiranja u prijevodima stranica. U Proceedings of 20. IEEE 20th International Symposium on High-Performance Computer Architecture (HPCA'14), Orlando, FL, SAD, 15.–19. februar 2014.; str. 558–567.
For more information:1950477648nn@gmail.com






