Nibiru honlapja
Egy csepp Igazság

 

 


Veritas Vincit!

Honlapom folyamatosan
építés alatt. (v 0.4.55)

Nyitóoldal, változásokInformatikaPolitika, közélet Magyar SzívvelEgészségSzabadidő, hobbiTudományEgyéb írások

Informatika - Teljesítmény optimalizálás - perfmon.exe               v.1.02   Frissítés: 2007.06.20

Barátaim oldalai

Lassú a computered?
Teljesítmény optimalizálás és szűk keresztmetszetek (bottleneck)
keresése a számítógépünkön a perfmon.exe segítségével


Miért "bottleneck"?

Az angol bottleneck kifejezés a palack nyakát jelenti. Minél vékonyabb egy palack nyaka, annál lassabban folyik ki rajta a benne lévő folyadék. Az angol nyelvben ezt a találó kifejezést használják a "szűk keresztmetszet" megjelölésére.

A perfmon.exe

Sokan küszködnek otthon olyan gépekkel, melyekben az alkatrészek nem megfelelően vannak összeválogatva, és a valahol megbúvó szűk keresztmetszet miatt nem képesek kihozni a gépükből azt a teljesítményt amire elvileg képes lenne. Bár egy kiszolgáló esetében a bottleneck megtalálása sokkal fontosabb, a  munkaállomásoknál sem elhanyagolható szempont, hogy ha már az ember költ arra a nyamvadt gépre, akkor úgy költsön, hogy egyáltalán érdemes legyen. Ha valaki új gépet állít össze, akkor kövesse az útmutatómat. Régebbi gép bővítése, vagy teljesítmény optimalizálás kapcsán mindenki figyelmébe ajánlom a Windows XP teljesítményfigyelőjét! Ez egy beépített programocska. A Start-Futtatás sorból indíthatjuk el, a neve: perfmon.exe.  A legfontosabb számlálókat a program rögtön mutatja:
 
Pages/sec
= mozgatott lapok másodpercenként
Average Disk Queue Length = a lemezvezérlő várólistájának átlagos hossza
%Processor Time = a processzor foglaltsága %-ban megadva

A szűk keresztmetszetek a RAM (fizikai memória) , a HDD (merevlemez) és/vagy a vezérlője, a processzor, vagy a videókártya elégtelensége okán jelentkeznek. Szerverek esetében ehhez még hozzájön a hálózat, mint szűk keresztmetszet, ezt azonban itt most nem tárgyalom, mert a munkaállomásokat nem érinti. Akinek az kell, az megtalálja a szükséges számlálókat. A többi esetben ellenben megemlítem az XP és a 2003 közötti különbségeket.

Ezen az oldalon a perfmon.exe -ben található, a szűk keresztmetszetek megtalálásához szükséges legfontosabb számlálókat ismertetem.

A számlálók hozzáadása, tesztelés

