Turinys
Įvadas 3Virtualios atmintinės optimizavimas, panaudojant dedikuotą skirsnį 4Metodo esmė 4Testavimas 5Testuojamoji sistema 5Naudota programinė įranga: 6Testavimo etapai 7ĮvadasViena iš įkyriausių problemų, susijusių su asmeniniais kompiuteriais – taioperatyviosios atmintinės trukumas. Ši bėda nėra aktuali didesnėmssistemoms, pavyzdžiui, tarnybinėms stotims, tačiau paprastam vartotojui,neįgalinčiam įsigyti didelės talpos atmintinės, – tai iš tikro gan didelisstabdis darbe.Šią bėda ekonomišku būdu imtasi spręsti gan seniai. Buvo sugalvotasprograminis būdas kaip išorinę atmintį (kietąjį diską) panaudoti kaipoperatyviąją atmintinę (RAM). Žinoma, kietasis diskas yra žymiai lėtesnisuž operatyviąją atmintinę, bet tuo pačiu ir žymiai talpesnis. Jau 1992metais Microsoft Windows 3.1 vartotojai galėjo naudotis šiuo metodu:sukuriamas tam tikro dydžio failas, kuris panaudojamas kaip operatyviojiatmintinė, o jo dydis (talpa) pridedamas prie tikrosios atmintinės. Tokiubūdu praplėsta atmintinė vykdomoms programoms atrodo vientisa. Tokiaatmintis dažnai vadinama virtualiąja (Virtual Memory).Virtualioji atmintinė yra naudojama ne tik Windows 3.x sistemose, bet irkitose Windows versijose ar operacinėse sistemose. Dabar paplitusiossistemos yra pagrįstos 32 bitais. Tai reiškia, kad didžiausias atmintieskiekis, kurį tokia sistema sugeba naudoti, siekia apie 4GB (232 baitų).Taigi virtualioji atmintinė vis dar reikalinga, atsižvelgiant į tai, kadšiandieninio paprasto vartotojo kompiuterio atmintinės kiekis retai viršija1GB.Nors virtualioji atmintinė gan sėkmingai išsprendžia operatyviosiosatmintinės trukumą, tačiau taip pat ji labai lėtina visos sistemos darbą,nes kietasis diskas nėra pritaikytas dideliems (lyginant su RAM) duomenųmainams. Tad iškyla uždavinys, kaip optimizuoti virtualiąją atmintinę, kadkompiuteris dirbtų kuo našiau. Šiame darbe ir bus aptariamas vienas išvirtualiosios atmintinės optimizavimo būdų.Virtualios atmintinės optimizavimas, panaudojant dedikuotą skirsnįMetodo esmė
Šis optimizavimo metodas yra gana paprastas. Tereikia patalpinti Windows NT(5.x) virtualiosios atmintinės failą pagefile.sys į jam dedikuotą diskoskirsnį. Šiame darbe neapžvelgsime veiksmų kaip tai padaryti, nes šisdarbas labiau sutelktas į našumo, kuris atsiranda dėl šio metodo, tyrimą.Virtualiosios atmintinės dedikuoto skirsnio reikalavimai: 1. Skirsnis turi būti disko pradžioje; 2. Skirsnis turi būti NTFS formato su 64KB blokais.
Privalumai:1) Disko pradžia laikoma išorinė disko dalis, o galas – disko dalis arti jocentro. Remiantis fizika, gan nesunkiai galima įrodyti, kad taškas esantisrato išorėje juda greičiau, nei arti centro, todėl ir informacija esantidisko išorėje yra skaitoma ir rašoma greičiau nei kitose disko dalyse.2) Kadangi kietasis diskas yra magnetinis įrenginys, tai jame informacijaiskaityti ir rašyti naudojamos galvutės. Šios galvutės reikiamos diskovietos paiešką pradeda nuo disko išorės, todėl informacija disko pradžiojerandama žymiai greičiau.3) Windows NT bandydama rasti failą, jo ieško po visą katalogų medį. Didelėlaiko dalis sugaištama didelėje failų sistemoje ieškant nuorodos įduomenis. Diską suskaldžius į skirsnius, kiekvienam skirsniui sukuriamaatskyra failų sistema. Nedidelis dedikuotas skirsnis su vienu failu(pagefile.sys) turės ir beveik tuščią failų sistemą, todėl paspartėsinformacijos paieška.4) Dideli skirsniai kenčia nuo fragmentacijos, kai failų dalys išsimėto povisą diską. Galvutės negali nuosekliai skaityti duomenų, todėl gaištamaslaikas. Skirsnyje su vienu failu fragmentacija neegzistuoja.5) NTFS failų sistemos standartinis bloko dydis yra 4 KB. Toks dydislaikomas optimalus nes turi gerą greičio ir ekonomiškumo santykį. Kuodidesnis bloko dydis – tuo greitesnė failų sistema, tuo labiau iššvaistomadisko vieta. Nes kartais išnaudojama visa bloko talpa. Tai ypač būdingasistemoms su daug failų. Kadangi dedikuotas virtualiosios atmintinės
skirsnis turės tik vieną failą, todėl iššvaistymas nėra baisus.Suformatavus šį skirsnį 64KB dydžio blokais, skirsnis pagreitės keliaisMB/s. Atlikus bandymą su testuojama sistema (žiūrėti tolimesnius puslapius)buvo gauti tokie rezultatai:|Dedikuotas skirsnis ||Grynasis greitis (be Windows Cache) |47 MB/s ||Kreipties laikas |6 ms ||Sisteminis skirsnis ||Grynasis greitis (be Windows Cache) |44 MB/s ||Kreipties laikas |7 ms |
Rezultatai gauti SiSoftware Sandra Lite programa.TestavimasTestuojamoji sistemaOptimizavimo metodo tyrimui buvo panaudota žemiau nurodyta sistema.Informacija gauta remiantis SiSoftware Sandra Lite programa. Lentelėsepateikiamas tik bandymui įtakos turinčios įrangos sąrašas.
|Procesorius ||Pavadinimas |AMD Duron (Morgan) ||Taktinis dažnis |1000 MHz ||Magistralės (FSB) dažnis |100 MHz (200 MHz DDR) ||Technologija |0,18 μm ||Maksimalus adresacijos lygis |32 bitai ||L1 spartinančioji atmintinė |128 KB (64 KB duomenų + 64 KB || |instrukcijų) ||L2 spartinančioji atmintinė |64 KB (integruota į procesorių) ||Papildomos instrukcijos: |MMX, SSE, EMMX, 3D Now!, Extented 3D Now!||Pagrindinė plokštė ||Modelis |DFI AK36-EC ||Valdiklių rinkinys (chipset) |VIA KM133 ||Magistralės (FSB) dažnis |100 MHz (200 MHz DDR) ||Magistralės plotis |64 bitai ||Kreipties gylis (IO Queue Deph) |4 ||Atmintis ||Tipas |SDRAM DIMM ||Dažnis |133 MHz ||Moduliai |256 MB 16x(16Mx8) CL3 || |256 MB 8x(32Mx8) CL3 ||Bendras atminties kiekis |512 MB ||Išorinė atmintis ||Magistralė |ATA IDE ||Kaupikliai: ||Pavadinimas |Seagate ST3120026A ||Tipas |Kietasis diskas ||Pozicija |Primary master ||Darbo rėžimas |UDMA5 (100 MB/s) ||Apsukos (per minutę) |7200 ||Talpa |120GB ||Vidinė spartinančioji atmintinė |8MB || ||Pavadinimas |Seagate ST340810A ||Tipas |Kietasis diskas ||Pozicija |Primary slave ||Darbo rėžimas |UDMA5 (100 MB/s) ||Apsukos (per minutę) |5400 ||Talpa |40GB ||Vidinė spartinančioji atmintinė |2MB || ||Pavadinimas |NEC NR7900 ||Tipas |CDRW ||Pozicija |Secondary Master ||Darbo rėžimas |UDMA3 (33 MB/s) ||Vaizdas ||Magistralė |AGP ||Versija |2.0 ||Rėžimai |x2/x4 (aktyvus x4) … ||Grafinė plokštė |NVIDIA GeForce4 MX-440 SE ||Atmintinės kiekis |64 MB ||Atmintinės dažnis |300 MHz DDR ||Grafinio procesoriaus dažnis |250 MHz |
|Aparatūriškai palaikoma DirectX |7.0 ||versija | ||Garsas ||Modelis |AC’97 (integruota į pagrindinę plokštę) ||Garso kokybė |16 bitų / 44 kHz |Naudota programinė įranga:|Operacinė sistema ||Pavadinimas |Windows 2000 SP4 Advanced Server ||Virtualios atmintinės dydis |1024 MB ||Informacinė ||SiSoftware Sandra Lite |Informacija apie aparatūrinę ir || |programinę įrangą. ||Testavimo ||PassMark BurnInTest Pro 4 |Kritinių kompiuterio apkrovimo || |situacijų simuliacija. ||PCMark2002 |Kompiuterio našumo tyrimas ||Windows Performance Counters |Sistemos našumo parametrų || |registravimas |Testavimo etapaiVirtualioji atmintinė yra tvarkoma operacinės sistemos lygyje, kuri patipagal įvairias aplinkybes reaguoja skirtingai. Ne visos programos yravienodai jautrios procesams vykstantiems virtualioje atmintinėje: jomsvisiškai pakanka fizinės atminties arba jų naudojama virtualios atmintinėskiekis yra labai mažas. Tad vienintelis būdas ištirti virtualios atmintinėsgreitį – ją aktyviai naudoti. Tai lengviausia padaryti vykdant didelį kiekįprogramų ir persijunginėjant tarp jų – taip operacinė sistema priverčiamasuaktyvinti duomenų apykaitą tarp fizinės atminties ir virtualiosios.Rankinis programų paleidimas ir persijunginėjimas tarp jų duoda duomenųtyrimui, tačiau apsunkina tų duomenų palyginimą: dėl to, kad viskas daromarankiniu būdu, net du panašūs įvykiai labai skirsis laiko atžvilgiu irnebus galimybės padaryti net apytikslės išvados. Šiai problemai išspręstilabai pasitarnauja specializuota programinė įranga.Šio virtualiosios atmintinės optimizavimo metodo testavimą sudarė duetapai: 1. Našumo tyrimas esant kritiniam apkrovimui; 2. Našumo tyrimas, panaudojant testavimo paketą, imituojantį kasdieninį darbą.
Našumo tyrimas esant kritiniam apkrovimui
Virtualioji atmintinė yra aktyviausia tada, kai keliomis programomisapdorojami duomenys nebetelpa į fizinę atmintinę. Sukūrus tokia situacijąbūtų gan lengva nustatyti šio optimizavimo metodo naudą, nes sistema būtųpriversta dirbti didžiausiu įmanomu tempu.Tokiai situacijai sukurti buvo panaudota programa PassMark BurnInTest. Jospaskirtis yra stresinių situacijų sukūrimas ir klaidų, įvykusių dėlapkrovimo, paieška. Testavime buvo panaudota tik viena jos funkcijų –
atminties testavimas.Programa buvo leidžiama „Multi-process torture test“ rėžimu, kurissukurdavo 10 individualių procesų, kurių kiekvienas bandydavo išnaudotiapie 50% atminties. Toks testas trukdavo 15 minučių ir jo metu būdavoapdorojama iki 4 GB įvairios informacijos. Kadangi testuojamoji sistematuri tik 512MB fizinės darbinės atminties, tai tokio testo metu aktyviaibuvo naudojama virtualioji atmintinė.Našumo rodikliams fiksuoti buvo panaudoti Windows Performance Counters,išsaugant duomenis į failą kas 1 sekundę.|Panaudoti skaitliukai ||Memory>Page Input/sec |Atminties puslapių skaičius per || |sekundę, nuskaitytas iš pagefile.sys,|| |kai programa pareikalauja duomenų || |nesančių fizinėje atmintyje. T.y || |virtualios atmintinės skaitymo || |greitis. ||Memory>Page Output/sec |Atminties puslapių skaičius per || |sekundę, įrašytas į pagefile.sys, kai|| |fizinėje atmintyje trūksta vietos || |„aktyviems“ duomenims ir reikia || |atlaisvinti vietos. T.y. virtualios || |atmintinės rašymo greitis. ||Paging File>%Usage |Pagefile.sys talpos išnaudojimas %. || |Gerai iliustruoja išnaudotos || |virtualios atmintinės kiekį. |
Testo eiga: 1. Paleidžiami skaitliukai; 2. 25 sekundžių pauzė, kad butų užfiksuota sistemos rimtis; 3. Paleidžiamas PassMark BurnInTest Pro atminties testas 15 minučių; 4. 60 sekundžių pauzė, kad sistema grįžtų į rimties būseną; 5. Išjungiami skaitliukai;
Testas buvo kartojimas 2 kartus: kiekvienam atvejui, kai pagefile.sys yradedikuotame skirsnyje ir kai sisteminiame.
Testo rezultatai:[pic][pic]Kaip matoma iš grafikų, abie…m atvejais pavyko išgauti gan panašiaissituacijas: panašiu laiko momentu abiejuose bandymuose vyksta panašiosoperacijos, tik akivaizdžiai skiriasi operuojamų duomenų greičiai, ko irbuvo siekta.Pats ryškiausias skirtumas yra pačioje pradžioje, vos tik pradėjus veiktiPassMark BurnInTest Pro testui, kai beveik momentaliai virtualiosatmintinės panaudojimus šokteli nuo 10% iki 90% (geltona kreivė). Taipatsitinka todėl, kad PassMark BurnInTest Pro gan greitai pareikalaujadaugiau atminties, nei jos yra (fizinės), todėl operacinė sistema visą
užimtą neaktyvių programų atmintį perkelia į virtualiąją atmintinę (diską).Tai vaizdžiai parodo purpurinės kreivės šoktelėjimas. Šią situaciją galimalaikyti kritinę, nes PassMark BurnInTest Pro skubiai reikalauja atminties,kuri yra užimta, todėl sistema bando išspręsti šią bėdą kiek galimagreičiau. Čia pasimato tyriamojo optimizavimo metodo pranašumas:Įrašymo greitis (galima traktuoti ir kaip fizinės atminties atlaisvinimogreitį) kritiniu momentu: • pagefile.sys sisteminiame skirsnyje – 2156 puslapiai per 1 s; • pagefile.sys dedikuotame skirsnyje – 2643 puslapiai per 1 s.
REZULTATAS: skirtumas net 487 puslapiai per 1 s. kritiniu momentu.
Deje, skirtumas nėra toks akivaizdus kitose grafikų dalyse. Taip yra todėl,kad operacinė sistema susibalansuoja, ir nebesant kritiniai situacijai,duomenų mainai tarp fizinės ir virtualiosios atmintinės vyksta žymiaimažesniais kiekiais ir greičiais.Rašymo į virtualiąją atmintį greitis (likusiose grafiko dalyse) labaipanašus, nes nebėra būtinybės atlaisvinti didelius kiekius atminties – visareikalinga atmintis jau paskirta aktyviems procesams.Su skaitymo greičiu susiformavo kiek kitokia padėtis. Nors vizualiaiskaitymo greičiai grafikuose atrodo panašūs, tačiau taip nėra. Atidžiaupažvelgus, pamatysime, kad beveik visur dedikuoto skirsnio virtualiojiatmintis lenkia sisteminio skirsnio virtualiąją atmintį. Dėl procesųnestabilumo šio skirtumo skaitiniu pavidalu išskirti neverta.
IŠVADOS:Didžiausias nauda panaudojus šį optimizavimo metodą, juntama kritiniaismomentais, kai skubiai reikia atlaisvinti/sugrąžinti atmintį. Vartotojasšią naudą pajus: • Trumpesniu didelių programų įsikrovimo laiku (greičiau atlaisvinama reikalinga atmintis); • Mažesnėmis pauzėmis persijunginėjant tarp programų (suaktyvintos programos greičiau atgaus atmintį išsaugotą diske).
Našumo tyrimas imituojant kasdieninį darbą
Kasdieninį darbą sunku imituoti taip, kad vėliau būtų galima gautipalyginamus rezultatus. Tam tikslui yra sukurtos tokios programos, kaipPCMark2002. Ši programa imituoja paprasto vartotojo dažniausiai atliekamusveiksmus neperžengiant proto ribų.
PCMark2002 testuoja: • Procesoriaus našumą; • Atminties našumą; • Išorinės atminties (diskų našumą); • Grafinės sistemos našumą;
Į PCMark2002 testus įtrauktos tokios funkcijos kaip paveikslėliosuspaudimas JPEG, formatu, didelių failų kūrimas, skaičių operavimas,darbas su vaizdu, darbas su dideliais failais ir panašiai.Baigus testavimą programa parodo rezultatus, kurie atskyrai įvertinaprocesorių, atmintį, diską.
PCMark2002 buvo leidžiama du kartus: abiem atvejais kai pagefile.sys buvodedikuotame skirsnyje ir kai sisteminiame.
Rezultatai:
|pagefiles.sys sisteminiame skirsnyje ||Procesoriaus įvertinimas |2758 ||Atminties įvertinimas |1718 ||Kietojo disko įvertinimas |702 ||pagefiles.sys dedikuotame skirsnyje ||Procesoriaus įvertinimas |2803 ||Atminties įvertinimas |1756 ||Kietojo disko įvertinimas … |713 |
Šio testo rezultatai pateikia dar didesnį siurprizą. Bandymų metu skyrėsitik pagefile.sys failo vieta, dėl to planuojamas buvo tik atmintiesįvertinimo pagerėjimas, tačiau kaip matome iš rezultatų, pagerėjo ne tikatminties, bet ir visos sistemos našumas.
IŠVADA: Optimizavus virtualiąją atmintinę, pagerėja visos sistemos našumas.