|
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
|
|