A teljesítményfigyelő grafikonjára jobbkattintással, vagy a grafikonok fölötti gombsor "+" jelű gombjának megnyomásável adhatunk hozzá új számlálót.
(Add Counters, vagy Win2003 esetében Add > New Counter = Számláló hozzáadása)
A számlálók elnevezését angolul használom a szövegben. A magyar XP teljesítményszámlálójában alkalmazott "ferdítéseket" feltüntetem, de tudni kell, hogy azok néhány esetben csak részben, vagy belemagyarázva fedik az angol kifejezést. :(

Egy gép teszteléséhez értelemszerűen nem elegendő pusztán elindítani a teljesítményfigyelőt és elővarázsolni belőle a szükséges számlálókat. Amikor ezt megtettük, indítsuk el, és kezdjük nyúzni azt az alkalmazást, aminek a futási teljesítményével elégedetlenek voltunk. Ha konkrétan nem volt ilyen, csak a kíváncsiság vezérel bennünket, akkor futtassuk a gépigényesebb alkalmazásainkat és figyeljük meg, mi történik.

A grafikon skáláját a grafinokra jobb egérgommbal kattintva, a tulajdonságok részben tudjuk beállítani, a mérések pedig naplózhatóak. Ez utóbbi lehetőségeit a Forrás fülön találjuk.

Kevés RAM

Lehet akármilyen bivalyerős processzorunk, ha kevés a RAM a gépünkben, az megfojtja az egész működést. A memóriahiányra panaszkodó gép hamar elárulja magát. Az ilyen gép nehezen bootol, működés közben folyton a merevlemezt darálja, jelezvén, hogy RAM helyett a merevlemezt kénytelen használni az oprendszer. Ilyenkor halmozottan jönnek létre a hard page fault típusú laphibák, mely azt jelenti, hogy a kért adat nem található meg a RAM-ban. Ekkor a Windows a merevlemezen található page file-hoz (virtuális memóriához) kénytelen fordulni, és onnan kiolvasni amire szüksége van, ami akár százszor több időt is igénybe vehet, mint ha RAM-ból olvasta volna ki ugyanazt.

Számlálók a teljesítményfigyelőben (Memory):

A memória számlálók között fellelhető page faults/sec (laphibák gyakorisága/mp) érték mutatja, hogy másodpercentként hány olyan lap fordult elő, mely a kérés pillanatában nem volt a helyén. Ebben benne vannak a memórián belül áthelyezett (soft page fault) és a virtuális memóriára, azaz a merevlemezre kivezetett lapok is (hard page fault). Ha ez az érték tartósan 5 fölé esik, akkor nyilvánvaló memóriahiányban szenved a rendszerünk. A page faults/sec érték a legjobb támpont, ha memóriahiányra gyanakszunk, mert ez az érték dinamikusan változik. Ha pár alkalmazást megnyitunk, majd anélkül, hogy bármit csinálnánk figyeljük a teljesítményszámlálót, és a page faults/sec érték 5 fölé kerül, akkor szaladjunk a boltba RAM-ot vásárolni.

A következő értékeknél csak akkor vehetjük észre, ha baj van, amennyiben kifejezetten memóriaigényes alkalmazást futtatunk, mint pl. videó anyagok editálása, vagy tömörítése, egyébként szinte mozdulatlanok.

Pages/sec (Mozgatott lapok száma lap/sec) Ez a perfmon.exe egyik alapszámlálója.
Azt jelzi, hogy egy adott pillanatban hány olvasást, vaqy írást hajtott végre a rendszer a merevlemezen olyan lapokkal kapcsolatban, melyek a kérés pillanatában nem voltak a memóriában. Ha ez az érték tartósan 20 körül van, vagy afölé emelkedik, az RAM hiányt jelent. Ennél már egy sima DivX, vagy Xvid AVI futtatása is elég lehet, hogy kimutassa "a foga fehérjét".
  
Available bytes:
(Rendelkezésre álló memória) Ez a számláló elérhető még kilobájtban, és megabájtban is.  Ha ez az érték tartósan a fizikai RAM mennyiségének 5%-a alá esik, az memóriahiányt jelent.

Commited bytes: (Előjegyzett memória) Az összes éppen használt memória = RAM plusz az allokált virtuális memória. Ha ez az érték tartósan magasabb, mint a RAM mennyisége, akkor ez is memóriahiányt jelent.

Pool nonpaged bytes: (Nem lapozható készlet mérete) mutatja a  RAM-nak azt a részét, ami nem swappolható, azaz nem másolható ki a merevlemezre, ha éppen nincsen rá szükség. Ha ennek értéke anélkül növekszik, hogy a gépet közben jelentősebben igénybe vettük volna, az ún. memóriaszivárgást jelez. Ezt okozhatják rosszul megírt programok folyamatai, memória- vagy pipeline hiba is.


Gyenge vas (lassú CPU)

  Ha gyenge a processzorunk, az egyértelműen kimutatható. Elsőre azonban nem biztos, hogy rögtön a CPU-hoz kell nyúlnunk! A CPU-igényes alkalmazásokon kívül ugyanis leggyakrabban a nem elegendő merevlemezhely miatt kialakuló megszakítási igény (interrupt, IRQ) alakíthat ki szűk keresztmetszetet  a CPU-nál. Felesleges CPU terhelést okozhatnak még akár driverek is, amit azért érdemes figyelembe vennünk, mikor a CPU gyengeségére gyanakszunk.

Számlálók a teljesítményfigyelőben (Processor):

% Proc time: Win2003-nál ez értelemszerűen: Proc % usage.
(A processzor kihasználtsága %) A perfmon.exe egyik alapszámlálója. A magyar ferdítéshez képest nem kihasználtságról, hanem foglaltságról van szó. Apró, de lényeges különbség. Ez az érték a processzor idejének foglaltsága %-ban megadva. Minél alacsonyabb ez az érték, annál jobb, de ha tartósan 85 % fölött van, akkor teljesen világos, hogy a processzor a bottleneck. Ha webkamerával hasznájuk a Skype-ot, akkor ennek az értéke nagyon lényeges. 85% és a fölötti érték esetén ugyanis lehet akármilyen szuper kameránk, akkor sem lesz képes a gép 3-4 kocka/percnél nagyobb sebességű videó továbbítására. Ez azért van, mert a Skype, a többi hasonló alkalmazással ellentétben titkosítja a forgalmat, ami bizony vasat kíván maga alá. Ez az egyetlen olyan érték a processzorra vonatkozóan, amit figyelve azonnal el tudjuk dönteni, hogy szükségünk van-e egy gyorsabb processzorra, vagy Uram bocsá' egy új gépre.

Interrupts/sec: (Megszakítások száma másodpercenként) Ez az érték azért érdekes, mert amikor gyenge CPU-ra panaszkodik valaki, könnyen lehet, hogy nem is az a baj. Indokolatlan CPU terheltség esetén nézzünk erre az értékre. Ha anélkül nő meg, vagy marad magasan, hogy ugyanakkor ne nyúznánk valamivel a gépet, az azt jelenti, hogy valamelyik hardver eszköz nem képes a többivel lépést tartani. Ilyenkor a hibás, vagy elavult eszköz cseréje javasolt, a proci maradhat.

Proc queue length: Ezt a számlálót csak a Windows 200X szerver operációs rendszerek esetében találjuk meg, (XP-nél nem) de a témához tartozik. Értéke azt mutatja, hogy hány feldolgozandó szál vár processzoridőre a  proci várólistáján. Ha ez az érték tartósan magasabb 2-nél, akkor erősebb vasra, vagy több processzorra van szükség.

Queue length: Ez a számláló is csak a szerverek esetében jelenik meg. A feladatokra, pl. megszakításra várakozást mutatja. Ha az értéke nagyobb mint 2, akkor alul vagyunk méretezve proci szempontjából.


Merevlemez bottleneck

Azon programok esetében, melyek valamilyen okból rendszeresen a merevlemezhez fordulnak, problémát jelenthetnek a merevlemez gyenge paraméterei, annak alacsony sebessége. (elérési idő, olvasási és irási idők, stb) Mielőtt azonban kidobnánk a régi merevlemezünket emiatt, tegyünk meg néhány dolgot. Először is töredezettség mentesítsünk! Meglepően gyakori, hogy ezt a műveletet nem végzik el a gépek gazdái, közben szegény vinyót szidják, aki persze nem tehet semmiről.
Ne feledjük azt sem, hogy ha kevés a memóriánk, először azt bővítsük, mert a RAM hiánya a Windows-t a merevlemezen futó virtuális memória túlzott használatára kényszeríti.
Azt is nézzünk meg, hogy nincs-e nagyon tele a merevlemezünk. Előfordulhat, hogy idővel egyszerűen csak teletömtük mindenféle szükségtelen dologgal, sosem használt szoftverekkel, és végül nem maradt elegendő hely az operációs rendszer normális működéséhez. Mindig legyen legalább háromszor annyi szabad hely a merevlemezünkön, mint amennyi RAM-mal rendelkezünk. A Windows automatikus beállítás esetén 1,5-3x annyi területet használ a merevlemezből virtuális memória céljára, mint amennyi RAM-unk van. Ha automatikus beállításunk van, és közben telepakoljuk a vinyót, akkor a virtuális memória mennyisége egyre csak csökken, ami egy szint után már komoly teljesítménycsökkenést okoz. Ha esetünkben nem ez a helyzet, akkor jöhet a jó öreg perfmon.exe

Számlálók a teljesítményfigyelőben (Phisical disk / Fizikai lemez):

Average Disk Queue Length:  (A lemezvezérlő várólistájának átlagos hossza)
A perfmon.exe egyik alapszámlálója. Ha ez az érték tartósan 2, vagy afölé esik, az merevlemez bottlenecket jelez. Ha nem egy, hanem több merevlemezen helyezkedik el a rendszer (RAID) akkor annyiszor 2 a határérték, ahány vinyónk van. Ez utóbbi viszont többnyire csak szevereknél lényeges.

%HDD time:
(Lemezmeghajtó kihasználtsága %)
Ha ez az érték 100% közelében jár folyamatosan, az disk-bottlenecket jelent. (Ha tartósan 60% körül van az érték folyamatosan, miközben az Average Disk Que Lenghth érték nem megy 2 fölé, akkor az a lemezvezérlő I/O hibájára, vagy lassúságára utal. Ilyen viszont majdnem kizárólag szervereknél fordulhat elő.)

Currenct Disk Queue Length: (Lemezvárólista jelenlegi hossza) Hasonlóan a már taglalt Processor Queue Length-hez, ez az érték azt mutatja meg, hogy hány írás-olvasási művelet vár a merevlemezre. Ha az értéke tartósan 2 vagy a fölött van, akkor lassú a merevlemezünk a rendszer többi részéhez képest. Ellentétben a proc queue lenght-el ez az érték benne van a Windows XP-ben is. A várólistát még 3 számlálóval is figyelhetjük, de ez a legfontosabb a számunkra.

Avg. Bytes/Tranfer: (Átlagos átvitt adatmennyiség) Megmutatja, hogy átlagban mennyi adat képes mozogni egyetlen írási, vagy olvasási művelet alatt. Ha ez túl alacsony, az elavult merevlemezt jelez, vagy hogy a rendszer (a gép) valamiért nem képes feldogozni többet, azaz a működés nem eléggé hatékony. Okozhatja gyenge merevlemez-vezérlő is. Ez az érték szorosan összefügg a disk bytes/sec értékkel.

Disk Bytes/sec: (Átviteli sebesség) Megmutatja, hogy mennyi adatmozgás történik egy másodpercre vetítve. Ha ez túl alacsony, akkor a merevlemez írási és olvasási sebessége elégtelen. (Létezik számláló külön az olvasási és írási sebességre is, ha csak arra van szükségünk.)

%FreeSpace: (Szabad hely %) Ez a számláló nem a phisical disk (fizikai lemez) hanem a logical disk (logikai lemez) objektum alól hívható elő. Egy lemez adott partícióján szabadon lévő területet mutatja. Ha ez túl alacsony, az számos problémát okozhat. Ajánlott a merevlemezről törölni a szükségtelen fájlokat, szoftvereket. Ha ez nem elegendő,  áthelyezhetjük a virtuális memóriát egy másik merevlemezre, hogy ne foglalja a helyet, vagy kikapcsolhatjuk a rendszervisszaállítás szolgáltatást (csak végső esetben ajánlott)  amivel helyet szabadítunk föl.

A lapozófile-t azaz a virtuális memóriát érdemes mindig a gépben lévő leggyorsabb vinyón, annak is egy olyan partícióján elhelyezni, melyen mindig van elegendő hely ahhoz, hogy ne kelljen magát helyhiány miatt összepasszírozni. Azt viszont tudni kell hozzá, hogy ha a virtuális memória nem a rendszerpartíción fut, akkor egy esetleges üzemzavar esetén bekövetkezett kék halál kapcsán a memory dump nem fog működni, azaz ami a memóriában van a kék halál pillanatában arra véglegesen keresztet vethetünk. Ez azonban ne tartson vissza bennünket, mert egyrészt még memory dump esetén is többnyire elvész a munkánk, másrészt ha jó a hardver, akkor nem fenyeget bennünket a kék halál sem.

Ha lassú a merevlemezünk, vehetünk egy újabbat és gyorsabbat, csinálhatunk RAID-et, vagy megoldhatjuk a problémát egy gyorsabb vezérlővel.


A videókártya, mint szűk keresztmetszet.

Ez majdnem kizárólag a játékosokat érinti. A teljesítményfigyelő segítségével a videó esetleges szűk keresztmetszete nem mérhető. Ennek a beazonosítására azonban számos más eszköz létezik. A  gépigényesebb, elsősorban első személyes lövöldözős (FPS= First Person Shooter) játékokban pl. a kocka/másodperc értéket meg tudjuk jeleníteni a sarokban, így láthatjuk, hogy a videókártya terhelésének fokozásával hogyan változik ez az érték. Ezekben a játékokban a megjelenítésre vonatkozó paramétereket egyénileg be lehet állítani. Ha a kedvenc játékunk 50-60 fps-sel (kocka/másodperc) megy akkor nyugodtan hátradőlhetünk. 

  A videókártya alacsony teljesítménye megölheti a reményét annak, hogy megfelelő sebességgel futtassunk rajta grafikus alkalmazásokat, melyek manapság főleg játékok szoktak lenni. Ha ez a helyzet, nézzünk körül a játékosok fórumaiban, és kérdezzük  meg hogy melyik videókártya volna az ideális egy bizonyos játékhoz. A választék ugyanis annak ellenére óriási, hogy a videókártyákba való chipek ma már szinte kizárólag két gyártótól származnak, az ATI-tól és az NVidiától. A 3D-s teljesítményt nem igénylő irodai gépekben a célnak megfelelő integrált eszközök találhatóak, melyek azokban rendkívül messze elmaradnak még a középkategóriás videókártyáktól is.


Nibiru. 2006.08.02

v.1.02   Frissítés: 2007.06.20


 

                                       Copyright (c) Nibiru 1997-2011 - Minden jog fenntartva. A felhasználási feltételekről itt olvashatsz.