nibiru.hu

 

 


Veritas Vincit!

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

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 keresztmetszetek 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. Már egy sima DivX, vagy Xvid AVI futtatása is elég lehet, hogy kibukjon ez a fajta bottleneck.
  
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 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 a virtuális memóriát automatikusan kezeli a rendszer, de közben telepakoljuk a vinyót, akkor a virtuális memória mennyisége egyre csak csökken és csökken, ami egy szint után már komoly teljesítménycsökkenéshez vezet. Ha esetünkben mégsem 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.hu  - Minden jog fenntartva. A felhasználási feltételekről itt olvashatsz.