HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Virtuális memória használat mérése szkriptből


Példaprogram letöltése

2464 bájt

Főleg szervereknél érdekes, hogy mennyi a virtuális memória (lapozófájl) használata. Amikor nem elegendő már a gépbe helyezett fizikai memória (RAM) az operációs rendszer a merevlemez egy területét használja úgy, mintha memória lenne. Ez nyilván sokkal lassúbb, de lehetővé teszi memóriaigényes alkalmazások futtatását. Egy szervernél azonban jelentősen befolyásolja a kiszolgálás sebességét. Alábbi szkriptünkkel bemutatunk egy példát a virtuális memória használatának és egyéb paramétereinek meghatározására.

Cikkünkhöz mellékeltük az alábbi szkriptet "PageFileProp.vbs" néven. Futtatása után megjelenít egy ablakot, ahol kiírja a rendszerben található virtuális memóriára vonatkozó adatokat.
Amellett, hogy egyre gyorsabb merevlemezeket gyártanak, a memóriák sebessége is növekszik. Amíg a háttértárolók működési elve és gyártástechnológiája nem változik meg gyökeresen, megmarad a szakadék e két hardvereszköz adatátviteli sebessége között. Egy szerver operációs rendszere nem csak a járulékos szolgáltatásokban tér el egy munkaállomástól, hanem a memóriakezelésében is. Vegyünk példának egy webszervert: minden egyes kapcsolat, ami az Internetről befut, memóriát igényel. Ha csak néhány kB-ot is, de mindenképpen számolnunk kell vele. Ezer kapcsolatnál a néhány kB-ból több MB lesz és akkor még nem beszéltünk a honlapok mögött megbúvó adatbázisszerverről, ami szintén ezer példányban szolgálja ki a kéréseket. A szerver működése addig gyors, amíg minden információt a RAM-ban tárol és innen szolgál ki. Amint ez elfogy és használni kell a merevlemez virtuális memóriáját, az egész kiszolgálás sebessége jelentősen lelassul. Két ok miatt nem jó a gép RAM-ját a maximális méretig bővíteni: drága a jó minőségű memória, illetve a felesleges, soha ki nem használt memória blokkok is erőforrást igényelnek. Legjobb megtalálni azt a mennyiséget, aminél még elegendő, de nem túl sok RAM áll rendelkezésre. Hogy tudjuk meg ezt a számot? Mérjük a virtuális memória használatot. Erre a célra használhatunk teljesítményszámláló objektumokat, de mérhetjük saját programjainkból is. Utóbbi rugalmasabb megvalósíthatóságot tesz lehetővé. Nézzük meg a következő példa szkriptet:
Tároljuk el egy változóba az ellenőrizendő számítógép nevét. A pont (.) a helyi gépet jelenti.
strComputer = "."
A "Text" változóba fogjuk összegyűjteni a különböző tulajdonságokat és értékeiket.
Text = ""
Kapcsolatot teremtünk a WMI (Windows Management Instrumentation) szolgáltatással az aktuálisan bejelentkezett felhasználó hitelesítési adataival. Mindezt tesszük az "strComputer" változó által meghatározott gép \root\cimv2 névterében.
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
A virtuális memóriáról több rendszerfüggvény is tárol adatokat. Közülük nekünk most a "Win32_PageFileUsage"-ra van szükségünk. Kérjük le az összes tulajdonságát.
Set colPageFiles = objWMIService.ExecQuery ("Select * from Win32_PageFileUsage")
Következhet az eredmények feldolgozása.
For each objPageFile in colPageFiles
A visszakapott értékeket hozzáadjuk a "Text" változóhoz. A virtuális memóriának van egy minimális és maximális merevlemez foglalása. Annak ellenére, hogy az aktuális használat lehet, hogy csak néhány MN, a lefoglalt minimum lehet több száz MB is.
 Text = Text & "Minimális méret: "& vbTab &  objPageFile.AllocatedBaseSize & " MB" & Chr(13) & chr(10)
Most következik a legfontosabb érték: az aktuális használat. Tulajdonképpen elegendő ezt figyelni, a többi csak járulékos paraméter. A "CurrentUsage" tulajdonság MB-ban adja vissza az értéket.
 Text = Text & "Aktuális használat: "& vbTab &  objPageFile.CurrentUsage & " MB" & Chr(13) & chr(10)
Ha nem akarjuk állandóan - vagy bizonyos időközönként - ellenőrizni az aktuális használatot, elegendő a gép bekapcsolása óta eltelt időszak legmagasabb értékét kiolvasni.
 Text = Text & "Csúcsérték: " & vbTab & objPageFile.PeakUsage & " MB" & Chr(13) & chr(10)
Létezik az objektumnak egy "Description" tulajdonsága, ami általában a virtuális memóriát jelentő fájl nevét és elérési útját tárolja.
 Text = Text & "Megjegyzés: " & vbTab &  objPageFile.Description & Chr(13) & chr(10)
Kinyerhetünk olyan érdekes információkat, mint a fájl telepítésének dátuma.
 Text = Text & "Telepítés dátuma: " & vbTab &  objPageFile.InstallDate & Chr(13) & chr(10)
A státusz információt nem minden esetben lehet kiolvasni. Ha a SMART funkció engedélyezve van a merevlemezen, kisebb az esély, hogy kapunk valamit.
 Text = Text & "Státusz: " & vbTab &  objPageFile.Status & Chr(13) & chr(10)
Ha a "TempPageFile" tulajdonság értéke true, akkor a szóban forgó memóriafájlt átmeneti jelleggel hozta létre az operációs rendszer. Itt sem mindig ad vissza a függvény értéket.
 Text = Text & "Átmeneti: " & vbTab &  objPageFile.TempPageFile & Chr(13) & chr(10)
Végére maradt a fájl elérési útja és neve. Megegyezik a "Description" tulajdonság tartalmával.
 Text = Text & "Elérési útvonal: " & vbTab &  objPageFile.Name & Chr(13) & chr(10)
 Text = Text & "------------------" & Chr(13) & chr(10)
Next
Wscript.Echo Text
A fenti sorokban található "vbTab" parancs egy tabulátor jelet szúr be a szövegbe. Ha több köteten is található virtuális memória, a FOR ciklusnak köszönhetően mindegyikről kapunk információt.

Cikksorozat

#IDKategóriaCikk címeSorozat
2668WindowsQoS - Quality of Service bemutatása1. rész
2677WindowsQoS - Quality of Service bemutatása2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2002 évkönyv 754. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |