Postupy při sledování výkonu

Transkript

Postupy při sledování výkonu
4
kapitola
Postupy
p‚i sledování
výkonu
4 44
‰
Obsah kapitoly:
4.1 Jaké bítabe protokolovat..................................................................................... 301
4.2 Postupy denního sledování server.................................................................... 302
4.3 Práce s repozitá‚em SQL Serveru........................................................................ 358
4.4 Plánování kapacity a trendy................................................................................ 371
4.5 Scéná‚e protokolování bítab ............................................................................. 378
4.6 Fešení potíží se sberem bítab............................................................................ 385
4.7 Obnovení poškozených výkonnostních bítab.................................................... 388
300
Kapitola 4 – Postupy p„i sledování výkonu
Pravidelné postupy sledování výkonu, které budete implementovat, musí sloužit více ú²el¾m, mezi nµž pat½í následující:
„ Detekování a diagnostika výkonnostních potíží,
„ ovµ½ení napl¹ování odsouhlasených úrovní služeb,
„ podpora aktivních iniciativ plánování kapacity, které o²ekávají a ½eší hrozící nedostatky prost½edk¾, ještµ než ovlivní úrove¹ služeb.
V této kapitole jsou popsány ukázkové procedury sledování výkonu, jež vám pomohou s dosažením tµchto d¾ležitých cíl¾. Ukázkové postupy, které se zamµ½ují na
snadno implementovatelný proces denního sbµru výkonnostních údaj¾, jsou zevšeobecnµny a vyhoví tak podnikovým konfiguracím malého i vµtšího rozsahu. Do ur²ité míry si je ale budete muset p½izp¾sobit, aby vyhovovaly vašemu konkrétnímu
prost½edí.
Ukázkové procedury vám rovnµž pomohou za²ít s diagnostikou bµžných výkonnostních problém¾ server¾. Další doporu²ení se budou týkat výkonnostních výstrah, hlášení pro správu a plánování kapacity.
Poslední oddíl této kapitoly dokumentuje postupy, které byste mµli využít, když
máte nµjaký problém se shromažÅováním ur²itých výkonnostních statistik pomocí
nástroje Sledování výkonu. Kup½íkladu aplikace, které instalují a odistalovávají výkonnostní ²íta²e, ob²as postupují nesprávnµ – v takovém p½ípadµ m¾žete k obnovení infrastruktury výkonnostních ²íta²¾ využít zde popisované postupy. Tím
zajistíte, že Sledování výkonu bude správnµ hlásit výkonnostní statistiky.
Ukázkové procedury v této kapitole jsou vytvo½eny tak, abyste mohli p½edvídat
r¾zné obvyklé výkonnostní potíže. Využívají automatizované nástroje p½íkazového
½ádku Log Manager a Relog popisované v kapitole 2, „Nástroje sledování výkonu“.
Log Manager a Relog vám pomohou protokolovat ²íta²e z lokálního po²íta²e na
místní disk a zjišÆovat nejd¾ležitµjší výkonnostní ²íta²e, jak je zd¾raznila kapitola 3,
„Mµ½ení výkonu serveru“.
Ukázkové automatizované procedury vám umožní detekovat a odhalovat ½adu problém¾ s výkonností. Využívají na pozadí bµžící relace shromažÅování dat – data
pak m¾žete bez ²asového omezení analyzovat po hlášení nµjaké potíže. Doporu²ované množství dat získávané nestálým denním monitorováním výkonu však nemusí vždy odpovídat pot½ebám ½ešení každého výkonnostního problému. Ob²as
budete muset tyto procedury sbµru dat na pozadí rozší½it o zamµ½ené monitorování
v reálném ²ase. Sledování v reálném ²ase používejte, pot½ebujete-li získávat detailnµjší údaje o konkrétních situacích.
DalöÌ informace »asto nenÌ v˘bec jednoduchÈ pokouöet se o diagnostiku nÏjakÈho komplexnÏjöÌho v˝konnostnÌho problÈmu. JeötÏ obtÌûnÏjöÌ je snaûit se odhalit sloûitou potÌû s v˝konem v re·lnÈm Ëase prost¯ednictvÌm n·stroje Sledov·nÌ systÈmu. NevÌte-li p¯esnÏ, co
vlastnÏ hled·te, a nenÌ-li problÈm trvalejöÌho r·zu, m˘ûe b˝t obtÌûnÏ pracovat se Sledov·nÌm
systÈmu v re·lnÈm Ëase a urËovat p¯ÌËinu danÈho problÈmu. V relaci monitorov·nÌ v re·lnÈm
Ëase m˘ûe b˝t zapot¯ebÌ sledovat a analyzovat tolik ËÌtaˢ a jejich instancÌ, ûe problÈm zmizÌ
d¯Ìve, neû jej dok·ûete identifikovat. Diagnostika problÈm˘ je zamϯenÌm kapitoly 5, ÑÿeöenÌ potÌûÌ s v˝konemî.
Jaké dítade protokolovat
301
4.1 Jaké dítade protokolovat
Procedura denního monitorování výkonu, která vám má efektivnµ pomáhat p½i detekování, diagnostikování a ½ešení bµžných výkonnostních potíží, musí shromažÅovat velké množství užite²ných výkonnostních dat, která pak m¾žete editovat,
sumarizovat a používat v hlášení pro správu a p½i plánování kapacity. První rozhodnutí, které budete muset u²init, souvisí s volbou pravidelnµ zaznamenávaných
výkonnostních ²íta²¾ z tµch mnoha nabízených.
Denní monitorování výkonu, v jehož rámci se vytvá½ejí relace protokolování ²íta²¾
na pozadí, jež trvale sbírají výkonnostní data, vám dovoluje zjišÆovat a ½ešit obvyklé
potíže s výkonem, jak se za²nou projevovat. Jelikož není možné p½edem vµdµt, jaké klí²ové prost½edky stroje s výkonnostními potížemi jsou nasycené, budete v reálném svµtµ shromažÅovat výkonnostní data všech klí²ových prost½edk¾, jakými
jsou procesor, pamµÆ, disk a síÆ. Nar¾stající dodate²né náklady však na bµžném po²íta²i se systémem Microsoft Windows Server 2003 neumož¹ují neustále sbírat
všechny dostupné indikátory výkonu všech prost½edk¾ p½i všech pracovních zatíženích. Proto musíte selektivnµ vybrat data, jež budete sbírat, a stanovit si, jak ²asto je
budete sbírat. Je d¾ležité dosáhnout rovnováhy mezi množstvím shromažÅovaných
a analyzovaných údaj¾ a náklady souvisejícími s tímto procesem.
Abyste dokázali odhalit a stanovit bµžné výkonnostní problémy související s p½etíženými prost½edky, musíte shromažÅovat široký rozsah detailních výkonnostních
údaj¾ o využití procesoru, pamµti, disku a sítµ a také o pracovních zatíženích, jež
tyto prost½edky konzumují. Takové údaje musí zahrnovat všechny ²íta²e výkonu
indikující chybové stavy, zejména chyby vyplývající z nedostatku interních prost½edk¾. Tato kapitola popisuje nµkteré z klí²ových indikátor¾ chyb, které byste
mµli sledovat.
Hlášení pro správu
Hlášení pro správu na úrovni služeb i v dalších formách obvykle vyžaduje mnohem
ménµ podrobných údaj¾. Proto je k hlášení pro správu úrove¹ detail¾, zajišÆovaná
postupy denního sledování výkonu vhodnými k detekci a ½ešení bµžných výkonnostních potíží, více než dostate²ná. Ìasto platí, že chcete-li sestavit postupy hlášení pro správy efektivnµ škálovatelné ve velké organizaci, je vhodné sumarizovat
nejprve denní protokoly výkonnostních ²íta²¾ a pak teprve sestavit kone²nou zprávu. Sumarizace denních protokol¾ ²íta²¾ omezí velikost soubor¾, které je zapot½ebí
p½enášet p½es síÆ, a zlepší efektivitu postup¾ hlášení.
Hlášení na úrovni služeb se zamµ½ují na spot½ebu prost½edk¾ a mµ½ení zatížení, jako jsou p½ihlašování, relace, rychlost transakcí a p½ijaté zprávy. Hlášení na úrovni
služeb ²asto zajímají více profesionálních správc¾ systému, z nichž mnozí nemusejí
být detailnµ obeznámeni se zp¾sobem, jakým funguje systém Windows Server 2003
a jeho hlavní serverové aplikace. Je proto d¾ležité vyhnout se ve zprávách pro
správu, zamµ½ených na širší cílovou skupinu, p½íliš mnoha technickým detail¾m.
Hlášení na úrovni služeb se musí místo toho zamµ½it na nµkolik klí²ových ukazatel¾ využívání prost½edk¾ a zatížení, které jsou dob½e známé a široce chápané.
Postupy
pdi sledování
výkonu
Sledování výkonu na pozadí
302
Kapitola 4 – Postupy p„i sledování výkonu
Plánování kapacity
Abyste mohli implementovat aktivní plánování kapacity, v jehož rámci identifikujete
trendy r¾stu pracovního zatížení, spolehlivµ p½edvídáte nár¾st pracovního zatížení
a odhadujete budoucí požadavky, musíte sledovat a shromažÅovat historické údaje
o úrovních využívání a spot½eby základních prost½edk¾ v ²ase. To z½ejmµ bude zapot½ebí jen u malého po²tu klí²ových po²íta²ových komponent, jako je procesor,
síÆ a disk, pop½ípadµ i pro nµkolik zásadních aplikací. Data protokol¾ ²íta²¾, sloužící jako základ proces¾ hlášení pro správu, se znovu budou editovat a sumarizovat, aby je bylo možné využít pro plánování kapacity. V tomto okamžiku se d¾raz
p½enáší na sestavení historických záznam¾ dat využívání prost½edk¾ po²íta²¾.
Budoucnost dokážete s rozumnou p½esností p½edpovµdµt pouze po zaznamenání
zna²ného množství historických údaj¾ zachycujících vzory r¾stu pracovního zatížení. Kup½íkladu na každou jednotku ²asu, u které chcete p½edpovµdµt budoucí r¾st
pracovního zatížení, budete pot½ebovat historický záznam roven minimálnµ dvojnásobku p½íslušného ²asového období. Plánování kapacity tak vyžaduje, abyste zaznamenávali využívání prost½edk¾ v delším ²asovém horizontu. Vµtšinou platí, že
rozumnµ p½esné odhady kapacitních požadavk¾, které budou podkladem pro každoro²ní rozpo²et, lze provést až po nashromáždµní dat odpovídajících dvµma nebo
t½em rok¾m provozu systému.
P½i plánování budoucích kapacitních požadavk¾ mají ²asto zásadní dopad sezónní
vzory ²innosti. K sezónním promµnám dochází v mnoha produk²ních pracovních
zatíženích bµžnµ v ro²ních nebo mµsí²ních cyklech. Kup½íkladu na konci mµsíce
nebo roku dochází ²asto ke zvýšeným tok¾m zpracování finan²ních transakcí. Budete muset zajistit po²íta²ovou kapacitu dosta²ující ke zvládnutí takových špi²ek na
konci mµsíc¾ nebo rok¾. V maloobchodních organizacích z½ejmµ odhalíte vzory
nákup¾ odpovídající r¾zným svátk¾m, kdy lze o²ekávat mnohem vyšší objem
transakcí. Není ani zapot½ebí zd¾raz¹ovat, že i tyto špi²kové rychlosti transakcí je
zapot½ebí nµjakým zp¾sobem zvládnout. Faktory sezónních promµn v požadavcích
na pracovní zatížení budete moci zohlednit až poté, co nashromáždíte dostate²ná
historická data odrážející více cykl¾ takových sezónních ²inností.
4.2 Postupy denního sledování server‘
Tento oddíl se detailnµ zabývá modelem procedury denního monitorování výkonu,
který je sou²ástí komplexního programu aktivní správy výkonu. Tato procedura zahrnuje následující denní ²innosti:
„ Automatický sbµr hloubkového pohledu na výkon systému prost½ednictvím protokol¾ ²íta²¾,
„ monitorování klí²ových indikátor¾ chyb systému a serverových aplikací,
„ nastavení výstrah, jež automaticky spustí sbµr detailních, diagnostických protokol¾ ²íta²¾,
„ vývoj hlášení klí²ových výkonnostních metrik, které si mohou prohlédnout p½íslušní lidé ve vaší organizaci,
Postupy denního sledování server‘
303
„ zachovávání sumarizovaných výkonnostních statistik v rámci podpory plánování
kapacity,
„ správa protokol¾ ²íta²¾, které se v rámci tµchto postup¾ vytvá½ejí automaticky.
Pamatujte, že zde popisované modelové postupy a procedury sledování výkonu
bude na základnµ požadavk¾ specifických vašemu sídlu zapot½ebí upravit pro použití ve vašem prost½edí. Každá organizace IT má kup½íkladu jiné požadavky na hlášení pro správu, které mají dopad na typ a množství generovaných zpráv a dat
v nich zahrnutých. Zde uvedené postupy a procedury p½edstavují dobrý po²áte²ní
bod pro za²átek tvorby funkcí efektivní správy výkonu ve vaší organizaci IT.
Denní protokoly dítad‘
P½íkaz uvedený ve výpisu 4.1 zavádí proceduru denního protokolování výkonu
s využitím souboru nastavení, který definuje sbírané výkonnostní ²íta²e. (Ukázkový
soubor nastavení je popsán dále.) P½íkaz se také odkazuje na p½íkazový soubor vykonávaný p½i uzavírání soubor¾ denních protokol¾ ²íta²¾. (Ukázkový skript zajišÆující typické zpracování je rovnµž ilustrován dále.)
VÝPIS 4.1: UstavenÌ dennÌho protokolov·nÌ v˝konu
logman create counter automaticky_DenniProtokol
-cf "c:\perflogs\zakladni-soubor-nastaveni-citacu.txt"
-o C:\Perflogs\Dnes\ZakladniDenniProtokol -b 1.1.2004 00:00:00
-cnf 24:00:00 -si 1:00 -f BIN -v mmddhhmm
-rc c:\perflogs\nasledne-zpracovani.vbs
Po vykonání uvedeného p½íkazu bude definovaný protokol ²íta²¾ viditelný a bude
se podobat zobrazení uvedenému na obrázku 4.1. Použijete-li grafické uživatelské
rozhraní tohoto protokolu ²íta²¾, m¾žete si ovµ½it vlastnosti aplikované na zavedení
protokolovací relace, jak je tu ukázáno.
OBRÁZEK 4.1: Vlastnosti používané k ustavení protokolovací relace
Jak dokumentuje kapitola 2, „Nástroje sledování výkonu“, utilita Log Manager vám
umož¹uje nakonfigurovat relace sbµru protokolových dat ²íta²¾ na pozadí. Tabulka
4.1 probírá parametry p½íkazu Log Manager použité ve výpisu 4.1 a vysvµtluje jejich
ú²el.
Parametr -v nástroje Log Manager vám umož¹uje generovat jedine²né názvy soubor¾ dennµ vytvá½ených protokol¾ ²íta²¾. Doplnµk snap-in Performance Logs and
Alerts (Výstrahy a protokolování výkonu) podporuje další možnost ozna²ování ver-
Postupy
pdi sledování
výkonu
Prvním krokem monitorování po²íta²¾ se systémem Windows Server 2003 je vytvo½ení automatického protokolování dat pomocí nástroje p½íkazového ½ádku Log Manager (logman).
304
Kapitola 4 – Postupy p„i sledování výkonu
zí soubor¾ specifikující datum ve formátu yyyymmdd. Chcete-li nechat soubory protokol¾ ²íta²¾ automaticky pojmenovávat ve formátu yyyymmdd, m¾žete následnµ využít doplnµk Výkon a ru²nµ zmµnit vlastnosti protokolu tak, aby se k základnímu
názvu souboru p½idalo ozna²ení roku, mµsíce a dne.
TABULKA 4.1: Parametry p¯Ìkazu spr·vce Log Manager
Parametr programu
Log Manager
Vysvgtlení
-cf
"c:\perflogs\zakladnisoubor-nastavenicitacu.txt"
V souboru nastavení jsou specifikovány dítade, jež se mají protokolovat. P„íklad souboru zakladni-soubor-nastaveni-citacu najdete v oddílu „Ukázkový soubor nastavení dítad‘“ této kapitoly.
-b 1.1.2004 00:00:00 cnf 24:00:00
Protokolování iniciuje automaticky protokolovací služba Sledování systému, jakmile je váš podítad restartován. Protokolování
bgží trvale po dobu 24 hodin.
-si 1:00
Vzorky dat se shromažeují jednou za minutu.
-f BIN
Protokolování dat probíhá pr‘bgžng do binárního souboru. Binární formát je využit kv‘li výkonnosti a šet„ení množství spot„ebovávaného diskového prostoru.
-v mmddhhmm
K vytvá„ení jedinedných soubor‘ denních protokol‘ dítad‘ se
používá automatické oznadování verzí.
-rc
c:\perflogs\naslednezpracovani.vbs
Na konci relace protokolování dat se po zav„ení protokolového
souboru spustí urditý skript. Tento skript zajistí správu soubor‘
a další následné zpracování. Takové následné zpracování zahrnuje odstrangní starších kopií soubor‘ protokol‘ dítad‘, jež byly vytvo„eny d„íve, a sumarizaci aktuálního souboru protokolu pro
denní hlášení. P„íklad skriptu následného zpracování najdete
v oddílu „Automatizované zpracování protokol‘ dítad‘“ této kapitoly.
Jakmile se p½esvµd²íte o správném specifikování vytvo½ené relace protokolování ²íta²¾, vydejte p½íkaz uvedený ve výpisu 4.2, kterým spustíte vlastní protokolování dat.
VÝPIS 4.2: SpuötÏnÌ protokolov·nÌ dat
logman start counter automaticky_DenniProtokol
Protokolování místních dítad‘ na lokální disk
Zde doporu²ovaná procedura denního monitorování výkonu generuje protokoly ²íta²¾ obsahující lokální ²íta²e zapisované v binárním formátu na místní disk. Náš
p½íklad zapisuje soubory protokol¾ ²íta²¾ na lokální disk do adresá½e nazvaného
C:\Perflogs\Dnes, vyhoví ale jakákoli jiná rozumná složka na místním disku. Binární formát protokolového souboru se doporu²uje kv¾li své efektivnosti a menším
dodate²ným náklad¾m.
Protokolování místních ²íta²¾ na místní disk vám dovoluje implementovat jednotnou proceduru sledování výkonu na všech po²íta²ích v síti, takže lze tyto procedury škálovat i na nejvµtších serverových konfiguracích bez ohledu na topologii sítµ.
Postupy denního sledování server‘
305
P½i protokolování dat ²íta²¾ na lokální disk musíte spravovat pravidelnµ vytvá½ené
protokolové soubory, aby nespot½ebovávaly nerozumné množství lokálního diskového prostoru. Bez ur²itého zastarávání soubor¾ a ²ištµní mohou dennµ generované protokoly ²íta²¾ zabírat 30 až 100 MB prostoru místního disku vašich server¾
každý den, kdy bµží. V oddílu „Automatizované zpracování protokol¾ ²íta²¾“ najdete ukázkový skript následného zpracování, který k zajištµní takové denní správy
soubor¾ a ²ištµní využívá jazyk Microsoft Visual Basic Scripting Edition (VBScript)
a komponentu Windows Script Host (WSH).
Prost½ednictvím utility p½íkazového ½ádku Relog m¾žete pozdµji p½evést soubory
z binárního formátu na jakoukoli jinou formu. Máte kup½íkladu možnost vytvá½et
souhrnné soubory, které lze p½enášet na konsolida²ní server na síti. Také m¾žete
vytvá½et textové soubory s hodnotami oddµlovanými st½edníky (nebo ²árkami) a ty
dále využívat v programech jako Microsoft Excel, jež dokážou generovat užite²né
a atraktivní grafy. Pomocí nástroje Relog lze také sestavit a udržovat databázi SQL
Serveru konsolidovaných dat protokolování ²íta²¾ z ½ady server¾, která pak poslouží p½i plánování kapacity.
Protokolování na místo sdílené v síti
Namísto generování protokol¾ ²íta²¾ v binárním formátu do složky místního disku
up½ednost¹uje mnoho lidí zapisování protokol¾ ²íta²¾ do nµjaké složky sdílené v síti.
Jelikož m¾že zjednodušit správu soubor¾, je tento p½ístup ²asto preferován. Zvolíte-li
ale tuto metodu, musíte zvážit také dále uvedené vµci, jež mohou ovlivnit škálovatelnost vašich procedur monitorování výkonu na sídlech s vµtším po²tem server¾:
„ Dávejte si pozor na p½etížení sítµ. Spot½ebovává-li váš denní protokol ²íta²¾
50 MB diskového prostoru každý den, což je rozdµleno na 24hodinová období,
p½edstavuje tento objem pouze 600 bajt¾ na server za sekundu dodate²ného zatížení, které musí vaše síÆ zvládnout. P½ibližné zatížení sítµ p½i vzdáleném protokolování dat zjistíte tím zp¾sobem, že znásobíte uvedenou hodnotu po²tem
server¾ zaznamenávajících údaje do téže složky sdílené na síti.
„ Zajistµte, aby vaše relace protokolování ²íta²¾ bµžela pod identifikátorem uživatele s oprávnµním pro p½ístup k dané sdílené síÆové složce. Tento identifikátor
uživatele musí být zárove¹ ²lenem vestavµné skupiny Performance Log Users
(uživatelé protokol¾ výkonu). Chcete-li do relace nástroje Log Manager doplnit
údaje o uživateli, zadejte uživatelské jméno a heslo parametrem -u. Budete-li
Postupy
pdi sledování
výkonu
Zde dokumentované procedury denního sledování výkonu p½edpokládají zapisování protokolovacích dat místních ²íta²¾ do nµjaké složky na lokálním disku, i když
jsou možné i jiné konfigurace. Protokoly ²íta²¾ lze kup½íkladu použít ke sbµru dat
ze vzdálených po²íta²¾. Vzdálený sbµr dat je vhodný v situaci, kdy nemáte k danému vzdálenému po²íta²i fyzický p½ístup. Pak je jednodušší zajišÆovat shromažÅování výkonnostních údaj¾ na jednom centrálním po²íta²i, jehož úkolem je
„vytahovat“ data ²íta²¾ z jednoho nebo více vzdálených stroj¾. Taková procedura
ale už z principu není tak robustní jako lokální bµh protokolování ²íta²¾, protože
potíže se sbµrem dat na kterémkoli ze vzdálených po²íta²¾ mohou mít dopad na
všechny po²íta²e, k jejichž monitorování je centrální proces vytvo½en. Je zapot½ebí
také chápat dopad vzdáleného sledování po²íta²¾ na síÆ. Toto téma je detailnµ probíráno v oddílu „Scéná½e protokolování ²íta²¾“.
306
Kapitola 4 – Postupy p„i sledování výkonu
využívat Výstrahy a protokolování výkonu v konzole Performance Monitor (Sledování výkonu), musíte nastavit parametr Run As (Spustit jako) na kartµ General
(Obecné) vlastností protokolu ²íta²¾.
„ Zajistµte, aby služba Windows Time Service synchronizovala hodiny na všech
serverech, které zapisují soubory protokol¾ ²íta²¾ do sdílené síÆové složky.
DalöÌ informace Popis toho, jak pouûÌvat Ëasovou sluûbu Windows k synchronizaci hodin na
poËÌtaËÌch v sÌti systÈmu Windows Server 2003, najdete v dokumentaci nazvanÈ ÑWindows
Time Service Technical Referenceî umÌstÏnÈ na sÌdle TechNet na adrese http://www.
microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/
W2K3TR_times_intro.asp.
„ Do názv¾ soubor¾ protokol¾ ²íta²¾ zahr¹te také název po²íta²e, abyste mohli
jednoduše zjistit, od kterého z nich shromáždµné údaje pocházejí.
Všechny tyto vµci lze snadno zajistit s využitím skriptu WSH. Kup½íkladu kód VBScriptu z výpisu 4.3 vrací název lokálního po²íta²e v promµnné nazvané PrihlasovaciServer.
VÝPIS 4.3: Identifikace zdrojovÈho poËÌtaËe
Set WshShell = CreateObject("Wscript.Shell")
Set objEnv = WshShell.Environment("Process")
PrihlasovaciServer = objENV("COMPUTERNAME")
Dále m¾žete zkonstruovat název souboru s vloženým názvem lokálního po²íta²e.
Sta²í kód ve výpisu 4.4.
VÝPIS 4.4: SestavenÌ n·zvu souboru
Const SlozkaPerflogVcera = "Z:\SdilenyPerflog\Vcera"
Const TypProtokolu = "blg"
Const ParametryProtokolu = " -b 1.1.2004 00:00:00 -cnf 24:00:00 „ & _
„-si 1:00 -f BIN -v mmddhhmm -rc c:\perflogs\nasledne-zpracovani.vbs"
NazevDennihoSouboru = SlozkaPerflogVcera & "\" & PrihlasovaciServer & _
"." & "zakladniDenniProtokol" & "." & TypProtokolu
NazevRelaceProtokolu = PrihlasovaciServer & "-denni-protokol"
Pak m¾žete vykonat nástroj Logman ze skriptu s využitím metody Exec objektu
Shell WSH, jak ukazuje výpis 4.5.
VÝPIS 4.5: Vykon·nÌ n·stroje Logman
Const NazevSouboruNastaveniProtokolu = _
"Z:\SdilenyPerflog\soubor-nastaveni-citacu-protokolu.txt"
prikaz = "logman create counter " & NazevRelaceProtokolu & " -o " & _
NazevDennihoSouboru & " -cf " & NazevSouboruNastaveniProtokolu & " " & _
ParametryProtokolu
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set vykonavanyPrikaz = WshShell.Exec(prikaz )
Wscript.Echo vykonavanyPrikaz.StdOut.ReadAll
Postupy denního sledování server‘
307
Poslední ½ádek skriptu p½ejímá vlastnost ReadAll proudu StdOut, která obsahuje
všechny zprávy vygenerované nástrojem Logman v metodµ Exec objektu Shell. To
vám umož¹uje stanovit, zda se tato utilita vykonala úspµšnµ.
Další souvislosti vykonávání vzdáleného protokolování a zapisování protokol¾ ²íta²¾ na vzdálený disk najdete v oddílu „Scéná½e protokolování ²íta²¾“.
Mg„ení základ‘
Zde doporu²ovaná procedura denního monitorování výkonu je vhodná pro zajištµní sady základních mµ½ení vašeho po²íta²e. Každých p½ibližnµ šest mµsíc¾ si tento
soubor protokol¾ ²íta²¾ zkopírujte a uložte. P½i kopírování protokolu ²íta²¾ využijte nµjaké bezpe²né místo umož¹ující dlouhodobé skladování. Je rovnµž vhodné
uložit si protokol ²íta²¾ základu p½ed každou zásadnµjší zmµnou konfigurace
hardwaru nebo softwaru systému.
Aby byla shromáždµná data ²íta²¾ užite²ná jako sada základních mµ½ení, musíte je
zachovávat v p¾vodním binárním formátu. M¾že být vhodné uložit si tyto sady mµ½ení základ¾ na nµjaké archivní úložištµ v režimu offline, aby mohly s minimálními
náklady z¾stat zachovány nµkolik let.
Použití souboru nastavení dítad‘
Když ke specifikaci ²íta²¾, které chcete shromažÅovat, využijete soubor nastavení
²íta²¾, budete moci snadno vytvá½et a udržovat jednotné postupy sledování výkonu
na všech svých po²íta²ích s podobnými požadavky. M¾žete tak kup½íkladu vytvo½it
soubor nastavení ²íta²¾ využívaný na strojích provozujících Microsoft SQL Server.
Podobnµ budou vaše po²íta²e webových server¾ s aplikacemi Internet Information
Services (IIS) a .NET Framework vyžadovat k dosažení nejlepších výsledk¾ jiný
soubor nastavení ²íta²¾.
Každý vámi vytvá½ený soubor nastavení ²íta²¾ bude z½ejmµ zahrnovat základní
množinu ²íta²¾ hlásících využití principiálních prost½edk¾ po²íta²e – procesor¾,
pamµtí, disk¾ a síÆových rozhraní. Jednoduchý soubor nastavení ²íta²¾, který bude
tvo½it jádro témµ½ každého souboru nastavení ²íta²¾ vytvá½eného pro specifické
aplikace, m¾že vypadat jako ve výpisu 4.6.
VÝPIS 4.6: Soubor nastavenÌ ËÌtaˢ podle jejich origin·lnÌho, anglickÈho oznaËenÌ
\LogicalDisk(*)\% Free Space
\LogicalDisk(*)\Free Megabytes
\PhysicalDisk(*)\*
\Cache\*
Postupy
pdi sledování
výkonu
Data mµ½ení základ¾ jsou vlastnµ detailním výkonnostním profilem vašeho po²íta²e, který si uložíte pro budoucnost, až budete chtít zjistit, co se ve vašem prost½edí
zmµnilo. P½edchozí sadu dat mµ½ení základu m¾žete porovnat s aktuálními údaji
a odhalit tak všechny významnµjší zmµny v pracovním zatížení. Ob²as se malé postupné zmµny, k nimž dochází pozvolna, najednou v ²ase projeví jako významná
zmµna. Budete-li používat jen ²asovµ úzce zamµ½ené výkonnostní hlášení, m¾žete
snadno p½ehlédnout rozsah a mµ½ítko takových postupných zmµn. Jednu z dobrých
možností ocenµní rozsahu podobných zmµn v ²ase p½edstavuje porovnání detail¾
aktuálního prost½edí s jednou z novµjších sad mµ½ení základních údaj¾.
308
Kapitola 4 – Postupy p„i sledování výkonu
\Processor(*)\*
\Memory\*
\System\*
\Network Interface(*)\*
\IPv4\*
\TCPv4\*
LokalizaËnÌ pozn·mka Cesty ËÌtaˢ lze v souboru nastavenÌ ËÌtaˢ specifikovat rovnÏû podle
ËeskÈho oznaËenÌ. V tomto p¯ÌpadÏ se tedy jedn· o n·sledujÌcÌ zad·nÌ:
\Logický disk(*)\% volného místa
\Logický disk(*)\Volné megabajty
\Fyzický disk(*)\*
\Mezipam¹È\*
\Procesor(*)\*
\Pam¹È\*
\Systém\*
\Rozhraní sít¹(*)\*
\IPv4\*
\TCPv4\*
GrafickÈ uûivatelskÈ rozhranÌ modulu V˝kon uv·dÌ ËeskÈ ekvivalenty cest a n·zv˘ ËÌtaˢ.
Výpis 4.6 shromažÅuje statistiku volného prostoru logických disk¾ a všechny ²íta²e
objekt¾ MezipamµÆ, PamµÆ, Rozhraní sítµ, Fyzický disk, Procesor a Systém. Mµ½ení
volného prostoru na logickém disku vám dovoluje stanovit, kdy vašemu systému
soubor¾ dochází kapacita.
Dopln¶ní ³íta³¿ specifických aplikací Soubor nastavení ²íta²¾ z výpisu 4.6 postrádá všechna aplika²nµ specifická výkonnostní data. Tento jednoduchý soubor
nastavení ²íta²¾ lze výraznµ vylepšit doplnµním ²íta²¾ p½idružených aplikacím, které na daném serveru bµží (viz tabulka 4.2).
V zájmu snížení velikosti dennµ generovaných soubor¾ protokol¾ ²íta²¾ nevytvá½ejte jediný soubor nastavení obsahující všechny ²íta²e specifické aplikacím podle tabulky 4.2 a jim p½i½azená data na úrovni proces¾. Místo toho vytvo½te ½adu soubor¾
nastavení specifických jednotlivým aplikacím.
Tip Pokud nevÌte, jakÈ serverovÈ aplikace jsou na urËitÈm poËÌtaËi instalovanÈ a aktivnÌ, pouûijte n·stroj p¯ÌkazovÈho ¯·dku Typeperf popisovan˝ v kapitole 2, ÑN·stroje sledov·nÌ v˝konuî. Ten generuje soubor nastavenÌ uv·dÏjÌcÌ kompletnÌ v˝pis rozö̯en˝ch aplikaËnÌch
ËÌtaˢ, kterÈ lze na danÈm poËÌtaËi sledovat.
TABULKA 4.2: DoplnÏnÌ ËÌtaˢ
Role vašeho podítade Zaznamenávejte dítade z tgchto objekt‘
se systémem Windows
Server 2003
Zaznamenávejte dítade z
tgchto proces‘
Hadid domény
lsass, smss
NTDS
Server vzdáleného p„í- RAS Total, RAS Port
stupu
svchost
Postupy denního sledování server‘
Zaznamenávejte dítade z
tgchto proces‘
Databázový server
SQL Server:General Statistics, SQL sqlserver, sqlagent
Server:Databases, SQL
Server:Buffer Manager, SQL
Server:Cache Manager, SQL
Server:SQL Statistics, SQL
Server:Lock
Webový server
Internet Information Services
Global, FTP Service, Web Service,
Web Service Cache
inetinfo, svchost
Souborový a tiskový
server
Server, Server Work Queues, Print
Queue, NBT Connection
svchost, spoolsv
Terminálový server
Terminal Services, Terminal
Services Session
svchost; tssdis
Server Exchange
store, dsamain
MSExchangeAL, MSExchangeDSAccess
Caches, MSExchangeDSAccess
Contexts, MSExchangeDSAccess
Processes, Epoxy, MSExchangeIS
Mailbox, Database ==> Instances,
MSExchange Transport Store Driver,
MSExchangeIS Transport Driver,
MSExchangeSRS, MSExchange Web
Mail, MSExchangeIMAP4,
MSExchangePOP3, MSExchangeMTA,
MSExchangeMTA Connections, SMTP
Server, SMTP NTFS Store Driver
Aplikadní server
MSMQ Session, MSMQ Service, MSMQ
Queue
dllhost
Ukázkový soubor nastavení ³íta³¿ Na základµ princip¾ uvedených v p½edchozím
oddílu lze pro souborový a tiskový server vytvo½it soubor nastavení ²íta²¾, který
m¾že vypadat jako ukázka ve výpisu 4.7.
VÝPIS 4.7: P¯Ìklad souboru nastavenÌ ËÌtaˢ pro souborov˝ a tiskov˝ server
a) produkt v angli²tinµ:
\LogicalDisk(*)\% Free Space
\LogicalDisk(*)\Free Megabytes
\LogicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(*)\Avg. Disk Queue Length
\PhysicalDisk(*)\Avg. Disk sec/Transfer
\PhysicalDisk(*)\Avg. Disk sec/Read
\PhysicalDisk(*)\Avg. Disk sec/Write
\PhysicalDisk(*)\Disk Transfers/sec
\PhysicalDisk(*)\Disk Reads/sec
\PhysicalDisk(*)\Disk Writes/sec
Postupy
pdi sledování
výkonu
Role vašeho podítade Zaznamenávejte dítade z tgchto objekt‘
se systémem Windows
Server 2003
309
310
Kapitola 4 – Postupy p„i sledování výkonu
\PhysicalDisk(*)\Disk Bytes/sec
\PhysicalDisk(*)\Disk Read Bytes/sec
\PhysicalDisk(*)\Disk Write Bytes/sec
\PhysicalDisk(*)\Avg. Disk Bytes/Transfer
\PhysicalDisk(*)\Avg. Disk Bytes/Read
\PhysicalDisk(*)\Avg. Disk Bytes/Write
\PhysicalDisk(*)\% Idle Time
\PhysicalDisk(*)\Split IO/Sec
\Server\Bytes Total/sec
\Server\Bytes Received/sec
\Server\Bytes Transmitted/sec
\Server\Sessions Timed Out
\Server\Sessions Errored Out
\Server\Sessions Logged Off
\Server\Sessions Forced Off
\Server\Errors Logon
\Server\Errors Access Permissions
\Server\Errors Granted Access
\Server\Errors System
\Server\Blocking Requests Rejected
\Server\Work Item Shortages
\Server\Pool Nonpaged Bytes
\Server\Pool Nonpaged Failures
\Server\Pool Nonpaged Peak
\Server\Pool Paged Bytes
\Server\Pool Paged Failures
\Server Work Queues(*)\Queue Length
\Server Work Queues(*)\Active Threads
\Server Work Queues(*)\Available Threads
\Server Work Queues(*)\Available Work Items
\Server Work Queues(*)\Borrowed Work Items
\Server Work Queues(*)\Work Item Shortages
\Server Work Queues(*)\Current Clients
\Server Work Queues(*)\Bytes Transferred/sec
\Server Work Queues(*)\Total Operations/sec
\Server Work Queues(*)\Context Blocks Queued/sec
\Cache\Data Maps/sec
\Cache\Data Map Hits %
\Cache\Data Map Pins/sec
\Cache\Pin Reads/sec
\Cache\Pin Read Hits %
\Cache\Copy Reads/sec
\Cache\Copy Read Hits %
\Cache\MDL Reads/sec
\Cache\MDL Read Hits %
\Cache\Read Aheads/sec
\Cache\Lazy Write Flushes/sec
\Cache\Lazy Write Pages/sec
\Cache\Data Flushes/sec
\Cache\Data Flush Pages/sec
\Processor(*)\% Processor Time
\Processor(*)\% User Time
\Processor(*)\% Privileged Time
\Processor(*)\Interrupts/sec
\Processor(*)\% DPC Time
\Processor(*)\% Interrupt Time
\Memory\Page Faults/sec
\Memory\Available Bytes
\Memory\Committed Bytes
\Memory\Commit Limit
\Memory\Write Copies/sec
\Memory\Transition Faults/sec
\Memory\Cache Faults/sec
\Memory\Demand Zero Faults/sec
\Memory\Pages/sec
\Memory\Pages Input/sec
\Memory\Page Reads/sec
\Memory\Pages Output/sec
\Memory\Pool Paged Bytes
\Memory\Pool Nonpaged Bytes
\Memory\Page Writes/sec
\Memory\Pool Paged Allocs
\Memory\Pool Nonpaged Allocs
\Memory\Free System Page Table Entries
\Memory\Cache Bytes
\Memory\Cache Bytes Peak
\Memory\Pool Paged Resident Bytes
\Memory\System Code Total Bytes
\Memory\System Code Resident Bytes
\Memory\System Driver Total Bytes
\Memory\System Driver Resident Bytes
\Memory\System Cache Resident Bytes
\Memory\% Committed Bytes In Use
\Memory\Available KBytes
\Memory\Available MBytes
\Memory\Transition Pages RePurposed/sec
\Paging File(*)\% Usage
\Paging File(*)\% Usage Peak
\System\Context Switches/sec
\System\System Up Time
\System\Processor Queue Length
\System\Processes
\System\Threads
\Process( svchost,*)\% Processor Time
\Process(svchost,*)\% User Time
\Process(svchost,*)\% Privileged Time
\Process(svchost,*)\Virtual Bytes Peak
\Process(svchost,*)\Virtual Bytes
\Process(svchost,*)\Page Faults/sec
\Process(svchost,*)\Working Set Peak
\Process(svchost,*)\Working Set
\Process(svchost,*)\Page File Bytes Peak
\Process(svchost,*)\Page File Bytes
\Process(svchost,*)\Private Bytes
311
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
312
Kapitola 4 – Postupy p„i sledování výkonu
\Process(svchost,*)\Thread Count
\Process(svchost,*)\Priority Base
\Process(svchost,*)\Elapsed Time
\Process(svchost,*)\ID Process
\Process(svchost,*)\Pool Paged Bytes
\Process(svchost,*)\Pool Nonpaged Bytes
\Print Queue(*)\Total Jobs Printed
\Print Queue(*)\Bytes Printed/sec
\Print Queue(*)\Total Pages Printed
\Print Queue(*)\Jobs
\Print Queue(*)\References
\Print Queue(*)\Max References
\Print Queue(*)\Jobs Spooling
\Print Queue(*)\Max Jobs Spooling
\Print Queue(*)\Out of Paper Errors
\Print Queue(*)\Not Ready Errors
\Print Queue(*)\Job Errors
\Print Queue(*)\Enumerate Network Printer Calls
\Print Queue(*)\Add Network Printer Calls
\Network Interface(*)\Bytes Total/sec
\Network Interface(*)\Packets/sec
\Network Interface(*)\Packets Received/sec
\Network Interface(*)\Packets Sent/sec
\Network Interface(*)\Current Bandwidth
\Network Interface(*)\Bytes Received/sec
\Network Interface(*)\Packets Received Unicast/sec
\Network Interface(*)\Packets Received Non-Unicast/sec
\Network Interface(*)\Packets Received Discarded
\Network Interface(*)\Packets Received Errors
\Network Interface(*)\Packets Received Unknown
\Network Interface(*)\Bytes Sent/sec
\Network Interface(*)\Packets Sent Unicast/sec
\Network Interface(*)\Packets Sent Non-Unicast/sec
\Network Interface(*)\Packets Outbound Discarded
\Network Interface(*)\Packets Outbound Errors
\Network Interface(*)\Output Queue Length
\IPv4\Datagrams/sec
\IPV4\Datagrams Received/sec
\IPV4\Datagrams Received Header Errors
\IPV4\Datagrams Received Address Errors
\IPV4\Datagrams Forwarded/sec
\IPV4\Datagrams Received Unknown Protocol
\IPV4\Datagrams Received Discarded
\IPV4\Datagrams Received Delivered/sec
\IPV4\Datagrams Sent/sec
\IPV4\Datagrams Outbound Discarded
\IPV4\Datagrams Outbound No Route
\IPV4\Fragments Received/sec
\IPV4\Fragments Re-assembled/sec
\IPV4\Fragment Re-assembly Failures
\IPV4\Fragmented Datagrams/sec
\IPV4\Fragmentation Failures
Postupy denního sledování server‘
313
\IPV4\Fragments Created/sec
\TCPV4\Segments/sec
\TCPV4\Connections Established
\TCPV4\Connections Active
\TCPV4\Connections Passive
\TCPV4\Connection Failures
\TCPV4\Connections Reset
\TCPV4\Segments Received/sec
\TCPV4\Segments Sent/sec
\TCPV4\Segments Retransmitted/sec
\Logický disk(*)\% volného místa
\Logický disk(*)\Volné megabajty
\Logický disk(*)\Aktuální délka fronty disku
\Fyzický disk(*)\Aktuální délka fronty disku
\Fyzický disk(*)\StÁední délka fronty disku
\Fyzický disk(*)\StÁední doba disku/pÁenos
\Fyzický disk(*)\StÁední doba disku/¶tení
\Fyzický disk(*)\StÁední doba disku/zápis
\Fyzický disk(*)\PÁenosy disku/s
\Fyzický disk(*)\›tení z disku/s
\Fyzický disk(*)\Zápisy na disk/s
\Fyzický disk(*)\Bajt disku/s
\Fyzický disk(*)\Bajty ¶tení z disku/s
\Fyzický disk(*)\Bajty zapisování na disk/s
\Fyzický disk(*)\StÁední po¶et bajt disku/pÁenos
\Fyzický disk(*)\StÁední po¶et bajt disku/¶tení
\Fyzický disk(*)\StÁední po¶et bajt disku/zápis
\Fyzický disk(*)\% ¶asu ne¶innosti
\Fyzický disk(*)\D¹lení vstupn¹-výstupních operací/s
\Server\Bajty celkem/s
\Server\PÁijaté bajty/s
\Server\Odeslané bajty/s
\Server\Vypršelé relace
\Server\Chybné relace
\Server\Odhlášené relace
\Server\Odpojené relace
\Server\Chyby pÁihlášení
\Server\Chyby pÁístupových práv
\Server\Chyby ud¹lených práv
\Server\Chyby systému
\Server\Zamítnuté žádosti zablokování
\Server\Nedostatky pracovních položek
\Server\Bajty nestránkovaného fondu
\Server\Chyby nestránkovaného fondu
\Server\Vrchol nestránkovaného fondu
\Server\Bajty stránkovaného fondu
\Server\Chyby stránkovaného fondu
\Pracovní fronty serveru(*)\Délka fronty
\Pracovní fronty serveru(*)\Aktivní podprocesy
\Pracovní fronty serveru(*)\Dostupné podprocesy
Postupy
pdi sledování
výkonu
b) produkt s ²eskou lokalizací
314
Kapitola 4 – Postupy p„i sledování výkonu
\Pracovní fronty serveru(*)\Dostupné pracovní položky
\Pracovní fronty serveru(*)\VypÂj¶ené pracovní položky
\Pracovní fronty serveru(*)\Nedostatky pracovních položek
\Pracovní fronty serveru(*)\Aktuální po¶et klientÂ
\Pracovní fronty serveru(*)\Bajty pÁenesené/s
\Pracovní fronty serveru(*)\Celkem operací/s
\Pracovní fronty serveru(*)\Bloky kontextu ve front¹/s
\Mezipam¹È\Mapování dat/s
\Mezipam¹È\Zásahy mapování dat %
\Mezipam¹È\Držení mapování dat/s
\Mezipam¹È\›tení držení/s
\Mezipam¹È\Zásahy ¶tení držení %
\Mezipam¹È\›tení kopií/s
\Mezipam¹È\Zásahy ¶tení kopií %
\Mezipam¹È\›tení MDL/s
\Mezipam¹È\Zásahy ¶tení MDL %
\Mezipam¹È\DopÁedná ¶tení/s
\Mezipam¹È\Dopsání opožd¹ných zápisÂ/s
\Mezipam¹È\Stránky opožd¹ných zápisÂ/s
\Mezipam¹È\Dopsání dat/s
\Mezipam¹È\Dopsání dat stránek/s
\Procesor(*)\% ¶asu procesoru
\Procesor(*)\% uživatelského ¶asu
\Procesor(*)\% privilegovaného ¶asu
\Procesor(*)\PÁerušení/s
\Procesor(*)\% ¶asu DPC
\Procesor(*)\% ¶asu pÁerušení
\Pam¹È\Chyby stránek/s
\Pam¹È\Bajty k dispozici
\Pam¹È\Sv¹Áené bajty
\Pam¹È\Mez sv¹Áení
\Pam¹È\Zápisy kopií/s
\Pam¹È\Chyby pÁevodu stavu/s
\Pam¹È\Chyby mezipam¹ti/s
\Pam¹È\Chyby nulových požadavkÂ/s
\Pam¹È\Stránky/s
\Pam¹È\Vstup stránek/s
\Pam¹È\›tení stránek/s
\Pam¹È\Výstup stránek/s
\Pam¹È\Bajty stránkovaného fondu
\Pam¹È\Bajty nestránkovaného fondu
\Pam¹È\Zápisy stránek/s
\Pam¹È\Vyhrazení stránkovaného fondu
\Pam¹È\Vyhrazení nestránkovaného fondu
\Memory\Free System Page Tabulka Entries
\Pam¹È\Bajty mezipam¹ti
\Pam¹È\Vrchol bajt mezipam¹ti
\Pam¹È\Rezidentní bajty stránkovaného fondu
\Pam¹È\Celkem bajt kódu systému
\Pam¹È\Rezidentní bajty kódu systému
\Pam¹È\Celkem bajt systémových ovlada¶Â
\Pam¹È\Rezidentní bajty systémových ovlada¶Â
\Pam¹È\Rezidentní bajty systémové mezipam¹ti
\Pam¹È\% využití sv¹Áených bajtÂ
\Pam¹È\Po¶et kB k dispozici
\Pam¹È\Po¶et MB k dispozici
\Pam¹È\Zm¹n ú¶elu stran pÁenosu/s
\Stránkovací soubor(*)\% využití
\Stránkovací soubor(*)\% vrchol využití
\Systém\PÁepnutí kontextu/s
\Systém\Doba provozu systému
\Systém\Délka fronty procesoru
\Systém\Procesy
\Systém\Podprocesy
\Proces(svchost,*)\% ¶asu procesoru
\Proces(svchost,*)\% uživatelského ¶asu
\Proces(svchost,*)\% privilegovaného ¶asu
\Proces(svchost,*)\Vrchol virtuálních bajtÂ
\Proces(svchost,*)\Virtuální bajty
\Proces(svchost,*)\Chyby stránek/s
\Proces(svchost,*)\Vrchol pracovní sady
\Proces(svchost,*)\Pracovní sada
\Proces(svchost,*)\Vrchol bajt stránkovacího souboru
\Proces(svchost,*)\Bajty stránkovacích souborÂ
\Proces(svchost,*)\Nesdílené bajty
\Proces(svchost,*)\Po¶et podprocesÂ
\Proces(svchost,*)\Základní priorita
\Proces(svchost,*)\Uplynulý ¶as
\Proces(svchost,*)\ID procesu
\Proces(svchost,*)\Bajty stránkovaného fondu
\Proces(svchost,*)\Bajty nestránkovaného fondu
\Tisková fronta(*)\Celkový po¶et vytisknutých úloh
\Tisková fronta(*)\Po¶et bajt vytisknutých za sekundu
\Tisková fronta(*)\Celkový po¶et vytisknutých stránek
\Tisková fronta(*)\Po¶et úloh
\Tisková fronta(*)\Po¶et odkazÂ
\Tisková fronta(*)\Maximální po¶et odkazÂ
\Tisková fronta(*)\Po¶et zaÁazovaných úloh
\Tisková fronta(*)\Maximální po¶et zaÁazovaných úloh
\Tisková fronta(*)\Po¶et chyb typu Došel papír
\Tisková fronta(*)\Po¶et chyb typu Tiskárna není pÁipravena
\Tisková fronta(*)\Po¶et chyb úloh
\Tisková fronta(*)\Po¶et volání na vý¶et síÈových tiskáren
\Tisková fronta(*)\Po¶et volání na pÁidání síÈové tiskárny
\Rozhraní sít¹(*)\Bajty celkem/s
\Rozhraní sít¹(*)\Pakety/s
\Rozhraní sít¹(*)\PÁijaté pakety/s
\Rozhraní sít¹(*)\Odeslané pakety/s
\Rozhraní sít¹(*)\Aktuální šíÁka pásma
\Rozhraní sít¹(*)\PÁijaté bajty/s
\Rozhraní sít¹(*)\PÁijaté jednosm¹rové pakety/s
\Rozhraní sít¹(*)\PÁijaté nejednosm¹rové pakety/s
\Rozhraní sít¹(*)\VyÁazené pÁijaté pakety
\Rozhraní sít¹(*)\Chyby pÁijatých paketÂ
315
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
316
Kapitola 4 – Postupy p„i sledování výkonu
\Rozhraní sít¹(*)\PÁijaté pakety neznámé
\Rozhraní sít¹(*)\Odeslané bajty/s
\Rozhraní sít¹(*)\Odeslané jednosm¹rové pakety/s
\Rozhraní sít¹(*)\Odeslané nejednosm¹rové pakety/s
\Rozhraní sít¹(*)\VyÁazené odchozí pakety
\Rozhraní sít¹(*)\Chyby odchozích paketÂ
\Rozhraní sít¹(*)\Délka fronty výstupu
\IPv4\Datagramy/s
\IPv4\PÁijaté datagramy/s
\IPv4\Chyby hlavi¶ek pÁijatých datagramÂ
\IPv4\Chyby adres pÁijatých datagramÂ
\IPv4\PÁedané datagramy/s
\IPv4\Neznámý protokol pÁijatých datagramÂ
\IPv4\VyÁazené pÁijaté datagramy
\IPv4\Doru¶ené pÁijaté datagramy/s
\IPv4\Odeslané datagramy/s
\IPv4\VyÁazené odchozí datagramy
\IPv4\Odchozí datagramy bez sm¹rování
\IPv4\PÁijaté fragmenty/s
\IPv4\Fragmenty zp¹tn¹ složené/s
\IPv4\Chyby zp¹tného skládání fragmentÂ
\IPv4\Fragmentování datagramÂ/s
\IPv4\Chyby fragmentování
\IPv4\Fragmenty vytvoÁené/s
\TCPv4\Segmenty/s
\TCPv4\Navázaná pÁipojení
\TCPv4\Aktivní pÁipojení
\TCPv4\Pasivní pÁipojení
\TCPv4\Chyby pÁipojení
\TCPv4\Resetovaná pÁipojení
\TCPv4\PÁijaté segmenty/s
\TCPv4\Odeslané segmenty/s
\TCPv4\Segmenty odeslané znovu/s
Podle takových faktor¾, jako je po²et instalovaných fyzických procesor¾, p½ipojených fyzických disk¾, definovaných logických disk¾ a po²et adaptér¾ síÆového rozhraní, bude celý objem ²íta²¾ uvedených ve výpisu 4.7 souboru nastavení ²íta²¾
generovat data o objemu dosahujícím 30 MB dennµ na malém po²íta²i a až 100 MB
nebo i více dennµ na velkém stroji.
Sledování indikátor¿ chyb £ada ²íta²¾, zahrnutých v ukázkovém souboru nastavení ²íta²¾ ve výpisu 4.7, p½edstavuje indikátory ur²itého chybového stavu. Takové chybové podmínky se neomezují jen na nedostatek prost½edk¾ – nµkteré
odrážejí nap½. nesprávnµ nakonfigurované služby systému a sítµ. Jiné mohou indikovat ²innost související s pokusy o narušení zabezpe²ení po²íta²e ze strany neoprávnµných uživatel¾. Význam zahrnutí tµchto ²íta²¾ do denních monitorovacích
procedur spo²ívá v tom, že máte možnost p½esnµ stanovit dobu, kdy k takovým
chybovým stav¾m v systémových službách dochází.
Výpis 4.8 ukazuje ²íta²e obsažené již v souboru nastavení ²íta²¾ podle výpisu 4.7,
jež slouží p½edevším jako indikátory chyb na souborovém a tiskovém serveru. Tato
Postupy denního sledování server‘
317
množina ²íta²¾ zahrnuje chybové indikátory relací souborového serveru, chybové
stavy tiskáren a obecné chyby sítµ.
VÝPIS 4.8: »ÌtaËe, jeû jsou ukazateli chyb na souborovÈm a tiskovÈm serveru
\Server\Sessions Timed Out
\Server\Sessions Errored Out
\Server\Sessions Logged Off
\Server\Sessions Forced Off
\Server\Errors Logon
\Server\Errors Access Permissions
\Server\Errors Granted Access
\Server\Errors System
\Server\Blocking Requests Rejected
\Server\Work Item Shortages
\Server\Pool Nonpaged Bytes
\Server\Pool Nonpaged Failures
\Server\Pool Paged Failures
\Print Queue(*)\Out of Paper Errors
\Print Queue(*)\Not Ready Errors
\Network Interface(*)\Packets Received Discarded
\Network Interface(*)\Packets Received Errors
\Network Interface(*)\Packets Received Unknown
\Network Interface(*)\Packets Outbound Discarded
\Network Interface(*)\Packets Outbound Errors
\IPV4\Datagrams Received Header Errors
\IPV4\Datagrams Received Address Errors
\IPV4\Datagrams Received Unknown Protocol
\IPV4\Datagrams Received Discarded
\IPV4\Datagrams Outbound Discarded
\IPV4\Datagrams Outbound No Route
\IPV4\Fragment Re-assembly Failures
\IPV4\Fragmentation Failures
\TCPV4\Connection Failures
\TCPV4\Connections Reset
b) produkt s ²eskou lokalizací
\Server\Vypršelé relace
\Server\Chybné relace
\Server\Odhlášené relace
\Server\Odpojené relace
\Server\Chyby pÁihlášení
\Server\Chyby pÁístupových práv
\Server\Chyby ud¹lených práv
\Server\Chyby systému
\Server\Zamítnuté žádosti zablokování
\Server\Nedostatky pracovních položek
\Server\Bajty nestránkovaného fondu
\Server\Chyby nestránkovaného fondu
\Server\Chyby stránkovaného fondu
\Tisková fronta(*)\Po¶et chyb typu Došel papír
Postupy
pdi sledování
výkonu
a) produkt v angli²tinµ:
318
Kapitola 4 – Postupy p„i sledování výkonu
\Tisková fronta(*)\Po¶et chyb typu Tiskárna není pÁipravena
\Rozhraní sít¹(*)\VyÁazené pÁijaté pakety
\Rozhraní sít¹(*)\Chyby pÁijatých paketÂ
\Rozhraní sít¹(*)\PÁijaté pakety neznámé
\Rozhraní sít¹(*)\VyÁazené odchozí pakety
\Rozhraní sít¹(*)\Chyby odchozích paketÂ
\IPv4\Chyby hlavi¶ek pÁijatých datagramÂ
\IPv4\Chyby adres pÁijatých datagramÂ
\IPv4\Neznámý protokol pÁijatých datagramÂ
\IPv4\VyÁazené pÁijaté datagramy
\IPv4\VyÁazené odchozí datagramy
\IPv4\Odchozí datagramy bez sm¹rování
\IPv4\Chyby zp¹tného skládání fragmentÂ
\IPv4\Chyby fragmentování
\TCPv4\Chyby pÁipojení
\TCPv4\Resetovaná pÁipojení
Ìíta²e, jež jsou uvedeny ve výpisu 4.8 a které zaznamenávají po²et vzniklých chybových stav¾, jsou vµtšinou okamžité neboli ²isté. Obsahují ale kumulativní hodnoty. Jelikož po²et chybových stav¾, které nastávají, by mµl být velmi nízký, p½i
použití intervalového rozdílového ²íta²e ke sledování chyb by byly hlášeny tak malé rychlosti chyb za sekundu, že by se objevovaly jako nulové hodnoty. Aby se tedy cenné metriky nezobrazovaly jako nuly, hlásí tyto ²íta²e kumulativní po²ty chyb.
Jedna z nevýhod tohoto p½ístupu spo²ívá v tom, že nem¾žete použít prvek Alerts
(Výstrahy) nástroje Performance (Sledování výkonu) a nechat se upozornit na vznik
chybového stavu. Graf na obrázku 4.2 vykresluje hodnoty chybových podmínek
jednoho ²íta²e síÆového rozhraní v rámci dvouhodinové monitorovací relace. Všimnµte si, že k½ivka vyzna²ující hodnoty ²íta²e Network Interface\Packets Received
Unknown (Rozhraní sítµ(*)\P½ijaté pakety neznámé) bµhem sledovacího intervalu
trvale roste. AÆ už dochází k jakémukoli chybovému stavu, vyskytuje se pravidelnµ.
Protože tento ²íta² udává kumulativní (nár¾stový) po²et vzniklých chybových
podmínek od posledního spuštµní systému, jakmile se objeví nµjaký chybový stav,
hodnota ²íta²e již bude trvale nenulová. Je z½ejmé, že když se jednou spustí výstraha na jednom z takových ²íta²¾, bude se opakovat ve všech následujících mµ½icích
intervalech. Takové výstrahy „zamo½í“ protokol událostí aplikací.
Chcete-li zjistit, zda dochází k výskytu tµchto chybových podmínek, je nejsnazší
a nejrychlejší vyvinout zprávu využívající zobrazení histogramu, což vám dovolí
rozpoznat všechny nenulové chybové stavy. P½íklad tohoto p½ístupu je na obrázku
4.3. Ten ukazuje, že v rámci našeho sledovacího intervalu dochází pouze k chybám
P½ijaté pakety neznámé.
Jakmile z histogramu odstraníte všechny ²íta²e chybových stav¾, které hlásí nulové
hodnoty, m¾žete se p½epnout do zobrazení grafu a blíže prozkoumat zbývající nenulové ²íta²e. S využitím zobrazení grafu lze stanovit, kdy se p½íslušné chybové
stavy objevily a jakou rychlostí vznikaly.
OBRÁZEK 4.2: Hodnoty jednoho :íta:e chybových stavS síPového rozhraní v rámci
dvouhodinové monitorovací relace
OBRÁZEK 4.3: Zobrazení histogramu ukazující :íta:e chybových stavS s nenulovými hodnotami
Efektivní využívání výstrah
Kv¾li dodate²ným výkonnostním náklad¾m a velikosti protokol¾ ²íta²¾ je jen
z½ídkakdy možné shromažÅovat neustále všechny výkonnostní statistiky, které byste
mohli pot½ebovat. K velikosti generovaných soubor¾ protokol¾ ²íta²¾ nejvíce p½ispívá sbµr dat na úrovni proces¾ – dokonce i na menších po²íta²ích se systémem
Windows Server 2003 vµtšinou bµží mnoho proces¾, což znamená rozsáhlé soubo-
319
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
320
Kapitola 4 – Postupy p„i sledování výkonu
ry protokol¾ ²íta²¾. V ukázkovém souboru nastavení ²íta²¾ ve výpisu 4.7 je tento
potenciální problém vy½ešen sbµrem výkonnostních ²íta²¾ na úrovni proces¾ vždy
jen u omezeného po²tu proces¾. Ve výpisu 4.7 a v p½íkladech uvedených v tabulce
4.1 byla vybrána výkonnostní data na úrovni proces¾ jen u tµch proces¾, které jsou
pro provozovanou serverovou aplikaci nejzásadnµjší.
Tento selektivní sbµr dat však není zcela uspokojivým ½ešením, protože výkonnostní data na úrovni jednotlivých proces¾ jsou nezbytná k detekování poškozených
proces¾, které si monopolizují procesor nebo kterým uniká virtuální pamµÆ. £ešením tohoto rozporu je používat prvek Alerts (Výstrahy) konzoly Performance (Sledování výkonu) a zajistit automatické spouštµní relace sbµru dat ²íta²¾ nástroje Log
Manager, jakmile nµjaká výstraha p½ekro²í stanovený práh. Když procedury protokolování ²íta²¾ implementujete tímto zp¾sobem, budete moci automaticky shromažÅovat velmi detailní údaje o problémech, aniž by bylo nutné neustále sbírat
všechna výkonnostní data.
Relaci sbµru dat protokol¾ ²íta²¾ nástroje Log Manager automaticky spouštµnou,
jakmile dojde ke spuštµní nµjaké výstrahy, nastavte tµmito jednoduchými kroky:
1. Definujte protokol ²íta²¾ nástroje Log Manager, jehož použití plánujete pro sbµr
detailních výkonnostních dat o ur²ité situaci.
2. Definujte podmínku výstrahy použitou ke spuštµní dané relace protokolu ²íta²¾.
3. V definici akce po výstraze zadejte spuštµní p½íslušné relace protokolu ²íta²¾ definované v kroku 1.
Chcete-li nap½íklad pomáhat se zjištµním stavu, kdy nµjakému procesu uniká virtuální pamµÆ, definujte relaci protokolu ²íta²¾, která bude na úrovni proces¾ shromažÅovat data související s alokováním virtuální pamµti. Následnµ definujte
chybový stav, který se spustí, kdykoli alokování virtuální pamµti dosáhne kritické
úrovnµ. Nakonec definujte akci této výstrahy zajišÆující spuštµní relace protokolu ²íta²¾ definované v kroku 1 (p½edchozího postupu), jakmile se daná podmínka výstrahy projeví.
Následující oddíl vás provede ukázkou implementace výstrahy, která se spustí,
jakmile bude nedostatek virtuální pamµti. Následnµ bude iniciovat relaci sbµru dat
protokolu ²íta²¾, jež vám umožní stanovit, který proces zodpovídá za nedostatek
virtuální pamµti. V kapitole 5, „£ešení potíží s výkonem“, jsou probírány dopl¹kové
techniky detekce a diagnostiky únik¾ virtuální pamµti.
UpozornÏnÌ MusÌte si d·vat pozor na to, aby vaöe v˝konnostnÌ v˝strahy nezahltily aplikaËnÌ
protokol ud·lostÌ nadmÏrn˝m poËtem zpr·v. Periodicky byste mÏli prohlÌûet aplikaËnÌ protokol ud·lostÌ a kontrolovat, zda vaöe nastavenÌ v˝strah negenerujÌ p¯Ìliö mnoho poloûek
protokolu ud·lostÌ. Programy jako Microsoft Operations Manager dok·ûou aktivnÏ spravovat protokoly ud·lostÌ a konsolidovat i potlaËovat duplicitnÌ poloûky ud·lostÌ, aby nedoch·zelo k neust·lÈmu generov·nÌ zpr·v v˝strah souvisejÌcÌch se st·le stejn˝m stavem.
Automatické spouštgní protokol‘ dítad‘
Tento oddíl vás krok za krokem provede procedurou generující diagnostické protokoly ²íta²¾, kdykoli dojde k nedostatku virtuální pamµti, který je možná zp¾soben poškozeným procesem, jemuž uniká virtuální pamµÆ.
Postupy denního sledování server‘
321
Krok 1: Definujte nastavení protokolu ³íta³¿ Jedná se o nastavení protokolu
²íta²¾ použitá, když výstraha spustí svou prahovou podmínku. Použijte nap½íklad
následující p½íkaz:
Logman create counter MemoryTroubleshooting -v mmddhhmm
-c "\Memory\Available Bytes" "\Memory\% Committed Bytes in Use"
"\Memory\Cache Bytes" "\Memory\Pool Nonpaged Bytes"
"\Memory\Pool Paged Bytes" "\Process(*)\Pool Nonpaged Bytes"
"\Process(*)\Pool Paged Bytes" "\Process(*)\Pool Virtual Bytes"
"\Process(*)\Pool Private Bytes" "\Process(*)\Page Faults/sec"
"\Process(*)\Pool Working Set" -si 00:30
-o "c:\Perflogs\Alert Logs\MemoryTroubleshooting" -max 5
Logman create counter ReseniPotiziPameti -v mmddhhmm
-c "\Pam¹È\Bajty k dispozici" "\Pam¹È\% využití sv¹Áených bajtÂ"
"\Pam¹È\Bajty mezipam¹ti" "\Pam¹È\Bajty nestránkovaného fondu"
"\Pam¹È\Bajty stránkovaného fondu"
"\Proces(*)\Bajty nestránkovaného fondu"
"\Proces(*)\Bajty stránkovaného fondu" "\Proces(*)\Virtuální bajty"
"\Proces(*)\Nesdílené bajty" "\Proces(*)\Chyby stránek/s"
"\Proces(*)\Pracovní sada" -si 00:30
-o "c:\Perflogs\Protokoly vystrah\ReseniPotiziPameti" -max 5
Tento p½íkaz definuje relaci protokolu ²íta²¾ ReseniPotiziPameti, která shromažÅuje
²íta²e alokování virtuální pamµti na úrovni proces¾ a také nµkolik celosystémových
²íta²¾ alokování virtuální pamµti. V našem p½íkladu vzorkujeme ²íta²e ve
30sekundových intervalech. Zadání parametru -max zajistí ukon²ení sbµru dat,
jakmile protokol ²íta²¾ dosáhne velikosti 5 MB. Pomocí konzoly Performance Monitor byste rovnµž mohli omezit dobu trvání sbµru dat na hodnotu kup½íkladu 10 až
15 minut. Všimnµte si, že protokoly ²íta²¾ se budou vytvá½et ve složce
C:\Perflogs\Protokoly vystrah\, což je složka odlišná od té, kde vytvá½íte pravidelné denní protokoly výkonu. Tato samostatná složka vám umož¹uje snáze odlišit relace protokolování ²íta²¾ spuštµné výstrahami a usnad¹uje také jejich správu podle
r¾zných kritérií. Kup½íkladu uvedený protokol ReseniPotiziPameti je detailním pohledem omezeným na data související s alokováním virtuální pamµti. Takový typ
protokolu ²íta²¾ nebudete nikdy muset sumarizovat, ani nebude obvykle zapot½ebí
zachovávat detailní historický záznam o podobných typech potíží.
Krok 2: Definujte obecné vlastnosti výstrahy Test (nebo testy) prahové hodnoty ²íta²e, který spouští ur²itý stav výstrahy, definujete na kartách dialogového
okna vlastností výstrahy virtuální pamµti. V našem p½íkladu je zapot½ebí vytvo½it výstrahu spouštµnou nedostatkem virtuální pamµti – testovanou prahovou hodnotou
²íta²e Memory\ % Committed Bytes In Use (PamµÆ\% využití svµ½ených bajt¾) je 85
procent, jak ilustruje obrázek 4.4.
Postupy
pdi sledování
výkonu
Respektive v ²eském prost½edí:
322
Kapitola 4 – Postupy p„i sledování výkonu
OBRÁZEK 4.4: íta: % Committed Bytes In Use pdesahující 85 %
Rychlost, jakou sledování výstrah vzorkuje vámi vybraný výkonnostní ²íta² (nebo
²íta²e), ur²uje, jak ²asto lze zprávy výstrahy generovat. V našem p½ípadµ je bµh
sledování výstrahy naplánován jednou za minutu. Na po²íta²i s omezenou virtuální
pamµtí, kde hodnota PamµÆ\% využití svµ½ených bajt¾ trvale p½esahuje limitních 85
procent, se daná podmínka výstrahy spouští každou minutu. V závislosti na vybrané akci výstrahy se m¾že tato frekvence projevit jako p½íliš vysoká.
Tip Je-li to moûnÈ, definujte takovÈ podmÌnky v˝strah, kterÈ se za norm·lnÌho stavu nespouötÏjÌ vÌce neû nÏkolikr·t za hodinu. Upravte nastavenÌ tÏch stav˘ v˝strahy, jeû se spouötÏjÌ ËastÏji neû 5- aû 10kr·t za hodinu, a to dokonce i za velmi nep¯Ìzniv˝ch podmÌnek, aby
se spouötÏly mÈnÏ Ëasto.
Pokud se v˝strahy vyskytujÌ p¯Ìliö Ëasto, jenom svÈ p¯Ìjemce zlobÌ. Z psychologickÈho hlediska
ztr·cejÌ Ëasto spouötÏnÈ v˝strahy sv˘j v˝znam jako upozornÏnÌ na d˘leûitÈ ud·losti. Nakonec
budou povaûov·ny za bÏûnÈ vÏci, kterÈ lze klidnÏ ignorovat. Tyto lidskÈ reakce na dan˝ stav
jsou pochopitelnÈ, ale velmi neû·doucÌ, pokud zadan˝ pr·h v˝strahy skuteËnÏ p¯edstavuje
v˝jimeËn˝ stav vyûadujÌcÌ pozornost a detailnÏjöÌ zkoum·nÌ.
Frekvenci spouötÏnÌ v˝strah m˘ûete snadno ¯Ìdit jednÌm z n·sledujÌcÌch zp˘sob˘:
1. Upravte prahovou podmÌnku tak, aby se v˝strahy spouötÏly mÈnÏ Ëasto.
2. Zpomalte frekvenci spouötÏnÌ skenov·nÌ v˝strah.
NavÌc m˘ûete omezit akce v˝strahy na ty, kterÈ ˙myslnÏ nebudou nikoho obtÏûovat.
Krok 3: Definujte ³asový plán výstrahy Trvání sledování výstrah je dáno parametry ²asového plánu výstrah. Nejlepších výsledk¾ dosáhnete omezením trvání sledování výstrah na 1 až 2 hodiny. V p½ípadµ trvalého monitorování zajistµte, aby se
nové sledování spustilo až po dokon²ení toho aktuálního, jak zachycuje obrázek 4.5.
Postupy denního sledování server‘
323
Postupy
pdi sledování
výkonu
Krok 4: Definujte akci výstrahy Akci vykonanou prvkem výstrah po naplnµní
zadané podmínky definují parametry akce výstrahy. My pot½ebujeme, aby prvek výstrah inicioval protokol ²íta²¾ definovaný v kroku 1 a zajistil tak sbµr detailnµjších
údaj¾ o výkonu aplikací na úrovni proces¾ v okamžiku spuštµní výstrahy. Nezapomínejte, že zadaný protokol ²íta²¾ se spustí jen jednou na sledování výstrah.
Oproti tomu položky protokolu událostí se generují v každém vzorkovacím intervalu, v nµmž je splnµna podmínka výstrahy. Také zprávy výstrah se generují v každém vzorkovacím intervalu s naplnµnou podmínkou výstrahy. Zvolíte-li spuštµní
nµjakého programu (viz obrázek 4.6), naplánuje prvek výstrah jeho bµh jen jednou
v rámci sledování výstrah.
OBRÁZEK 4.5: Použijte zaškrtávací polí:ko Start A New Scan (Spustit nové sledování)
Protokol ²íta²¾ nebo zadaný program se spustí bezprost½ednµ po prvním vzorkovacím intervalu sledování výstrah, v nµmž je zadaná podmínka výstrahy pravdivá.
Doba trvání relace protokolování ²íta²¾ je ur²ena parametry ²asového plánu, které
zadáváte v rámci definování dané relace protokolu ²íta²¾. Jak již bylo poznamenáno, pomocí rozhraní p½íkazového ½ádku nástroje Log Manager m¾žete omezit velikost souboru protokolu ²íta²¾, který bude vytvo½en. S využitím rozhraní konzoly
Sledování výkonu máte možnost omezit dobu trvání relace protokolu ²íta²¾. Dostate²nµ efektivní detailní protokol ²íta²¾, který vám dovolí do hloubky prozkoumat
stav po²íta²e, má obvykle rozsah od 10 do 30 minut. Je z½ejmé, že pokud se podmínky výstrah spouštµjí dostate²nµ ²asto a detailní relace protokol¾ ²íta²¾ jsou relativnµ dlouhé, riskujete shromáždµní mnohem více dat o potenciálním problému,
než dokážete pozdµji efektivnµ analyzovat. Navíc m¾žete spot½ebovávat p½íliš mnoho diskového prostoru na po²íta²i trpícím sledovaným problémem.
324
Kapitola 4 – Postupy p„i sledování výkonu
OBRÁZEK 4.6: Máte možnost zadat spoušt?ný program
Obecné procedury výstrah
Podobné procedury výstrah bude zapot½ebí definovat pro spouštµní takových protokol¾ ²íta²¾, jež vám umožní zkoumat období nadmµrného využívání procesoru,
nedostatku fyzické pamµti a možné potíže s výkonem disku. Tabulka 4.3 shrnuje
základní procedury výstrah, které budou pro vaše produk²ní servery užite²né. Pojednání o nastavení konfigura²nµ závislých prah¾ výstrah stavu nadmµrného stránkování najdete v kapitole 3.
Testy prahových podmínek výstrah uvedené na obrázku 4.3 zachycují reprezentativní hodnoty využitelné na mnoha po²íta²ích. Specifi²tµjší doporu²ení týkající se
prahových podmínek výstrah tµchto ²íta²¾ najdete v obsáhlém pojednání v kapitole
3, „Mµ½ení výkonu serveru“.
Aplikadní výstrahy
M¾že být také vhodné definovat dodate²ná sledování výstrah vycházející z kritérií
specifických pro konkrétní aplikace. V každé situaci se musíte zamµ½it na podmínky výstrah související s nadmµrnou spot½ebou prost½edk¾, ukazatele nedostatku
prost½edk¾, mµ½ení zachycující velký po²et požadavk¾ ²ekajících ve frontµ a další
anomálie související s výkonem aplikací. U nµkterých aplikací je vhodné generovat
výstrahy jak p½i vysokých rychlostech transakcí, tak i p½i jejich nezvykle nízkých
hodnotách, což m¾že také znamenat, že daná aplikace p½estala reagovat a vykonávání transakcí se blokuje.
Postupy denního sledování server‘
325
TABULKA 4.3: NastavenÌ obecn˝ch stav˘ v˝strah
Prahové testy
Nadmgrné vyu- Processor(*)\% Processor Time > 98%
žívání CPU;
možný bgh procesu v nekonedném cyklu
Frekvence Další protokolované dítade
sledování (v
sekundách
10–30
Interval
vzorkování (v
sekundách)
Processor(*)\*;
10–20 po
Process(*)\% Processor Time, 10–20 minut
Process(*)\% Privileged Time;
Process(*)\% User Time
Únik virtuální Memory\% Commit- 10–30
pamgti procesu ted Bytes In Use >
85%
Memory\*;
15–30 po
Process(*)\Private Bytes, Pro- 10–30 minut
cess(*)\Virtual Bytes, Process(*)\Pool Nonpaged Bytes,
Process(*)\Pool Paged Bytes,
Process(*)\Page File Bytes
Nadmgrné
Memory\Available
10–30
stránkování na Kbytes < <práh>
disk
Memory\Pages/sec >
<práh>
Memory\*;
10–20 po
Physical Disk(n)\% Idle Time, 10–20 minut
Physical Disk(n)\Avg. Disk
Secs/Transfer, Physical
Disk(n)\Transfers/sec;
Process(*)\Page Faults/sec
Slabý výkon
disku
Physical Disk(n)\Avg. 15
Disk Secs/Transfer >
20
Physical
Disk(n)\Transfers/sec
> 200
Physical Disk(n)\% Idle Time, 10 po 10
minut
Physical Disk(n)\Avg. Disk
Secs/Transfer, Physical
Disk(n)\Transfers/sec
Physical
Disk(n)\Current Disk
Queue Length > 5
Tabulka 4.4 uvádí doporu²ená nastavení výstrah nµkolika rozší½ených serverových
aplikací. Hodnoty používané v testech prahových podmínek výstrah u aplika²ních
server¾ se obvykle na jednotlivých sídlech liší, jak je tu uvedeno.
DalöÌ informace DalöÌ pomoc s nastavenÌm prah˘ v˝strah konkrÈtnÌch aplikacÌ najdete v online dokumentaci Microsoft Operations Framework v oddÌlu TechNet Products and Technologies na adrese http://www.microsoft.com/technet/.
Denní hlášení pro správu
Hlášení pro správu je zp¾sob, jakým zajistit p½ístup ke klí²ovým údaj¾m a zprávám
popisujícím chování po²íta²¾ se systémem Windows Server 2003 všem ú²astník¾m
vaší instalace, které zajímá výkonnost serveru. Hlášení pro správu nelze zamµ¹ovat
s detailní a hloubkovou analýzou dat provádµnou zkušeným analytikem výkonu,
jakmile se objeví výkonnostní potíže, které je zapot½ebí diagnostikovat. Hlášení pro
Postupy
pdi sledování
výkonu
Podmínka
326
Kapitola 4 – Postupy p„i sledování výkonu
správu se zamµ½uje na nµkolik klí²ových metrik, které chápe mnoho lidí. Vytvá½ené
grafy a tabulky by mµly být relativnµ jednoduché a nekomplikované.
TABULKA 4.4: Uk·zkov· nastavenÌ aplikaËnÌch podmÌnek v˝strah
Aplikace
Podmínka
Prahové testy
Další protokolované objekty
Hadide domé- Nadmgrné
NTDS\LDAP Searches/sec > <práh> NTDS\*
ny
požadavky
na Active Directory
Stránky ASP
(nebo aplikace
ASPX rámce
.NET Framework)
Nadmgrné
ASP\Requests Queued > <práh>
„azení požadavk‘ ASP
do front
ASP; Internet Information
System Global; Web Service;
Process(w3wp)\*
Souborový
server
Nedostatky
prost„edk‘
Server Work Queues(*)\Queue Length > <práh>
Server; Server Work Queues;
Cache; Memory; Processor;
Process(svchost)\% Processor
Time
SQL Server
Nadmgrné
databázové
transakce
SQL SerSQL Server:Buffer Manager;
ver:Databases(n)\Transactions/sec > SQL Server:Cache Manager;
SQL Server:Memory Ma<práh>
nager; SQL Server:Locks; SQL
Server:SQL Statistics;SQL
Server:Databases
Metriky, o které se techni²tí pracovníci a další povµ½ené osoby nejvíce zajímají, zahrnují následující:
„ Míry využití klí²ových prost½edk¾, jako jsou procesory, pamµÆ, disky a síÆ.
„ Dostupnost a rychlost transakcí základních aplikací, jako jsou webové servery,
databázové servery a servery Exchange elektronické pošty a zpráv.
„ Doby obsluhy a reakce transakcí v oblasti klí²ových aplikací, pokud je lze zjistit.
Sumarizace denních protokol‘ dítad‘
Protože hlášení pro správu by mµla poskytovat náhled na výkon, bude zapot½ebí
generovat denní soubory obsahující výkonnostní data sumarizovaná nástrojem Relog. Detailní generované denní protokoly ²íta²¾ nejsou tím nejlepším k vytvá½ení
hlášení pro správu. Takový denní protokol ²íta²¾, jenž sbírá jednominutové vzorky
trvale po dobu 24 hodin, nakumuluje každý den 1440 pozorování každého protokolovaného ²íta²e výkonu. (Skute²ný po²et dennµ vygenerovaných vzork¾ bude
1441, protože jeden další vzorek je zapot½ebí na za²átku k získání po²áte²ních
hodnot všech ²íta²¾.) To je mnohem více dat, než dokáže nástroj System Monitor
(Sledování systému) vmµstnat do zobrazení grafu, jenž je omezen na vykreslení 100
datových bod¾ na své ²asové ose x. Chcete-li vytvo½it zobrazení grafu pro
24hodinové období, bude muset Sledování systému destilovat 14 samostatných mµ½ení a vykreslit místo nich souhrnné statistiky, což m¾že mít snadno za následek
pok½ivený pohled na výkonnostní údaje.
Postupy denního sledování server‘
327
Použití nástroje Relog k zajištµní sumarizované verze shromažÅovaných denních protokol¾ ²íta²¾ zjednoduší proces vytvá½ení užite²ných denních hlášení pro správu.
Kup½íkladu zadáním dále uvedeného p½íkazu vytvo½íte kompaktní verzi jednoho ze
svých denních protokol¾ ²íta²¾, sumarizovanou do ideálních 15minutových interval¾:
relog zakladniDenniProtokol_20031228.blg
-o <nazev-pocitace>.zakladniDenniProtokol.blg -f BIN -t 15
Když ve svých hlášeních pro správu použijete sumarizovaná data, eliminují se všechna
pok½ivení, jež se mohou objevovat, jakmile je zobrazení grafu nuceno vypouštµt tolik
dodate²ných pozorování. Shrnutí 24hodinové periody do 15minutových interval¾ nakonec poskytne trochu ménµ než 100 pozorování na každý ²íta², což je hodnota
ideálnµ zapadající do zobrazení grafu nástroje Sledování systému. Nezapomínejte
ale také na to, že shrnování namµ½ených dat na této úrovni vyhladí mnoho špi²ek
a propad¾ zachycených v originálním, detailním protokolu ²íta²¾. Když zkoumáte
nµjaký výkonnostní problém, budete využívat p¾vodní data protokolu ²íta²¾ a také
všechny detailní protokoly ²íta²¾ daného intervalu, které automaticky vygenerovaly
vaše procedury výstrah.
Tip PodrobnÈ dennÏ vytv·¯enÈ protokoly ËÌtaˢ jsou vhodnÈ pro generov·nÌ hl·öenÌ pro
spr·vu zamϯujÌcÌ se na öpiËkovÈ 1- aû 2hodinovÈ obdobÌ. Jakmile hodinov· rychlost transakcÌ p¯ekroËÌ dvojn·sobek pr˘mÏrnÈ rychlosti transakcÌ, jsou hl·öenÌ pro spr·vu zamϯen· na
takov· öpiËkov· obdobÌ extrÈmnÏ uûiteËn·. Jsou-li v˝konnostnÏ ˙zk· mÌsta patrn· jen bÏhem takov˝ch öpiËkov˝ch zatÌûenÌ, velmi zajÌmav· jsou rovnÏû hl·öenÌ zamϯujÌcÌ se na tato
˙zk· Ëasov· obdobÌ.
Konsolidování výkonnostních dat z více server¿ Zodpovídáte-li za výkon velkého po²tu server¾, pak budete z½ejmµ chtít shromažÅovat protokoly ²íta²¾
z mnoha takových server¾, abyste mohli sestavovat pot½ebná hlášení z jediného
místa. Kv¾li úspo½e diskového prostoru na centrálním místµ bude vhodné provádµt
tuto konsolidaci s využitím sumarizovaných protokol¾ ²íta²¾ a nikoli s objemnými,
p¾vodnµ nasbíranými detailními protokoly ²íta²¾. Takovou konsolidaci lze provádµt dennµ s využitím ½ady automatizovaných procedur následujícím zp¾sobem:
1. Pomocí nástroje Relog vytvo½te na lokálním serverovém po²íta²i sumarizovanou
(souhrnnou) verzi generovaných soubor¾ denních protokol¾ ²íta²¾.
2. Do názvu sumarizovaného souboru, který je výstupem nástroje Relog, za²le¹te
název po²íta²e, odkud protokol ²íta²¾ pochází.
3. Zkopírujte soubor sumarizovaného protokolu ²íta²¾ na nµjaké centrální místo.
4. Na konsolida²ním serveru využijte nástroj Relog a zkombinujte všechny protokoly
²íta²¾ do jediného výstupního souboru, který lze využívat k dennímu hlášení.
Dále v tomto oddílu najdete p½íklady skript¾, které lze použít k automatizování nazna²ených funkcí denního zpracování. Alternativou ke konsolidaci protokol¾ ²íta²¾
nashromáždµných na mnoha po²íta²ích v jednom centrálním místµ bµhem následného zpracování je vytvá½ení všech protokol¾ ²íta²¾ na centrálním umístµní již od
za²átku. Jak je zd¾raznµno v oddílu „Protokolování na místo sdílené v síti“ v této
kapitole, tato volba má dopady na škálovatelnost rozsáhlých serverových farem,
Postupy
pdi sledování
výkonu
Takové sumarizované verze denních protokol¾ ²íta²¾ jsou velmi užite²né k rychlému a výhodnému sestavování hlášení pro správu.
328
Kapitola 4 – Postupy p„i sledování výkonu
takže je zapot½ebí implementovat ji s rozvahou. Podrobnµjší pojednání o tµchto vµcech najdete v oddílu nazvaném „Protokolování místních ²íta²¾ na lokální disk“
d½íve v této kapitole.
P½i vykonávání nástroje Relog s cílem vytvo½it sumarizované denní protokoly ²íta²¾
vhodné k hlášení pro správu a archivaci m¾žete získané výkonnostní metriky ještµ
dále editovat a odstranit ²íta²e, o kterých se v hlášeních pro správu nechcete zmi¹ovat. P½i vykonávání nástroje Relog s cílem vytvo½it sumarizované denní protokoly
²íta²¾ se m¾žete odkazovat na nµjaký soubor nastavení protokolu ²íta²¾, jenž pot½ebnou editaci zajistí.
Máte kup½íkladu možnost zavolat Relog dále uvedeným zp¾sobem, kde souborprenastaveni-citacu-protokolu.txt p½edstavuje užší podmnožinu p¾vodního
zakladni-soubor-nastaveni-citacu.txt použitého ke generování plných denních
protokol¾ ²íta²¾.
relog zakladniDenniProtokol_20031228.blg
-o <nazev-pocitace>.zakladniDenniProtokol.blg
-cf soubor-prenastaveni-citacu-protokolu.txt -f BIN -t 15
Výpis 4.9 ukazuje doporu²ený obsah souboru nastavení ²íta²¾ pro nástroj Relog
vhodný k vytvá½ení sumarizovaných soubor¾ pro denní hlášení pro správu.
VÝPIS 4.9: Soubor-prenastaveni-citacu-protokolu.txt
a) produkt v angli²tinµ:
\LogicalDisk(*)\% Free Space
\LogicalDisk(*)\Free Megabytes
\LogicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(*)\Current Disk Queue Length
\PhysicalDisk(*)\Avg. Disk Queue Length
\PhysicalDisk(*)\Avg. Disk sec/Transfer
\PhysicalDisk(*)\Avg. Disk sec/Read
\PhysicalDisk(*)\Avg. Disk sec/Write
\PhysicalDisk(*)\Disk Transfers/sec
\PhysicalDisk(*)\Disk Reads/sec
\PhysicalDisk(*)\Disk Writes/sec
\PhysicalDisk(*)\Disk Bytes/sec
\PhysicalDisk(*)\Disk Read Bytes/sec
\PhysicalDisk(*)\Disk Write Bytes/sec
\PhysicalDisk(*)\Avg. Disk Bytes/Transfer
\PhysicalDisk(*)\Avg. Disk Bytes/Read
\PhysicalDisk(*)\Avg. Disk Bytes/Write
\PhysicalDisk(*)\% Idle Time
\Processor(*)\% Processor Time
\Processor(*)\% User Time
\Processor(*)\% Privileged Time
\Processor(*)\Interrupts/sec
\Processor(*)\% DPC Time
\Processor(*)\% Interrupt Time
\Memory\Page Faults/sec
\Memory\Available Bytes
\Memory\Committed Bytes
\Memory\Commit Limit
\Memory\Transition Faults/sec
\Memory\Cache Faults/sec
\Memory\Demand Zero Faults/sec
\Memory\Pages/sec
\Memory\Pages Input/sec
\Memory\Page Reads/sec
\Memory\Pages Output/sec
\Memory\Pool Paged Bytes
\Memory\Pool Nonpaged Bytes
\Memory\Page Writes/sec
\Memory\Cache Bytes
\Memory\Pool Paged Resident Bytes
\Memory\System Code Resident Bytes
\Memory\System Driver Resident Bytes
\Memory\System Cache Resident Bytes
\Memory\% Committed Bytes In Use
\Memory\Available KBytes
\Memory\Available MBytes
\Memory\Transition Pages RePurposed/sec
\System\Context Switches/sec
\System\Processor Queue Length
\Process(sqlserver)\% Processor Time
\Process(sqlserver)\% User Time
\Process(sqlserver)\% Privileged Time
\Process(sqlserver)\Virtual Bytes
\Process(sqlserver)\Page Faults/sec
\Process(sqlserver)\Working Set
\Process(sqlserver)\Private Bytes
\Process(sqlserver)\Elapsed Time
\Process(sqlserver)\Pool Paged Bytes
\Process(sqlserver)\Pool Nonpaged Bytes
\Process(inetinfo)\% Processor Time
\Process(inetinfo)\% User Time
\Process(inetinfo)\% Privileged Time
\Process(inetinfo)\Virtual Bytes
\Process(inetinfo)\Page Faults/sec
\Process(inetinfo)\Working Set
\Process(inetinfo)\Private Bytes
\Process(inetinfo)\Elapsed Time
\Process(inetinfo)\Pool Paged Bytes
\Process(inetinfo)\Pool Nonpaged Bytes
\RAS Total\Bytes Transmitted/Sec
\RAS Total\Bytes Received/Sec
\RAS Total\Total Errors/Sec
\Print Queue(*)\Total Jobs Printed
\Print Queue(*)\Bytes Printed/sec
\Print Queue(*)\Total Pages Printed
\Print Queue(*)\Jobs
\Network Interface(*)\Bytes Total/sec
\Network Interface(*)\Packets/sec
\Network Interface(*)\Packets Received/sec
329
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
330
Kapitola 4 – Postupy p„i sledování výkonu
\Network Interface(*)\Packets Sent/sec
\Network Interface(*)\Current Bandwidth
\Network Interface(*)\Bytes Received/sec
\Network Interface(*)\Bytes Sent/sec
\Network Interface(*)\Output Queue Length
\IP\Datagrams/sec
\IP\Datagrams Received/sec
\IP\Datagrams Sent/sec
\TCP\Segments/sec
\TCP\Connections Established
\TCP\Connections Active
\TCP\Connection Failures
\TCP\Connections Reset
\TCP\Segments Received/sec \TCP\Segments Sent/sec
\TCP\Segments Retransmitted/sec
b) produkt s ²eskou lokalizací
\Logický disk(*)\% volného místa
\Logický disk(*)\Volné megabajty
\Logický disk(*)\Aktuální délka fronty disku
\Fyzický disk(*)\Aktuální délka fronty disku
\Fyzický disk(*)\StÁední délka fronty disku
\Fyzický disk(*)\StÁední doba disku/pÁenos
\Fyzický disk(*)\StÁední doba disku/¶tení
\Fyzický disk(*)\StÁední doba disku/zápis
\Fyzický disk(*)\PÁenosy disku/s
\Fyzický disk(*)\›tení z disku/s
\Fyzický disk(*)\Zápisy na disk/s
\Fyzický disk(*)\Bajt disku/s
\Fyzický disk(*)\Bajty ¶tení z disku/s
\Fyzický disk(*)\Bajty zapisování na disk/s
\Fyzický disk(*)\StÁední po¶et bajt disku/pÁenos
\Fyzický disk(*)\StÁední po¶et bajt disku/¶tení
\Fyzický disk(*)\StÁední po¶et bajt disku/zápis
\Fyzický disk(*)\% ¶asu ne¶innosti
\Procesor(*)\% ¶asu procesoru
\Procesor(*)\% uživatelského ¶asu
\Procesor(*)\% privilegovaného ¶asu
\Procesor(*)\PÁerušení/s
\Procesor(*)\% ¶asu DPC
\Procesor(*)\% ¶asu pÁerušení
\Pam¹È\Chyby stránek/s
\Pam¹È\Bajty k dispozici
\Pam¹È\Sv¹Áené bajty
\Pam¹È\Mez sv¹Áení
\Pam¹È\Chyby pÁevodu stavu/s
\Pam¹È\Chyby mezipam¹ti/s
\Pam¹È\Chyby nulových požadavkÂ/s
\Pam¹È\Stránky/s
\Pam¹È\Vstup stránek/s
\Pam¹È\›tení stránek/s
\Pam¹È\Výstup stránek/s
\Pam¹È\Bajty stránkovaného fondu
\Pam¹È\Bajty nestránkovaného fondu
\Pam¹È\Zápisy stránek/s
\Pam¹È\Bajty mezipam¹ti
\Pam¹È\Rezidentní bajty stránkovaného fondu
\Pam¹È\Rezidentní bajty kódu systému
\Pam¹È\Rezidentní bajty systémových ovlada¶Â
\Pam¹È\Rezidentní bajty systémové mezipam¹ti
\Pam¹È\% využití sv¹Áených bajtÂ
\Pam¹È\Po¶et kB k dispozici
\Pam¹È\Po¶et MB k dispozici
\Pam¹È\Zm¹n ú¶elu stran pÁenosu/s
\Systém\PÁepnutí kontextu/s
\Systém\Délka fronty procesoru
\Proces(sqlserver)\% ¶asu procesoru
\Proces(sqlserver)\% uživatelského ¶asu
\Proces(sqlserver)\% privilegovaného ¶asu
\Proces(sqlserver)\Virtuální bajty
\Proces(sqlserver)\Chyby stránek/s
\Proces(sqlserver)\Pracovní sada
\Proces(sqlserver)\Nesdílené bajty
\Proces(sqlserver)\Uplynulý ¶as
\Proces(sqlserver)\Bajty stránkovaného fondu
\Proces(sqlserver)\Bajty nestránkovaného fondu
\Proces(inetinfo)\% ¶asu procesoru
\Proces(inetinfo)\% uživatelského ¶asu
\Proces(inetinfo)\% privilegovaného ¶asu
\Proces(inetinfo)\Virtuální bajty
\Proces(inetinfo)\Chyby stránek/s
\Proces(inetinfo)\Pracovní sada
\Proces(inetinfo)\Nesdílené bajty
\Proces(inetinfo)\Uplynulý ¶as
\Proces(inetinfo)\Bajty stránkovaného fondu
\Proces(inetinfo)\Bajty nestránkovaného fondu
\Celkový po¶et pÁipojení RAS\Odeslané bajty/s
\Celkový po¶et pÁipojení RAS\PÁijaté bajty/s
\Celkový po¶et pÁipojení RAS\Celkový po¶et chyb/s
\Tisková fronta(*)\Celkový po¶et vytisknutých úloh
\Tisková fronta(*)\Po¶et bajt vytisknutých za sekundu
\Tisková fronta(*)\Celkový po¶et vytisknutých stránek
\Tisková fronta(*)\Po¶et úloh
\Rozhraní sít¹(*)\Bajty celkem/s
\Rozhraní sít¹(*)\Pakety/s
\Rozhraní sít¹(*)\PÁijaté pakety/s
\Rozhraní sít¹(*)\Odeslané pakety/s
\Rozhraní sít¹(*)\Aktuální šíÁka pásma
\Rozhraní sít¹(*)\PÁijaté bajty/s
\Rozhraní sít¹(*)\Odeslané bajty/s
\Rozhraní sít¹(*)\Délka fronty výstupu
\IPv4\Datagramy/s
\IPv4\PÁijaté datagramy/s
\IPv4\Odeslané datagramy/s
331
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
332
Kapitola 4 – Postupy p„i sledování výkonu
\TCPv4\Segmenty/s
\TCPv4\Navázaná pÁipojení
\TCPv4\Aktivní pÁipojení
\TCPv4\Chyby pÁipojení
\TCPv4\Resetovaná pÁipojení
\TCPv4\PÁijaté segmenty/s
\TCPv4\Odeslané segmenty/s
\TCPv4\Segmenty odeslané znovu/s
Ukázková hlášení pro správu
Následující oddíl ilustruje hlášení pro správu, která v rámci prezentování souhrnných výkonnostních statistik z½ejmµ shledáte nejužite²nµjšími. Uvedené p½íklady
používají k zachycení výkonnostních dat hlavnµ zobrazení grafu konzoly System
Monitor (Sledování systému). Samoz½ejmµ máte možnost sestavit propracovanµjší
grafy a tabulky, než jak je nabízí Sledování výkonu, použijete-li nástroje jako Microsoft Excel a podobné.
Zde p½edstavená ukázková hlášení pro správu zachycují klí²ové výkonností ²íta²e,
které byste mµli uvádµt. Zárove¹ nejsou grafy a tabulky p½eplnµné údaji, takže je
lze snadno ²íst a dešifrovat. Protokoly ²íta²¾ použité k vygenerování graf¾ byly
shromažÅovány na relativnµ nevýznamném po²íta²i, který v intervalu hlášení vykonával jen minimum ²inností. Smyslem je zamµ½it vaši pozornost na prezentaci dat
a nikoli na údaje samotné. Pokud chcete vidµt p½íklady zajímavµjších tabulek a graf¾ zachycující po²íta²e vykazující problémy s výkonem, podívejte se do kapitoly 5,
„£ešení potíží s výkonem“, kde najdete mnoho takových ukázek.
Informace o tom, jak používat automatiza²ní rozhraní Sledování systému k automatickému generování podobných hlášení pro správu najdete v oddílu nazvaném „Automatiza²ní rozhraní Sledování systému“ v kapitole 6, „Pokro²ilá výkonnostní témata“.
Využití procesoru Obrázek 4.7 ilustruje základní šablonu zobrazení grafu využitelnou v mnoha hlášeních pro správu. Zpráva zachycuje celkové využití procesoru, které
zárove¹ rozdµluje na jeho složkové ²ásti. Bylo vybráno velké, snadno ²itelné písmo,
doplnµny m½ížky os x a y a byl rovnµž použit popisný titulek. Po vytvo½ení šablon hlášení, výbµru požadovaných ²íta²¾ a p½idání p½íslušných prezenta²ních prvk¾ m¾žete
nastavení uložit jako soubor .msc konzoly správy, jenž je opakovanµ použitelný.
Podobný graf, který se zamµ½uje na dvouhodinovou dobu špi²kového zpracování,
je uveden na obrázku 4.8. Opakované používání šablon graf¾ pro podobná hlášení
správy zjednodušuje váš úkol vysvµtlit význam r¾zných graf¾ a tabulek.
Hlášení pro správu denního využívání procesoru uvedené na obrázku 4.7 využívá
jako vstup sumarizovaný soubor denního protokolu ²íta²¾ vytvo½ený nástrojem Relog. Hlášení o špi²kové hodinµ na obrázku 4.8 pracuje s plným, nesumarizovaným
denním protokolem ²íta²¾, p½i²emž ²asové okno je upraveno tak, aby zachycovalo
p½ibližnµ dvµ hodiny dat špi²kového zatížení.
OBRÁZEK 4.7: Hlášení o denním využívání procesoru
OBRÁZEK 4.8: Hlášení o využívání procesoru ve špi:ce
Dostupný diskový prostor Zobrazení histogramu podle obrázku 4.9 je vhodné
pro hlášení dat z ²íta²¾, které mají tendenci k velmi pomalým zmµnám, jako nap½íklad Logical Disk(*)\Free Megabytes [Logický disk(*)\Volné megabajty]. Pomocí
zobrazení histogramu m¾žete velmi rychle ukázat množství volného prostoru na
velkém po²tu serverových disk¾.
Výkon disku Obrázek 4.10 zachycuje problémy s ²itelností, k nimž dochází, když
musíte vynášet více ²íta²¾ na jednu osu y. Vše lze samoz½ejmµ napravit rozumným
využíváním škálovacích hodnot. Budete-li ale hlásit metriky využívající r¾zné hod-
333
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
334
Kapitola 4 – Postupy p„i sledování výkonu
noty mµ½ítek tak, aby je bylo možné vynášet na jedinou osu y, m¾žete tím ²tená½e
hlášení snadno zmást. Obrázek 4.10 zachycuje nastínµný problém, když zárove¹
uvádí mµ½ení výkonu disku ve formµ doby ne²innosti, pomµr¾ ²innosti za½ízení
a reak²ní doby disku. Tyto míry spole²nµ p½esnµ charakterizují výkonnost fyzického disku. Každý jednotlivý ²íta² ale obvykle vyžaduje aplikování jiného škálovacího
mµ½ítka, což ²asto vede ke zmatk¾m.
OBRÁZEK 4.9: Hlášení o volném diskovém prostoru
% Idle Time (Ìíta² % ²asu ne²innosti) ideálnµ spadá do výchozího rozsahu osy y
od nuly do sta; to už ale neplatí pro zbývající metriky. Transfers/sec (P½enosy/s) fyzického disku ²asto p½esahují rychlost 100 za sekundu, takže tento ²íta² nelze vždy
správnµ vykreslit v grafu se stejným mµ½ítkem osy y, jaké využívá % ²asu ne²innosti. Navíc reak²ní dobu disku, jež se mµ½í v milisekundách, je zapot½ebí znásobit škálovací hodnotou 1000, aby mohla být rozumnµ zachycena na téže ose jako % ²asu
ne²innosti. Umístµní nµkolika ²íta²¾ využívajících r¾zné faktory mµ½ítka je doslova
koledováním si o nesprávnou interpretaci.
Tento p½ístup je ale nµkdy nevyhnutelný. Zmatek lze ob²as výraznµ omezit zadáním
vhodného popisku osy y. Alternativa, tedy uvedení t½í samostatných graf¾, každého
pro jedno mµ½ení, není atraktivní, protože obsah graf¾ s hodnotami jednotlivých ²íta²¾ je výraznµ rozdrobený.
SíÇový provoz SíÆový provoz lze hlásit z hlediska jednotlivých síÆových rozhraní
nebo jako sumarizovaná data všech existujících rozhraní sítµ. Jelikož ²íta²e objektu
Network Interface (Rozhraní sítµ) nehlásí využití sítµ p½ímo, umožní vizualizaci relativního využívání daného rozhraní spíše taková šablona hlášení, jakou ilustruje obrázek 4.11. Ten zachycuje jak celkový po²et bajt¾ p½enesených p½es síÆové rozhraní,
tak i aktuální nominální ší½ku pásma dané karty. Zmµ¹te výchozí maximum osy y
tak, aby ²íta² Current Bandwidth (Aktuální ší½ka pásma) p½edstavoval úrove¹ 100%
využití. Ìíta² Bytes Total/sec (Bajty celkem/s) dané instance síÆového rozhraní si
Postupy denního sledování server‘
335
OBRÁZEK 4.10: M?dení výkonu disku s využitím tdí metrik
OBRÁZEK 4.11: Hlášení o provozu na síPovém rozhraní
Historická data pro plánování kapacity
Plánování kapacity p½edstavuje postupy a zásady zavedené za ú²elem prevence
vznik¾ výkonnostních potíží p½i zvyšování a zmµnách pracovního zatížení. Když si
budete ukládat historické záznamy využívání prost½edk¾ po²íta²¾ r¾znými d¾leži-
Postupy
pdi sledování
výkonu
pak lze p½edstavit jako zlomek ší½ky pásma této karty. Nezapome¹te osu y p½íslušným zp¾sobem ozna²it, jak je tomu na obrázku 4.11.
336
Kapitola 4 – Postupy p„i sledování výkonu
tými produk²ními zatíženími, extrapolací z historických trend¾ dokážete p½edpovídat budoucí požadavky na prost½edky.
Procesy plánování kapacity využívají rovnµž p½edpovµdi r¾stu, které vám poskytnou lidé zabývající se klí²ovými produk²ními pracovními zatíženími ve vaší organizaci. Tyto p½edpovµdi r¾stu jsou ²asto projekcemi vycházejícími z p½idávání dalších
klient¾, uživatel¾ takových produk²ních systém¾. Následnµ musíte transformovat
tyto p½edpovµdi r¾stu na sadu požadavk¾ na po²íta²ové prost½edky vycházející
z profilu využívání prost½edk¾ aktuálními klienty. Plánování kapacity obvykle využívá oba druhy p½edpovídaných údaj¾ p½i odhadování budoucích požadavk¾ pracovního zatížení a druh¾ po²íta²ových prost½edk¾ nezbytných ke zvládnutí
takových pracovních zatížení.
Tento oddíl se zamµ½uje na procedury využitelné ke spojení generovaných denních
protokol¾ výkonnostních ²íta²¾ p½i vytvá½ení a udržování databáze obsahující historické záznamy dat využívání po²íta²ových prost½edk¾. Tato data lze dále použít
k podpo½e plánování kapacity a dalších funkcí správy systému. Historický záznam
výkonnostních dat po²íta²¾ se ozna²uje za výkonnostní databázi (Performance Database neboli PDB). Tento oddíl také popisuje procedury použitelné k sestavení
výkonnostní databáze SQL Serveru s využitím nástroj¾ p½íkazového ½ádku popisovaných v kapitole 2, „Nástroje sledování výkonu“. Další oddíl této kapitoly nazvaný
„Práce s repozitá½em SQL Serveru“ probírá použití nástroj¾ jako Microsoft Excel
k analýze dat v PDB SQL Serveru a nabízí p½íklad využití Microsoft Excelu k p½edvídání budoucích kapacitních požadavk¾.
Prod SQL Server?
Microsoft SQL Server je ideální výkonnostní databází. Nemáte-li s touto aplikací zatím zkušenosti, možná nebudete mít chuÆ pouštµt se do implementování výkonnostní databáze SQL Serveru. M¾žete být ale úplnµ klidní – p½i použití nástroj¾
p½íkazového ½ádku, jakými jsou Logman a Relog, m¾žete docela jednoduše využívat
SQL Server k tomuto ú²elu. Microsoft SQL Server je pokro²ilým systémem správy
rela²ních databází (Relational Database Management System – RDBMS) vhodným
pro tento úkol, zejména pokud se jedná o možnost zpracovávání velkého množství
dat pro plánování kapacity, která nakonec shromáždíte. P½i využití SQL Serveru se
nemusíte starat o správu velkého po²tu jednotlivých soubor¾ protokol¾ ²íta²¾. Místo toho m¾žete konsolidovat všechna svá historická data na jednom místµ v jedné
nebo více tabulkách SQL Serveru.
Další výhodou využití aplikace SQL Server jako repozitá½e dat pro plánování kapacity
je to, že p½i hlášení nejste omezeni na práci s nástrojem Sledování systému. Jakmile
budete mít data protokol¾ ²íta²¾ zavedena do SQL Serveru, m¾žete využívat r¾zné nástroje p½ístupu k dat¾m, hlášení a analýzy. Jedním z neoblíbenµjších a nejvýkonnµjších nástroj¾ analytických hlášení je Microsoft Excel. Oddíl této kapitoly nazvaný
„Práce s repozitá½em SQL Serveru“ popisuje, jak používat Microsoft Excel k analýze,
hlášení a p½edvídání pomocí výkonnostních dat uložených do PDB SQL Serveru.
Vytvá„ení historických souhrnných protokol‘
K plánování kapacity jsou zapot½ebí historická data shromažÅovaná a ukládaná po
delší dobu, aby se projevily historické trendy. Tento oddíl ukazuje, jak lze použít
Postupy denního sledování server‘
337
nástroj Relog k sumarizaci dat a akumulaci tµchto údaj¾ protokol¾ ²íta²¾ v zájmu
podpory plánování kapacity.
Soubory sumarizovaných denních protokol¾ ²íta²¾, jež se používají v hlášení pro
správu, obsahují p½íliš mnoho podrobností na to, aby je bylo možné ukládat celé týdny, mµsíce a roky. Zvažte opakované spuštµní nástroje Relog na souborech sumarizovaných denních protokol¾ ²íta²¾ vytvá½ených vaší procedurou denního sledování
výkonu, aby došlo k jejich další editaci a sumarizaci. P½íklad nabízí výpis 4.10.
VÝPIS 4.10: Editace a sumarizace dennÌch protokol˘ ËÌtaˢ
relog <computer-name>.basicDailyLog.blg -o <computername>.dailyHistoryLog.blg
-cf summary-counters-setting-file.txt -f BIN -t 4
Respektive v ²eském prost½edí:
Protože soubory protokol¾ ²íta²¾ definované v našem kódu jako vstup již byly sumarizovány na 15minutové intervaly, zajišÆuje parametr -t 4 další sumarizaci na
jednohodinové úrovni.
Pro dlouhodobé kapacitní plánování má význam jen malý po²et ²íta²¾. Soubor nastavení protokolu ²íta²¾, na který se odkazuje uvedený p½íkaz Relog, vypouští
mnoho hodnot ²íta²¾, které mají z dlouhodobého hlediska jen minimální nebo nulový p½ínos. P½íklad souboru nastavení protokolu ²íta²¾, vhodného pro plánování
kapacity na souborovém a tiskovém serveru, je uveden ve výpisu 4.11.
VÝPIS 4.11: Soubor nastavenÌ protokolu ËÌtaˢ datab·ze pro pl·nov·nÌ kapacity
a) produkt v angli²tinµ
\LogicalDisk(*)\% Free Space
\LogicalDisk(*)\Free Megabytes
\PhysicalDisk(*)\Avg. Disk sec/Transfer
\PhysicalDisk(*)\Avg. Disk sec/Read
\PhysicalDisk(*)\Avg. Disk sec/Write
\PhysicalDisk(*)\Disk Transfers/sec
\PhysicalDisk(*)\Disk Reads/sec
\PhysicalDisk(*)\Disk Writes/sec
\PhysicalDisk(*)\Disk Bytes/sec
\PhysicalDisk(*)\Disk Read Bytes/sec
\PhysicalDisk(*)\Disk Write Bytes/sec
\PhysicalDisk(*)\Avg. Disk Bytes/Transfer
\PhysicalDisk(*)\Avg. Disk Bytes/Read
\PhysicalDisk(*)\Avg. Disk Bytes/Write
\PhysicalDisk(*)\% Idle Time
\Processor(*)\% Processor Time
\Processor(*)\% User Time
\Processor(*)\% Privileged Time
\Processor(*)\Interrupts/sec
\Processor(*)\% DPC Time
Postupy
pdi sledování
výkonu
relog <nazev-pocitace>.zakladniDenniProtokol.blg
-o <nazev-pocitace>.denniHistorickyProtokol.blg
-cf soubor-nastaveni-souhrnnych-citacu.txt -f BIN -t 4
338
Kapitola 4 – Postupy p„i sledování výkonu
\Processor(*)\% Interrupt Time
\Memory\Page Faults/sec
\Memory\Available Bytes
\Memory\Committed Bytes
\Memory\Commit Limit
\Memory\Transition Faults/sec
\Memory\Cache Faults/sec
\Memory\Demand Zero Faults/sec
\Memory\Pages/sec
\Memory\Pages Input/sec
\Memory\Page Reads/sec
\Memory\Pages Output/sec
\Memory\Pool Paged Bytes
\Memory\Pool Nonpaged Bytes
\Memory\Page Writes/sec
\Memory\Cache Bytes
\Memory\Pool Paged Resident Bytes
\Memory\System Cache Resident Bytes
\Memory\% Committed Bytes In Use
\Memory\Available KBytes
\Memory\Available MBytes
\Memory\Transition Pages RePurposed/sec
\Process(svchost,*)\% Processor Time
\Process(svchost,*)\% User Time
\Process(svchost,*)\% Privileged Time
\Process(svchost,*)\Virtual Bytes
\Process(svchost,*)\Page Faults/sec
\Process(svchost,*)\Working Set
\Print Queue(*)\Bytes Printed/sec
\Print Queue(*)\Total Pages Printed
\Print Queue(*)\Jobs
\Network Interface(*)\Bytes Total/sec
\Network Interface(*)\Bytes Received/sec
\Network Interface(*)\Bytes Sent/sec
\IPv4\Datagrams/sec
\IPv4\Datagrams Received/sec
\IPv4\Datagrams Sent/sec
\TCPv4\Segments/sec
\TCPv4\Segments Received/sec
\TCPv4\Segments Sent/sec
b) produkt s ²eskou lokalizací
\Logický
\Logický
\Fyzický
\Fyzický
\Fyzický
\Fyzický
\Fyzický
\Fyzický
\Fyzický
\Fyzický
disk(*)\% volného místa
disk(*)\Volné megabajty
disk(*)\StÁední doba disku/pÁenos
disk(*)\StÁední doba disku/¶tení
disk(*)\StÁední doba disku/zápis
disk(*)\PÁenosy disku/s
disk(*)\›tení z disku/s
disk(*)\Zápisy na disk/s
disk(*)\Bajt disku/s
disk(*)\Bajty ¶tení z disku/s
\Fyzický disk(*)\Bajty zapisování na disk/s
\Fyzický disk(*)\StÁední po¶et bajt disku/pÁenos
\Fyzický disk(*)\StÁední po¶et bajt disku/¶tení
\Fyzický disk(*)\StÁední po¶et bajt disku/zápis
\Fyzický disk(*)\% ¶asu ne¶innosti
\Procesor(*)\% ¶asu procesoru
\Procesor(*)\% uživatelského ¶asu
\Procesor(*)\% privilegovaného ¶asu
\Procesor(*)\PÁerušení/s
\Procesor(*)\% ¶asu DPC
\Procesor(*)\% ¶asu pÁerušení
\Pam¹È\Chyby stránek/s
\Pam¹È\Bajty k dispozici
\Pam¹È\Sv¹Áené bajty
\Pam¹È\Mez sv¹Áení
\Pam¹È\Chyby pÁevodu stavu/s
\Pam¹È\Chyby mezipam¹ti/s
\Pam¹È\Chyby nulových požadavkÂ/s
\Pam¹È\Stránky/s
\Pam¹È\Vstup stránek/s
\Pam¹È\›tení stránek/s
\Pam¹È\Výstup stránek/s
\Pam¹È\Bajty stránkovaného fondu
\Pam¹È\Bajty nestránkovaného fondu
\Pam¹È\Zápisy stránek/s
\Pam¹È\Bajty mezipam¹ti
\Pam¹È\Rezidentní bajty stránkovaného fondu
\Pam¹È\Rezidentní bajty systémové mezipam¹ti
\Pam¹È\% využití sv¹Áených bajtÂ
\Pam¹È\Po¶et kB k dispozici
\Pam¹È\Po¶et MB k dispozici
\Pam¹È\Zm¹n ú¶elu stran pÁenosu/s
\Proces(svchost,*)\% ¶asu procesoru
\Proces(svchost,*)\% uživatelského ¶asu
\Proces(svchost,*)\% privilegovaného ¶asu
\Proces(svchost,*)\Virtuální bajty
\Proces(svchost,*)\Chyby stránek/s
\Proces(svchost,*)\Pracovní sada
\Tisková fronta(*)\Po¶et bajt vytisknutých za sekundu
\Tisková fronta(*)\Celkový po¶et vytisknutých stránek
\Tisková fronta(*)\Po¶et úloh
\Rozhraní sít¹(*)\Bajty celkem/s
\Rozhraní sít¹(*)\PÁijaté bajty/s
\Rozhraní sít¹(*)\Odeslané bajty/s
\IPv4\Datagramy/s
\IPv4\PÁijaté datagramy/s
\IPv4\Odeslané datagramy/s
\TCPv4\Segmenty/s
\TCPv4\PÁijaté segmenty/s
\TCPv4\Odeslané segmenty/s
339
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
340
Kapitola 4 – Postupy p„i sledování výkonu
Jak bylo právµ zmínµno, jelikož má pro plánování kapacity význam jen malý po²et
²íta²¾, soubor nastavení protokolu ²íta²¾ m¾že být ještµ stru²nµjší než náš p½íklad
ve výpisu 4.11. Zde se zachovávají jen vysokoúrov¹ové statistiky využití procesoru,
pamµti, disku a sítµ spole²nµ s ur²itými statistikami proces¾ aplikací serveru a statistik souvisejících s pracovním zatížením a propustností tiskárny.
Akumulování historických dat Procedura p½íkazu Relog (viz výpis 4.10) konstruuje binární protokol ²íta²¾ z denního souboru a sumarizuje jej na jednohodinové intervaly. Hodinové intervaly jsou vhodné pro dlouhodobé plánování kapacity,
p½edvídání zatížení a zachycování trend¾. V p½ípadµ plánování kapacity budete muset sestavit a spravovat soubor sumarizovaných historických protokol¾ ²íta²¾, který
bude obsahovat informace v rozsahu týdn¾, mµsíc¾ a dokonce i rok¾. Toho dosáhnete použitím volby p½ipojení dat v nástroji Relog. Kup½íkladu dále uvedený
p½íkaz využívá Relog parametr -a k doplnµní denního sumarizovaného protokolu
²íta²¾ k souboru protokolu ²íta²¾, jenž obsahuje nashromáždµné historické údaje:
relog <computer-name>.dailyHistoryLog.blg –o
<computer-name>.historyPerformanceLog.blg -f BIN -a
Respektive v ²eském prost½edí:
relog <nazev-pocitace>.denniHistorickyProtokol.blg
-o <nazev-pocitace>.historickyProtokolVykonu.blg -f BIN -a
Volba -a p½edpokládá existenci výstupního souboru protokolu ²íta²¾.
Vytvo„ení výkonnostní databáze SQL Serveru
Než budete moci použít nástroje p½íkazového ½ádku jako Logman a Relog k naplnµní výkonnostní databáze SQL Serveru, musíte si nainstalovat instanci tohoto programu a definovat a nakonfigurovat databázi SQL Serveru, kterou budete používat
jako PDB. M¾žete si nainstalovat samostatnou instanci SQL Serveru používanou výhradnµ jako PDB, nebo sdílet SQL Server s ostatními aplikacemi. Jakmile vyberete
instanci SQL Serveru, kterou máte v úmyslu používat, definujte výkonnostní databázi následujícími kroky:
1. Nadefinujte databázi, do níž chcete ukládat výkonnostní data. Pomocí
konzoly SQL Enterprise Manager definujte novou databázi a alokujte diskový
prostor pro ni a jí p½idružený protokol obnovy databáze. V našem p½íkladu jsme
využívanou databázi nazvali PDB. Jakmile je tato databáze vytvo½ená, m¾žete
p½istupovat k systémovým tabulkám, jež se sestavují automaticky.
2. Definujte pravidla zabezpe³ení této databáze. Zabezpe²ení je zásadní prvek
správy databází SQL Serveru. Dokud specificky nezadáte p½ístupová oprávnµní,
žádní externí uživatelé se nemohou k databázi p½ipojit a získat p½ístup k informacím uloženým v databázi PDB. Musíte nadefinovat p½inejmenším jedno nové
p½ihlášení k databázi a danému uživateli umožnit p½ístup k PDB, jak to zachycuje obrázek 4.12. V našem p½ípadµ je nové p½ihlášení k databázi ozna²eno PDBAccess a má standardnµ p½ístup k databázi PDB.
Postupy denního sledování server‘
341
Vaše používaná instance SQL Serveru musí být nastavena tak, aby využívala
pouze ovµ½ování Microsoft Windows NT. Navíc je nutné definovat pojmenovaného uživatele s odpovídajícími údaji, kterým je v našem p½ípadµ uživatel nazvaný PDB-Access. Na úrovni databáze PDB musíte rovnµž definovat oprávnµní
platná pro právµ zadané p½ihlášení. Obrázek 4.13 ukazuje vlastnosti uživatele
databáze PDB pro p½ihlášení PDB-Access. Ú²et má v našem p½ípadµ oprávnµní
používat všechny dostupné bezpe²ností role databáze. Tomuto p½ihlášení musíte p½i½adit p½inejmenším oprávnµní db_owner a db_datawriter. Role db_owner
mu umožní definovat, p½idávat a mµnit databázové tabulky a db_datawriter
umož¹uje uživateli aktualizovat data a p½idávat je do definovaných tabulek.
3. Definujte p¾ipojení ODBC používané pro p¾ístup k dané databázi PDB.
Aby mohly k databázi p½istupovat programy jako utilita Relog, služba Výstrahy
a protokolování výkonu, konzola Sledování systému kv¾li hlášení a Microsoft
Excel p½i extrakci dat a jejich analýze, musíte definovat systémové p½ipojení
DSN. Pomocí správce ODBC p½idejte nové systémové p½ipojení DSN, které bude
používat pro umožnµní p½ístupu k právµ definované databázi PDB ovlada² SQL
Serveru – podívejte se na obrázek 4.14.
Tím se spustí pr¾vodce p½ipojením ODBC, jenž vám umožní toto p½ipojení nastavit, jak jej zachycuje obrázek 4.15.
Musíte zadat název p½ipojení, jak je tu uvedeno, a p½ipojení nasmµrovat na p½íslušnou instanci a databázi SQL Serveru. V našem p½íkladu je názvem p½ipojení
PDB. Dále je zapot½ebí zadat údaje o zabezpe²ení tohoto p½ipojení, jak zachycuje obrázek 4.16.
Postupy
pdi sledování
výkonu
OBRÁZEK 4.12: Definování nového pdihlášení k databázi
342
Kapitola 4 – Postupy p„i sledování výkonu
OBRÁZEK 4.13: Vlastnosti databázového uživatele s pdihlášením PDB-Access
OBRÁZEK 4.14: Umožn?ní pdístupu k databázi PDB prostdednictvím ovlada:e SQL Serveru
Zaškrtávací polí²ko Connect To SQL Server To Obtain Default Settings For
The Additional Configuration Options, které je na obrázku 4.16 aktivované,
vám dovoluje plnµ otestovat oprávnµní daného p½ipojení, jakmile je jeho definice dokon²ena. Pokra²ujte ve vypl¹ování formulá½¾ nabízených pr¾vodcem p½ipojení ODBC a testování p½ipojení uzav½ete stiskem tla²ítka Finish.
Postupy denního sledování server‘
343
Postupy
pdi sledování
výkonu
OBRÁZEK 4.15: Práce s prSvodcem pdipojení ODBC
OBRÁZEK 4.16: Ov?dení autenti:nosti pdipojení
Zaplngní repozitá„e
Po nadefinování p½ipojení ODBC m¾žete za²ít s nahráváním dat protokol¾ ²íta²¾
do vytvo½ené databáze PDB. Protože máte v plánu v PDB nashromáždit velké
množství historických informací o výkonu, dokonce i sumarizovaný denní protokol
²íta²¾, který jste vytvo½ili kv¾li sestavování denních hlášení pro správu, obsahuje
mnohem více dat, než je pro ú²ely plánování kapacity zapot½ebí. Podobnµ jako
v p½ípadµ zpracování zadaného p½i údržbµ historického protokolu ²íta²¾ v binárním
formátu, jak bylo probíráno v oddílu „Vytvá½ení historických souhrnných protokol¾“, bude vhodné tyto údaje dále sumarizovat a vypustit všechny ²íta²e, jejichž zachovávání po delší dobu nemá význam.
Kup½íkladu dále uvedený p½íkaz Relog p½ebírá jeden nebo více sumarizovaných
denních soubor¾ protokol¾ ²íta²¾, které vytvá½ejí soubor historie, a vkládá výstup
do databáze PDB:
344
Kapitola 4 – Postupy p„i sledování výkonu
relog <computer-name>.historyPerformanceLog.blg -o "SQL:PDB! ByHour" –f SQL
–cf c:\perflogs\summary-counters-setting-file.txt
Respektive v ²eském prost½edí:
relog <nazev-pocitace>.historickyProtokolVykonu.blg -o "SQL:PDB!Hodinove"
-f SQL -cf c:\perflogs\soubor-nastaveni-souhrnnych-citacu.txt
Specifikace výstupního souboru, -o „SQL:PDB!Hodinove“, identifikuje p½ipojení
ODBC nazvané PDB a definuje pododdíl databáze PDB nazvaný Hodinove. V jedné databázi PDB m¾žete definovat nµkolik databází pro plánování kapacity, když je
budete identifikovat odlišnými názvy.
Jakmile se vykoná uvedený p½íkaz, vytvo½í tabulky databáze PDB používané k ukládání dat protokolu ²íta²¾. Prost½ednictvím konzoly SQL Enterprise Manager si m¾žete ovµ½it, že tabulky protokol¾ ²íta²¾ byly správnµ vytvo½eny. Obrázek 4.17
zachycuje stav databáze PDB po vykonání p½íkazu Relog, který se odkazuje na p½ipojení ODBC v databázi PDB aplikace SQL Server.
OBRÁZEK 4.17: Stav databáze PDB po vykonání pdíkazu Relog
Data protokolu ²íta²¾ jsou uložena ve t½ech tabulkách SQL Serveru – CounterData,
CounterDetails a DisplayToID. Formát tµchto tabulek SQL Serveru odráží datový
model používaný nástroji a službami sledování výkonu k udržování repozitá½e dat
protokolu ²íta²¾ SQL Serveru. Tento datový model je detailnµ probírán v oddílu
nazvaném „Práce s repozitá½em SQL Serveru“.
Automatizované zpracování protokol‘ dítad‘
V p½edchozích oddílech této kapitoly byly na²rtnuty procedury vykonávající následující funkce:
„ ShromažÅování denních protokol¾ výkonnostních ²íta²¾,
„ sbµr diagnostických protokol¾ ²íta²¾ v reakci na výstrahy,
„ sumarizování denních protokol¾ výkonnostních ²íta²¾ p½i sestavování hlášení
pro správu,
„ zaplnµní repozitá½e v SQL Serveru, který lze používat p½i plánování kapacity.
Postupy denního sledování server‘
345
Jedná se o funkce, jež je zapot½ebí vykonávat automaticky na všech po²íta²ích se
systémem Windows Server 2003, které vyžadují trvalé monitorování výkonu. V tomto oddílu najdete ukázkový skript zajišÆující automatizaci uvedených denních procedur. Tento skript je napsán v jazyce VBScript a m¾žete jej snadno p½izp¾sobit
svému prost½edí. Bude se odkazovat na soubory nastavení ²íta²¾ ukázané v p½edchozích oddílech, jež vytvá½ejí sumarizované soubory protokol¾ ²íta²¾ a využívají
databázi PDB v SQL Serveru definovanou v p½edchozím oddílu.
Úplný skript následného zpracování je uveden ve výpisu 4.12. Je rozsáhle okomentovaný a naplnµný zprávami Wscript.Echo; všechny tyto informace vám umožní
skript jednoduše upravit tak, aby lépe vyhovµl konkrétním požadavk¾m vašeho
prost½edí. Chcete-li aktivovat zmínµné diagnostické zprávy Wscript.Echo, odstra¹te
zna²ku komentá½e Microsoft Visual Basicu, což je znak apostrofu (').
‘VBscript for post-processing daily performance Counter Logs
‘
‘Initialization
CreatedTodayDate = Now
Const OverwriteExisting = True
Const LogType = "blg"
Const OldLogType = "Windows Backup File"
Const PMFileType = "Performance Monitor File"
Const relogSettingsFileName = "c:\perflogs\relog-counters-setting-file.txt"
Const relogParms = "-f BIN -t 15"
Const relogSummaryParms = "-f BIN -t 4"
Const relogHistoryParms = "-f BIN -a"
Const HistorySettingsFileName = "c:\perflogs\summary-counters-settingfile.txt"
Const PerflogFolderToday = "C:\Perflogs\Today"
Const PerflogFolderYesterday = "C:\Perflogs\Yesterday"
Const PerflogFolderAlerts = "C:\Perflogs\Alert Logs"
Const PerflogFolderHistory = "C:\Perflogs\History"
Set WshShell = CreateObject("Wscript.Shell")
Set objEnv = WshShell.Environment("Process")
LogonServer = objENV("COMPUTERNAME")
DailyFileName = PerflogFolderYesterday & "\" & LogonServer & "." & _
"basic_daily_logDailyLog" & "." & LogType
SummaryFileName = PerflogFolderYesterday & "\" & LogonServer & "." & _
"basic_history_logHistoryLog" & "." & LogType
HistoryFileName = PerflogFolderHistory & "\" & LogonServer & "." & _
"history_performance_logPerformanceLog" & "." & LogType
‘WScript.Echo DailyFileName
‘WScript.Echo SummaryFileName
‘WScript.Echo HistoryFileName
Const AlertDaysOld = 3 ‘Number of days to keep Alert-generated
Counter Log files
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
Postupy
pdi sledování
výkonu
Výpis 4.12 Ukázkový skript následného zpracování
346
Kapitola 4 – Postupy p„i sledování výkonu
If objFSO1.FolderExists(PerflogFolderYesterday) Then
Set objYesterdayFolder = objFSO1.GetFolder(PerflogFolderYesterday)
Else
Wscript.Echo "Yesterday folder does not exist. Will create " &
PerflogFolderYesterday
Set objYesterdayFolder = objFSO1.CreateFolder(PerflogFolderYesterday)
End If
Set objYesterdayFolder = objFSO1.GetFolder(PerflogFolderYesterday)
Set objTodayFolder = objFSO1.GetFolder(PerflogFolderToday)
Set objAlertsFolder = objFSO1.GetFolder(PerflogFolderAlerts)
‘Wscript.Echo "Begin Script Body"
objYesterdayFolder.attributes = 0
Set fc1 = objYesterdayFolder.Files
‘Wscript.Echo "Look for Yesterday's older backup files..."
For Each f1 in fc1
‘Wscript.Echo "Found " & f1.name & " in " & PerflogFolderYesterday
‘Wscript.Echo "File type is " & f1.type
If f1.type = OldLogType Then
‘Wscript.Echo "Old files of type " & f1.type & " will be deleted."
filename = PerflogFolderYesterday & "\" & f1.name
‘Wscript.Echo "Delete " & filename
objFSO1.DeleteFile(filename)
End If
Next
‘Wscript.Echo "Look for Yesterday's .blg files..."
For Each f1 in fc1
‘Wscript.Echo "Found " & f1.name & " in " & PerflogFolderYesterday
If f1.type = PMFileType Then
NewName = PerflogFolderYesterday & "\" & f1.name & "." & "bkf"
‘Wscript.Echo f1.name & " will be renamed to " & NewName
filename = PerflogFolderYesterday & "\" & f1.name
‘Wscript.Echo "Rename " & filename
objFSO1.MoveFile filename, NewName
End If
Next
objYesterdayFolder.attributes = 0
‘Wscript.Echo "Look at Today's files..."
‘Wscript.Echo "Today is " & CStr(CreatedTodayDate)
Set fc2 = objTodayFolder.Files
For Each f2 in fc2
filename = PerflogFolderToday & "\" & f2.name
FileCreatedDate = CDate (f2.DateCreated)
‘Wscript.Echo filename & " was created on " & CStr (FileCreatedDate)
If DateDiff ("d", CreatedTodayDate, FileCreatedDate) = 0 Then
‘Wscript.Echo "Skipping the file currently in use: " & filename
Else
‘Wscript.Echo filename & " is " & CStr(DateDiff("d", FileCreatedDate,
CreatedTodayDate)) & " day(s) old."
‘Wscript.Echo "Copying " & filename & " to " & PerflogFolderYesterday
objFSO1.CopyFile filename, PerflogFolderYesterday & "/"
relogfiles = relogfiles & PerflogFolderYesterday & "\" & f2.name & " "
End If
Next
‘Wscript.Echo "Today's files to send to relog: " & relogfiles
command = "relog " & relogfiles & "" -o " & DailyFileName & " -cf " _
& relogSettingsFileName & " " & relogParms
‘Wscript.Echo "Relog command string: " & command
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set execCommand = WshShell.Exec(command)
Wscript.Echo execCommand.StdOut.ReadAll
command = "relog " & DailyFileName & _
" -o " & SummaryFileName & " -cf " & HistorySettingsFileName _
& " " & relogSummaryParms
‘Wscript.Echo "Relog command string: " & command
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set execCommand = WshShell.Exec(command)
Wscript.Echo execCommand.StdOut.ReadAll
If (objFSO1.FileExists(HistoryFileName)) Then
command = "relog " & HistoryFileName & " " & SummaryFileName & _
" -o " & HistoryFileName & " " & relogHistoryParms
‘Wscript.Echo "Relog command string: " & command
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set execCommand = WshShell.Exec(command)
Wscript.Echo execCommand.StdOut.ReadAll
Else
objFSO1.CopyFile SummaryFileName, HistoryFileName
End If
‘Copy the summarized daily file to a Counter Log data consolidation server
‘ objFSO1.CopyFile DailyFileName, <somewhere>
‘Wscript.Echo "Deleting files after processing"
For Each f2 in fc2
filename = PerflogFolderToday & "\" & f2.name
FileCreatedDate = CDate (f2.DateCreated)
If DateDiff ("d", CreatedTodayDate, FileCreatedDate) = 0 Then
‘Wscript.Echo "Skipping the file currently in use: " & filename
Else
‘Wscript.Echo "Deleting " & filename & " from " & PerflogFolderToday
objFSO1.DeleteFile(filename)
End If
Next
Set fc3 = objAlertsFolder.Files
‘Wscript.Echo "Look for older Alert-generated log files ..."
For Each f3 in fc3
‘Wscript.Echo "Found " & f3.name & " in " & PerflogFolderAlerts
filename = PerflogFolderAlerts & "\" & f3.name
FileCreatedDate = CDate (f3.DateCreated)
‘Wscript.Echo filename & " is " & CStr(DateDiff("d", FileCreatedDate,
CreatedTodayDate)) & " day(s) old."
If DateDiff ("d", FileCreatedDate, CreatedTodayDate) < AlertDaysOld Then
‘Wscript.Echo "Skipping recently created Alert Counter Log file: " &
filename
Else
347
Postupy
pdi sledování
výkonu
Postupy denního sledování server‘
348
Kapitola 4 – Postupy p„i sledování výkonu
‘Wscript.Echo "Deleting " & filename & " from " &
PerflogFolderToday
objFSO1.DeleteFile(filename)
End If
Next
Respektive v ²eském prost½edí:
'VBScript pro další zpracování denních protokol výkonnostních ¶íta¶Â
'
'Inicializace
DnesniDatumVytvoreni = Now
Const
Const
Const
Const
PrepsatExistujici = True
TypProtokolu = "blg"
StaryTypProtokolu = "Windows Backup File"
TypSouboruSV = "Performance Monitor File"
Const NazevSouboruPrenastaveniProtokolu = "c:\perflogs\soubor-prenastavenicitacu-protokolu.txt"
Const parametryPrenastaveni = "-f BIN -t 15"
Const parametryPrenastaveniSouhrnu = "-f BIN -t 4"
Const parametryPrenastaveniHistorie = "-f BIN -a"
Const SouborNastaveniSouhrnnychCitacu = "c:\perflogs\soubor-nastavenisouhrnnych-citacu.txt"
Const
Const
Const
Const
SlozkaPerflogDnes = "C:\Perflogs\Dnes"
SlozkaPerflogVcera = "C:\Perflogs\Vcera"
SlozkaPerflogVystrahy = "C:\Perflogs\Protokoly vystrah"
SlozkaPerflogHistorie = "C:\Perflogs\Historie"
Set WshShell = CreateObject("Wscript.Shell")
Set objEnv = WshShell.Environment("Process")
PrihlasovaciServer = objENV("COMPUTERNAME")
NazevDennihoSouboru = SlozkaPerflogVcera & "\" & PrihlasovaciServer & _
"." & "zakladni_denni_protokol" & "." & TypProtokolu
NazevSouboruSouhrnu = SlozkaPerflogVcera & "\" & PrihlasovaciServer & _
"." & "zakladni_historicky_protokol" & "." & TypProtokolu
NazevSouboruHistorie = SlozkaPerflogHistorie & "\" & PrihlasovaciServer & _
"." & "protokol_historie_vykonnosti" & "." & TypProtokolu
'WScript.Echo NazevDennihoSouboru
'WScript.Echo NazevSouboruSouhrnu
'WScript.Echo NazevSouboruHistorie
'Po¶et dn zachování soubor protokol ¶íta¶Â generovaných výstrahami
Const PocetDnuVystrahy = 3
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
If objFSO1.FolderExists(SlozkaPerflogVcera) Then
Set objSlozkaVcera = objFSO1.GetFolder(SlozkaPerflogVcera)
Else
Postupy denního sledování server‘
349
Wscript.Echo "Složka Vcera neexistuje. Dojde k vytvoÁení složky " & _
SlozkaPerflogVcera
Set objSlozkaVcera = objFSO1.CreateFolder(SlozkaPerflogVcera)
End If
Set objSlozkaVcera = objFSO1.GetFolder(SlozkaPerflogVcera)
Set objDnesFolder = objFSO1.GetFolder(SlozkaPerflogDnes)
Set objAlertsFolder = objFSO1.GetFolder(SlozkaPerflogVystrahy)
'Wscript.Echo "Hledání starších záložních soubor ve složce Vcera..."
For Each f1 in fc1
'Wscript.Echo "Nalezen soubor " & f1.name & " v " & SlozkaPerflogVcera
'Wscript.Echo "Typem souboru je " & f1.type
If f1.type = StaryTypProtokolu Then
'Wscript.Echo "Staré soubory typu " & f1.type & " budou odstran¹ny."
nazev_souboru = SlozkaPerflogVcera & "\" & f1.name
'Wscript.Echo "Odstran¹ní souboru " & nazev_souboru
objFSO1.DeleteFile(nazev_souboru)
End If
Next
'Wscript.Echo "Hledání soubor .blg ve složce Vcera..."
For Each f1 in fc1
'Wscript.Echo "Nalezen soubor " & f1.name & " v " & SlozkaPerflogVcera
If f1.type = TypSouboruSV Then
NovyNazev = SlozkaPerflogVcera & "\" & f1.name & "." & "bkf"
'Wscript.Echo f1.name & " bude pÁejmenován na " & NovyNazev
nazev_souboru = SlozkaPerflogVcera & "\" & f1.name
'Wscript.Echo "PÁejmenování souboru " & nazev_souboru
objFSO1.MoveFile nazev_souboru, NovyNazev
End If
Next
objSlozkaVcera.attributes = 0
'Wscript.Echo "Hledání soubor ve složce Dnes..."
'Wscript.Echo "Dnes je " & CStr(DnesniDatumVytvoreni)
Set fc2 = objDnesFolder.Files
For Each f2 in fc2
nazev_souboru = SlozkaPerflogDnes & "\" & f2.name
DatumVytvoreniSouboru = CDate(f2.DateCreated)
'Wscript.Echo nazev_souboru & " byl vytvoÁen " & CStr
(DatumVytvoreniSouboru)
If DateDiff ("d", DnesniDatumVytvoreni, DatumVytvoreniSouboru) = 0 Then
'Wscript.Echo "PÁesko¶ení aktuáln¹ používaného souboru: " & _
nazev_souboru
Else
Postupy
pdi sledování
výkonu
'Wscript.Echo "Za¶átek t¹la skriptu"
objSlozkaVcera.attributes = 0
Set fc1 = objSlozkaVcera.Files
350
Kapitola 4 – Postupy p„i sledování výkonu
'Wscript.Echo nazev_souboru & " je " & CStr(DateDiff("d",
DatumVytvoreniSouboru, DnesniDatumVytvoreni) ) & " dnu stary."
'Wscript.Echo "Kopírování " & nazev_souboru & " do " & _
SlozkaPerflogVcera
objFSO1.CopyFile nazev_souboru, SlozkaPerflogVcera & "/"
prenastavene_soubory = prenastavene_soubory & SlozkaPerflogVcera & _
"\" & f2.name & " "
End If
Next
'Wscript.Echo "Soubory složky Dnes odesílané na pÁeprotokolování: " & _
prenastavene_soubory
prikaz = "relog " & prenastavene_soubory & "" -o " & _
NazevDennihoSouboru & " -cf " & NazevSouboruPrenastaveniProtokolu & _
" " & parametryPrenastaveni
'Wscript.Echo "§et¹zec pÁíkazu Relog: " & prikaz
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set vykonavanyPrikaz = WshShell.Exec(prikaz)
Wscript.Echo vykonavanyPrikaz.StdOut.ReadAll
prikaz = "relog " & NazevDennihoSouboru & " -o " & _
NazevSouboruSouhrnu & " -cf " & SouborNastaveniSouhrnnychCitacu & " " _
& parametryPrenastaveniSouhrnu
'Wscript.Echo "§et¹zec pÁíkazu Relog: " & prikaz
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set vykonavanyPrikaz = WshShell.Exec(prikaz)
Wscript.Echo vykonavanyPrikaz.StdOut.ReadAll
If (objFSO1.FileExists(NazevSouboruHistorie)) Then
prikaz = "relog " & NazevSouboruHistorie & " " & NazevSouboruSouhrnu & _
" -o " & NazevSouboruHistorie & " " & parametryPrenastaveniHistorie
'Wscript.Echo "§et¹zec pÁíkazu Relog: " & prikaz
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set vykonavanyPrikaz = WshShell.Exec(prikaz)
Wscript.Echo vykonavanyPrikaz.StdOut.ReadAll
Else
objFSO1.CopyFile NazevSouboruSouhrnu, NazevSouboruHistorie
End If
'Zkopírovat souhrnný denní soubor na konsolida¶ní server dat protokolÂ
¶íta¶Â
' objFSO1.CopyFile NazevDennihoSouboru, <n¹kde>
'Wscript.Echo "Odstran¹ní soubor po zpracování"
For Each f2 in fc2
nazev_souboru = SlozkaPerflogDnes & "\" & f2.name
DatumVytvoreniSouboru = CDate(f2.DateCreated)
If DateDiff ("d", DnesniDatumVytvoreni, DatumVytvoreniSouboru) = 0 Then
Postupy denního sledování server‘
351
'Wscript.Echo "PÁesko¶ení aktuáln¹ používaného souboru " & _
nazev_souboru
Else
'Wscript.Echo "Odstran¹ní " & nazev_souboru & " z " & SlozkaPerflogDnes
objFSO1.DeleteFile(nazev_souboru)
End If
Next
'Wscript.Echo "Hledání starších soubor protokol generovaných
výstrahami..."
For Each f3 in fc3
'Wscript.Echo "Nalezen " & f3.name & " v " & SlozkaPerflogVystrahy
nazev_souboru = SlozkaPerflogVystrahy & "\" & f3.name
DatumVytvoreniSouboru = CDate(f3.DateCreated)
'Wscript.Echo nazev_souboru & " je " & CStr(DateDiff("d",
DatumVytvoreniSouboru, DnesniDatumVytvoreni)) & " dn starý."
If DateDiff ("d", DatumVytvoreniSouboru, DnesniDatumVytvoreni) <
PocetDnuVystrahy Then
'Wscript.Echo "PÁeskok nedávno vytvoÁeného souboru protokol ¶íta¶Â
výstrah: " & nazev_souboru
Else
'Wscript.Echo "Odstran¹ní " & nazev_souboru & " z " & SlozkaPerflogDnes
objFSO1.DeleteFile(nazev_souboru)
End If
Next
Uvedený ukázkový skript bude automaticky spouštµt služba Performance Logs and
Alerts (Výstrahy a protokolování výkonu), jakmile smlogsvc uzav½e jeden denní
protokol ²íta²¾ a otev½e následující. K automatickému spuštµní skriptu v okamžiku,
kdy chcete vykonat kroky následného zpracování, m¾žete využít také Task Scheduler (Plánova² úloh).
Následující oddíly detailnµ probírají logiku využívanou ve skriptu dalšího zpracování pro p½ípad, že si jej budete chtít p½izp¾sobit.
Inicializace skriptu
Oddíl inicializace našeho ukázkového skriptu nastavuje po²áte²ní hodnoty ½ady
používaných konstant. Zmµnou po²áte²ních hodnot tµchto konstant m¾žete snadno
zmµnit chování skriptu tak, aby vyhovovalo vašemu prost½edí, aniž by bylo zapot½ebí mµnit vlastní logiku skriptu. Kup½íkladu následující ½ádky nastavují po²áte²ní
hodnoty ²ty½ ½etµzcových promµnných, jež se odkazují na složky obsahující protokoly ²íta²¾ spravované skriptem:
Const
Const
Const
Const
SlozkaPerflogDnes = "C:\Perflogs\Dnes"
SlozkaPerflogVcera = "C:\Perflogs\Vcera"
SlozkaPerflogVystrahy = "C:\Perflogs\Protokoly vystrah"
SlozkaPerflogHistorie = "C:\Perflogs\Historie"
P½edpokládá se, že SlozkaPerflogDnes ukazuje na místo, kam služba Výstrahy
a protokolování výkonu zapisuje denní protokoly ²íta²¾. Také se p½edpokládá, že
Postupy
pdi sledování
výkonu
Set fc3 = objAlertsFolder.Files
352
Kapitola 4 – Postupy p„i sledování výkonu
SlozkaPerflogVystrahy smµ½uje na složku, kam se zapisují protokoly ²íta²¾ spuštµ-
né hodinovým sledováním výstrah. Skript bude p½esunovat v²erejší protokoly ²íta²¾
C:\Perflogs\Dnes
do
C:\Perflogs\Vcera,
p½i²emž
složku
ze
složky
C:\Perflogs\Vcera vytvo½í, jestliže zatím neexistuje. Skript bude také odstra¹ovat
protokoly ²íta²¾ ze složky C:\Perflogs\Protokoly vystrah, jakmile jsou starší než t½i
dny. Další konstanta, nazvaná PocetDnuVystrahy, obsahuje kritérium zastarávání
platné pro složku Protokoly vystrah. Chcete-li zachovávat diagnostické protokoly
²íta²¾ vygenerované automaticky spuštµním podmínek výstrah po dobu 10 dn¾,
sta²í zmµnit inicializa²ní hodnotu promµnné PocetDnuVystrahy takto:
Const PocetDnuVystrahy = 10
Pro p½ístup k vestavµné promµnné prost½edí COMPUTERNAME používá skript objekt
WshShell. Zmínµná promµnná se používá k vytvo½ení názvu souboru sumarizovaného protokolu ²íta²¾, který nástroj relog vytvo½í z jakéhokoli nalezeného detailního protokolu ²íta²¾. Když bude mít soubor protokolu ²íta²¾ ve svém názvu
ozna²ení po²íta²e, z nµhož pochází, bude snáze identifikovatelný.
Set WshShell = CreateObject("Wscript.Shell")
Set objEnv = WshShell.Environment("Process")
PrihlasovaciServer = objENV("COMPUTERNAME")
NazevDennihoSouboru = SlozkaPerflogVcera & "\" & PrihlasovaciServer & _
"." & "zakladni_denni_protokol" & "." & TypProtokolu
'WScript.Echo NazevDennihoSouboru
Po inicializaci tµchto a dalších konstant skript inicializuje objekt FileSystemObject ,
který používá k vykonání r¾zných operací správy soubor¾ v ur²ených složkách
a v nich obsažených souborech protokol¾ ²íta²¾:
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
Objekt FileSystemObject se pak používá k identifikaci složek soubor¾, v nichž
skript pracuje. Kup½íkladu dále uvedený kód inicializuje promµnnou nazvanou fc1,
což je kolekce obsahující soubory ve složce C:\Perflog\Vcera:
Set objSlozkaVcera = objFSO1.GetFolder(SlozkaPerflogVcera)
Set fc1 = objSlozkaVcera.Files
Odstrangní vderejších soubor‘ zálohy
Tµlo skriptu za²íná vý²tem soubor¾ ve složce C:\Perflogs\Vcera, kde jsou uloženy
starší protokoly ²íta²¾. V tomto okamžiku se odstraní všechny soubory ve složce
C:\Perflogs\Vcera, které odpovídají StaryTypProtokolu. Následující oddíl skriptu
p½ejmenuje všechny soubory .blg, které nalezne ve složce C:\Perflogs\Vcera, na
názvy s p½íponou StaryTypProtokolu, která se k názvu souboru p½idá v následující
sekci kódu:
For Each f1 in fc1
If f1.type = TypSouboruSV Then
nazev_souboru = SlozkaPerflogVcera & "\" & f1.name
NovyNazev = SlozkaPerflogVcera & "\" & f1.name & "." & "bkf"
objFSO1.MoveFile nazev_souboru, NovyNazev
End If
Next
Postupy denního sledování server‘
353
Ukázkový skript inicializuje hodnotu StaryTypProtokolu tak, aby odpovídala souboru
zálohy systému Windows (Windows Backup File), který používá p½íponu .bkf.
Tento údaj m¾žete zmµnit na jakoukoli hodnotu používanou ve vašem prost½edí.
(Alternativnµ lze rozdµlit ½etµzec názvu souboru na ²ásti a zjistit jeho p½íponu.)
D¾sledkem tohoto zpracování soubor¾ ve složce C:\Perflogs\Vcera je to, že ta bude nyní obsahovat protokoly ²íta²¾ ze v²erejška a záložní verze protokol¾ ²íta²¾
použitých p½edev²írem. Tím vzniká ur²ité bezpe²nostní pásmo umož¹ující vám vrátit se p½inejmenším celý jeden den zpµt, když se v procedu½e následného zpracování denních protokol¾ ²íta²¾ nµco pokazí.
Skript pak prochází soubory protokol¾ ²íta²¾ ve složce C:\Perflogs\Dnes. Zde bude
binární soubor protokol¾ ²íta²¾, kam se zapisují aktuální namµ½ené údaje, a také
všechny p½edchozí protokoly ²íta²¾, které lze nyní zpracovat. Skript stanoví, zda jsou
soubory protokol¾ ²íta²¾ ve složce C:\Perflogs\Dnes p½ipraveny ke zpracování, porovnáním jejich data vytvo½ení s aktuálním datem. Soubory ve složce C:\Perflogs\
Dnes z p½edchozího dne se pak s využitím funkce DateDiff zkopírují do složky
C:\Perflogs\Vcera. Mezitím se názvy dále kopírovaných soubor¾ kupí v ½etµzcové
promµnné nazvané prenastavene_soubory, která se použije dále ve skriptu.
Vytvo„ení sumarizovaných protokol‘ dítad‘
Jakmile jsou zpracovány všechny starší protokoly ²íta²¾ ve složce C:\Perflogs\Dnes,
skript vykoná nástroj Relog prost½ednictvím metody Exec objektu WshShell:
prikaz = "relog " & prenastavene_soubory & "-o " & NazevDennihoSouboru & _
" -cf " & NazevSouboruPrenastaveniProtokolu & " " & parametryPrenastaveni
Set WshShell = Wscript.CreateObject("WScript.Shell")
Set vykonavanyPrikaz = WshShell.Exec(prikaz)
Tím se vytvo½í binární protokol ²íta²¾ ozna²ený ½etµzcovou promµnnou
NazevDennihoSouboru a sumarizovaný do patnáctiminutových interval¾.
£ádek následující za voláním utility Relog vám zajišÆuje p½ístup ke všem výstupním
zprávám nástroje Relog, jakmile odstraníte znak komentá½e a volání Wscript.Echo
aktivujete:
'Wscript.Echo vykonavanyPrikaz.StdOut.ReadAll
Jakmile nástroj Relog vytvo½í tento sumarizovaný denní protokol ²íta²¾, bude z½ejmµ zapot½ebí p½idat krok zpracování, v nµmž se denní protokol zkopíruje do protokolu ²íta²¾ na konsolida²ním serveru nµkde ve vaší síti. NahraÅte následující
½ádky komentá½¾, které vyhrazují místo pro toto zpracování, kódem zajišÆujícím
p½enos souboru na ur²ený konsolida²ní server ve vašem prost½edí:
'Zkopírovat souhrnný denní soubor na konsolida¶ní server dat protokolÂ
¶íta¶Â
' objFSO1.CopyFile NazevDennihoSouboru, <n¹kde>
Skript vydá druhý p½íkaz Relog zajišÆující sumarizaci denního protokolu na jednohodinové intervaly. Následnµ znovu použije Relog k p½idání tohoto protokolu ²íta²¾ k souboru historického souhrnu ve složce C:\Perflogs\Historie, který je rovnµž
Postupy
pdi sledování
výkonu
Správa vderejších denních protokol‘ dítad‘
354
Kapitola 4 – Postupy p„i sledování výkonu
hodinovµ sumarizován. Na konci tohoto kroku bude ve složce C:\Perflogs\Historie
soubor nazvaný <nazev-pocitace>.protokol_historie_vykonnosti.blg, který obsahuje
všechna nashromáždµná historická data sumarizovaná do hodinových interval¾.
Protože souhrnný historický soubor bude r¾st tempem p½ibližnµ 300 až 500 KB za
den, bude vhodné periodicky jej zálohovat na dlouhodobé úložištµ na jiném místµ.
Kup½íkladu po jednom roce naroste historický sumarizovaný protokol ²íta²¾ na p½ibližnµ 100 až 200 MB na po²íta².
Alternativnµ lze v tomto místµ procedury zvolit ukládání historických, sumarizovaných dat protokolu ²íta²¾ do výkonnostní databáze SQL Serveru. Rozhodnete-li se
využívat pro historické údaje ²íta²¾ repozitá½ SQL Serveru, nejprve vložte následující inicializa²ní kód:
Const parametryPrenastaveniSQL = "-f SQL -t 4"
Const DBPrenastaveniSQL = """SQL:PDB!Hodinove"""
Const NazevSouboruNastaveniSQL = "c:\perflogs\soubor-nastaveni-souhrnnychcitacu.txt"
Dále nahraÅte poslední dva p½íkazy Relog jediným p½íkazem Relog zajišÆujícím vložení vygenerovaných hodinových dat protokol¾ ²íta²¾ p½ímo do SQL Serveru takto:
prikaz = "relog " & NazevDennihoSouboru & " -o " & DBPrenastaveniSQL & _
" -cf " & NazevSouboruNastaveniSQL & " " & parametryPrenastaveniSQL
Tip Maxim·lnÌ flexibility dos·hnete, kdyû budete sestavovat a udrûovat sumarizovan· i historick· data v protokolech bin·rnÌho form·tu, kterÈ lze snadno p¯en·öet mezi poËÌtaËi na sÌti a do konsolidaËnÌ historickÈ datab·ze PDB vyuûÌvajÌcÌ SQL Server.
Skript následnµ obsahuje komentá½ vyžadující po vás zkopírování právµ vytvo½eného souboru sumarizovaných denních protokol¾ ²íta²¾ na konsolida²ní server nµkde v síti, kde jej použijete v rámci svého procesu hlášení pro správu:
'
objFSO2.CopyFile NazevDennihoSouboru, <n¹kde>
Skript se pak vrátí do složky C:\Perflogs\Dnes a odstraní starší soubory, které byly
p½edtím zkopírovány do složky C:\Perflogs\Vcera a zpracovány nástrojem Relog.
Správa protokol‘ dítad‘ automaticky generovaných výstrahami
Nakonec skript prochází všemi soubory ve složce C:\Perflogs\Protokoly vystrah
a odstra¹uje ty, které jsou starší než hodnota nastavená v konstantµ PocetDnuVystrahy ,
jež standardnµ odpovídá t½em dn¾m. D¾vodem k odstra¹ování starších protokol¾ ²íta²¾ ve složce Protokoly vystrah je to, že p½íslušná krize již z½ejmµ pominula. Když tu
podobnµ jako ve složce C:\Perflogs\Dnes, kam se zapisují denní protokoly ²íta²¾,
zanedbáte vykonávání nµjaké formy automatické správy soubor¾, nakonec vám na
po²íta²i dojde diskový prostor.
Plánované mgsídní zprávy a archivace
Další p½eprotokolování lze zajišÆovat plánovanµ pomocí nástroje Scheduled Tasks
(Naplánované úlohy). Úlohy, jejichž bµh je naplánován jinou službou než Výstrahy
a protokolování výkonu, musejí používat aktivní soubory protokol¾ velmi opatrnµ.
Když si aktivní soubor protokolu ²íta²¾ otev½e jiný proces, m¾že tím zabránit pro-
Postupy denního sledování server‘
355
tokolovací službµ v jeho ½ádném uzav½ení nebo znemožní správné fungování p½íkazového souboru vykonávaného po zav½ení aktuálního protokolu ²íta²¾.
Na konci mµsíce lze soubory protokol¾ nashromáždµné v jednotlivých dnech konsolidovat do jediného archivního souhrnného protokolového souboru. Ve vµtšinµ
p½ípad¾ tak bude zajištµna dostate²ná detailnost údaj¾, aniž by spot½ebovávaly p½íliš diskového prostoru.
Zpracování na konci mµsíce sestává ze dvou hlavních funkcí:
1. Omezení po²tu vzork¾ a
2. konsolidování denních soubor¾ do jediného protokolového souboru p½edstavujícího daný mµsíc.
Nejlepšího výkonu zpracování dosáhnete, když nejprve zkomprimujete jednotlivé
soubory a pak je pospojujete. Protože nástroj Relog se snaží spojit dohromady
všechny vstupní soubory, ještµ než je zpracuje, práce s menšími vstupními soubory
zajistí mnohem rychlejší spojení. Výpis 4.13 je p½íkladem typického p½íkazového
souboru mµsí²ního zpracování.
Rem ***********************************************************************
Rem * arg 1 is the name of the month that the performance data logs
Rem * are being compiled for.
Rem *
Rem * arg 2 is the directory path in which to put the output file
Ren *
Ren * NOTE: This procedure should not run when a daily log is being
Ren * processed. It should run after the last daily log of the month has
Rem * been processed and moved to the SAVE_DIR
Rem *
Rem ***********************************************************************
set LOG_DIR <directory path containing these files>
set SAVE_DIR <directory path where daily log files are saved>
set TEMP_DIR <directory path where compressed daily log files are saved>
echo Archiving logs in %SAVE_DIR% at %date% %time%>>
%LOG_DIR%\SAMPLE_RELOG.LOG
Rem compress each daily log and store the output files in the TEMP_DIR
for %a in (%SAVE_DIR%) do %LOG_DIR%\Montlhy_Compress.bat "%a" "%TEMP_DIR%"
if errorlevel 1 goto COMPRESS_ERROR
Rem concatenate the compressed log files into monthly summary file
relog %TEMP_DIR%\*.blg -o %2\%1.blg
if errorlevel 1 goto RELOG_ERROR
Rem clear out the temp directory to remove the temp files
Del /q %TEMP_DIR%\*.*
Rem clear out the original files if you want to free up the space
Rem or you may wish to do this manually after insuring the files were
Rem compressed correctly
Del /q %SAVE_DIR%\*.*
exit :COMPRESS_ERROR
echo Compress error at %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
exit
Postupy
pdi sledování
výkonu
VÝPIS 4.13: P¯Ìklad mÏsÌËnÌho zpracov·nÌ
356
Kapitola 4 – Postupy p„i sledování výkonu
:RELOG_ERROR
echo Relog error at %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
exit
Respektive v ²eském prost½edí:
Rem ***********************************************************************
Rem * arg 1 je název m¹síce, jehož data protokol výkonu se kompilují.
Rem *
Rem * arg 2 je adresáÁová cesta pro uložení výstupního souboru.
Ren *
Ren * POZN.: Tato procedura nesmí b¹žet, když je zpracováván denní
Ren * protokol. M¹la by b¹žet až po zpracování posledního denního protokolu
Rem * daného m¹síce a jeho pÁesunutí do SAVE_DIR.
Rem *
Rem ***********************************************************************
set LOG_DIR <adresáÁová cesta obsahující tyto soubory>
set SAVE_DIR <adresáÁová cesta ukládání denních soubor protokolÂ>
set TEMP_DIR <adresáÁová cesta ukládání zkomprimovaných denních souborÂ
rotokolÂ>
echo Archivace protokolu %SAVE_DIR% v %date% %time%>>
%LOG_DIR%\SAMPLE_RELOG.LOG
Rem Zkomprimovat jednotlivé denní protokoly a uložit výstupní soubory do
EMP_DIR.
for %a in (%SAVE_DIR%) do %LOG_DIR%\Mesicni_komprimace.bat "%a"
"%TEMP_DIR%"
if errorlevel 1 goto COMPRESS_ERROR
Rem Slou¶it zkomprimované soubory protokol do souboru m¹sí¶ního souhrnu.
relog %TEMP_DIR%\*.blg -o %2\%1.blg
if errorlevel 1 goto RELOG_ERROR
Rem Vymazat do¶asný adresáÁ a odstranit do¶asné soubory
Del /q %TEMP_DIR%\*.*
Rem Nyní lze vymazat pÂvodní soubory, aby se uvolnilo místo. To mžete také
Rem ud¹lat manuáln¹ po ov¹Áení, že došlo ke správnému zkomprimování
souborÂ.
Del /q %SAVE_DIR%\*.*
exit :COMPRESS_ERROR
echo Chyba komprimace v %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
exit
:RELOG_ERROR
echo Chyba pÁeprotokolování v %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
exit
V p½íkazovém souboru ve výpisu 4.13 se soubory protokol¾ uložené v adresá½i SAVE_DIR komprimují dalším p½íkazovým souborem a pak se slu²ují.
VÝPIS 4.14: P¯Ìkazov˝ soubor volan˝ ˙lohou mÏsÌËnÌho zpracov·nÌ
Rem
Rem
Rem
Rem
Rem
Ren
***********************************************************************
* arg 1 is the filename of the daily performance data log file to
* compress for subsequent concatenation.
*
* arg 2 is the directory path in which to put the output file
*
Postupy denního sledování server‘
357
Rem ***********************************************************************
set LOG_DIR <directory path containing these files>
set SAVE_DIR <directory path where daily log files are saved>
set TEMP_DIR <directory path where compressed daily log files are saved>
echo Compressing file: %1 at %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
Rem compress each daily log and store the output files in the TEMP_DIR
Relog %1 -config %LOG_DIR%\COMPRESS_CFG.TXT -o %2\%~nx1 >>
%LOG_DIR%\SAMPLE_RELOG.LOG
Rem ***********************************************************************
Rem * arg 1 je název souboru protokolu denních výkonnostních dat, který
Rem * se má zkomprimovat pro následné slou¶ení.
Rem *
Rem * arg 2 je adresáÁ, kam se má uložit výstupní soubor.
Ren *
Rem ***********************************************************************
set LOG_DIR <adresáÁová cesta obsahující tyto soubory>
set SAVE_DIR <adresáÁová cesta ukládání denních soubor protokolÂ>
set TEMP_DIR _
<adresáÁová cesta ukládání zkomprimovaných denních soubor protokolÂ>
echo Komprimace souboru: %1 v %date% %time%>> %LOG_DIR%\SAMPLE_RELOG.LOG
Rem Komprimace jednotlivých denních protokol a uložení výstupních souborÂ
do TEMP_DIR.
Relog %1 -config %LOG_DIR%\COMPRESS_CFG.TXT -o %2\%~nx1 >>
%LOG_DIR%\SAMPLE_RELOG.LOG
P½íkazový soubor ve výpisu 4.14 je oddµlen od hlavního p½íkazového souboru, aby
bylo možné využít funkce rozdµlování názvu souboru interpreteru p½íkaz¾.
Jakmile jsou data nashromáždµná bµhem mµsíce konsolidována do zkomprimovaného souhrnného souboru, lze jeho pomocí vytvá½et mµsí²ní hlášení. Stejné soubory konfigurace protokol¾ ²íta²¾ lze dokonce používat k mµsí²nímu souhrnu
stejných údaj¾ hlášených v denních zprávách. Jediným rozdílem je práce s odlišným vstupním souborem – souborem mµsí²ního souhrnu místo souboru denních
výkonnostních dat.
Definice konfigurací protokol‘ pro více server‘
Konfigura²ní soubory lze rovnµž využít k zavedení jednotných procedur shromažÅování protokol¾ ²íta²¾ na více po²íta²ích. Následující konfigura²ní soubor ukazuje
základní nastavení protokolu, která lze použít v konfiguraci sestávající z mnoha
server¾. V p½ípadµ pot½eby lze samoz½ejmµ doplnit další ²íta²e.
[name]
Basic Performance Data Log
[sample]
15
[format]
bin
Postupy
pdi sledování
výkonu
Respektive v ²eském prost½edí:
358
Kapitola 4 – Postupy p„i sledování výkonu
[--max]
[--append]
[version]
nnnnnn
[runcmd] <insert the full path name of command file to run
when this log file is closed>
[counters]
\Processor(_Total)\% Processor Time
\LogicalDisk(_Total)\% Disk Time
\Memory\Pages/sec
\Network Interface (*)\Bytes Total/sec
Respektive v ²eském prost½edí:
[ name ]
Zakladni protokol vykonnostnich dat
[sample]
15
[format]
bin
[--max]
[--append]
[version]
nnnnnn
[runcmd] <vložte úplnou cestu pÁíkazového souboru spušt¹ného po zavÁení
tohoto protokolového souboru >
[counters]
\Procesor(_Total)\% ¶asu procesoru
\Logický disk(_Total)\% ¶asu disku
\Pam¹È\Stránky/s
\Rozhraní sít¹(*)\Bajty celkem/s
4.3 Práce s repozitá„em SQL Serveru
Podpora dat protokol¾ ²íta²¾ ze strany SQL Serveru je flexibilní a nabízí dobrou
možnost sestavování a udržování dlouhodobého repozitá½e dat protokol¾ ²íta²¾ jak
pro analýzu, tak i plánování kapacity. Tento oddíl popisuje použití repozitá½e SQL
Serveru k hlášení výkonnostních dat protokol¾ ²íta²¾. Pojednává o databázovém
schématu využívaném k ukládání dat a protokol¾ ²íta²¾. Následnµ popisuje, jak
používat nástroje extrakce dat, jako je Microsoft Excel, pro p½ístup k dat¾m protokol¾ ²íta²¾ v repozitá½i SQL Serveru a jejich zpracování do hlášení. Nakonec je
uveden p½íklad p½ejímající dat protokol¾ ²íta²¾ z aplikace SQL Server prost½ednic-

Podobné dokumenty

Uložit jako PDF - Excel | VBA | Excelplus.NET

Uložit jako PDF - Excel | VBA | Excelplus.NET Horší je to už v případě zjišťování systémových složek. Teoreticky se kupříkladu ke složce dokumentů aktuálního uživatele dostanete přes Environ$(„USERPROFILE“), ke kterému přilepíte řetězec

Více

cyclope employee surveillance - instalační příručka

cyclope employee surveillance - instalační příručka Klientské instalace Cyclope se nacházejí v adresáři C:\Program Files\Cyclope Server\CyclopeClients a musí být nainstalovány na všech počítačích, které je potřeba monitorovat. Výjimkou jsou tzv. síť...

Více

Stručná instalační příručka

Stručná instalační příručka Na počítači, kterým se budete přihlašovat do webového grafického rozhraní, musí být internetový prohlížeč nakonfigurován tak, aby povoloval spouštění Javascriptů a ActiveX objektů. Nainstalován tak...

Více

ELEKTRONICKÉ POČÍTAČOVÉ SYSTÉMY

ELEKTRONICKÉ POČÍTAČOVÉ SYSTÉMY Testování disků .............................................................................................................................. 97 

Více

Upravte si Windows na dalších 200 způsobů Autor

Upravte si Windows na dalších 200 způsobů Autor systému ověřit, zda stránky paměti v popisovačích výjimek dovolují spuštění kódu nebo ne. Pokud stránka není označena pro povolení spuštění kódu a aplikace se pokusí kód spustit, systém Windows způ...

Více

Praktikum z operačních systémů test č. 1, Windows

Praktikum z operačních systémů test č. 1, Windows 13. Chcete, aby po 10 minutách nečinnosti počítače byl automaticky vypnut monitor (pevný disk). Kde to nastavíte? 14. Kde nastavíte akci, která se má provést po stisknutí napájecího tlačítka (třeba...

Více

EKONOM

EKONOM hodnotou:

Více