20 rozdzial 19 o4hmogawvoqxcbc6 Nieznany

background image

Rozdział 19

Optymalizacja wydajności

Załóżmy, że do uruchomienia serwera NT dysponujemy
największym ze znanych komputerów, DEC Alfa, z olbrzymią
pamięcią dyskową, największą możliwą konfiguracją pamięci i tylko
dziesięcioma użytkownikami, którzy chcą drukować kilka prostych
raportów dziennie. Większość współczesnych systemów
operacyjnych (UNIX, VMS, NT itd.) dysponuje (zaraz po
zainstalowaniu) wielkimi pojemnościami. Jednak rosnące
zapotrzebowane aplikacji względem mocy obliczeniowej, pamięci
operacyjnej i

przestrzeni dyskowej, narzuca administratorowi

określone wymagania.

Prawdą jest, że NT potrafi „zaopiekować się” sobą znacznie
skuteczniej, niż np. VMS czy UNIX. Zwłaszcza w starszych
wersjach UNIX-a wiele parametrów miało ubogą dokumentację (o
ile w ogóle ją miało). Zdarzały się załamania całego systemu, jeśli
ustawienia jednego z tych parametrów nie odpowiadały ilości
składowanych danych.

Po zatrudnieniu autorów jednego z

najlepszych systemów

operacyjnych poprzedniej generacji - VMS, Microsoft spróbował
stworzyć logiczny schemat rozmieszczenia zasobów i dostosować
do niego algorytmy tak, by zasoby rozmieszczane były
odpowiednio do zapotrzebowania. Próba ta w pełni się powiodła,
niemniej powinniśmy być świadomi, iż:

!

Sprzęt, na którym działa system ma swoje ograniczenia

(wynikające z

prędkości procesora, ilości zainstalowanej

pamięci, pojemności twardego dysku itp).

!

Aplikacje realizowane w

systemie mogą zawierać błędy.

Administrator, choć nie w pełni, może nadzorować efekty
działań programistów oraz wgrywanie (ewentualnie rozbudowę)
przez użytkowników nowych aplikacji.

!

Serwer może zostać poważnie spowolniony w wyniku przełado-

wania systemu danymi. Ponadto struktura sieci (z jej okablowa-

background image

730

Rozdział 19

niem, koncentratorami, itp.) ma wielki wpływ na ogólną
wydajność aplikacji klient/serwer i usług sieciowego systemu
operacyjnego (np. współdzielenia plików i drukowania).

Omawiana w tym rozdziale problematyka jest bardzo obszerna,
z konieczności więc podajemy tylko najważniejsze informacje,
które pomogą w zrozumieniu podstaw optymalizacji pracy systemu.
Umożliwi to skuteczną obsługę większości środowisk, w których
działa serwer NT . Należy pamiętać, że nie tylko na operatorze
systemu spoczywa odpowiedzialność za optymalizację jego pracy.
Aplikacje (a zwłaszcza skomplikowane bazy danych) mogą
uniemożliwić pracę nawet najpotężniejszych systemów
komputerowych. Dlatego też - by utrzymać kontrolę nad
efektywnym wykorzystaniem zasobów systemu - często skazani
będziemy na współpracę z

administratorami baz danych lub

aplikacji.

Zarządzanie wydajnością

W wielu firmach bardzo popularny stał się ostatnio trend do
uzyskiwania lepszych efektów za mniejsze pieniądze. A ponieważ
każdemu specjaliście od systemów informatycznych zależy na
utrzymaniu swych płac na wysokim poziomie, należy obniżać
koszty ponoszone w innych, pokrewnych dziedzinach. I tu właśnie
znaczenia nabiera zarządzanie wydajnością. Ponieważ mamy
niewielki wpływ na ceny dyktowane przez dostawców sprzętu
i oprogramowania, a jednocześnie chcemy minimalizować koszty
ponoszone na rozbudowę sprzętu, musimy użyć narzędzi
pomagających utrzymać wysoką wydajność systemów przy niskich
kosztach.

T ak jak nie powinno się otwierać maski samochodu i regulować
gaźnika, jeżeli nie zna się zasad działania silnika, tak też nie należy
konfigurować systemu operacyjnego, jeżeli nie zna się podstaw
platformy sprzętowej i samego systemu. Stąd też zamieściliśmy
fragment opisujący typową architekturę komputera osobistego.
(NT działa także na innych platformach, niemniej wyszliśmy
z założenia, iż baza intelowska będzie najbardziej reprezentatywna).

Gdy wykryjemy problem, musimy wiedzieć jak dalej postępować.
Czasami wystarczy sprawna optymalizacja pracy systemu (bez

background image

Optymalizacja wydajności

731

kupowania dodatkowego oprogramowania lub sprzętu). Jednakże
istotna jest tu także wiedza o tym, kiedy należy optymalizować,
a kiedy lepiej coś wymienić (dokupić). Stąd czasami czasochłonne
przepisywanie aplikacji, która usprawni pracę kilku osób, może być
bezzasadne - zwłaszcza gdy problem rozwiązać może nowy dysk za
500 złotych.

Ostatni podrozdział omawia planowanie zasobów i

okresowe

monitorowanie wydajności. Jego istotę można streścić następująco:
„dobrze jest wiedzieć, jak rozwiązać dany problem, jednak jeszcze
lepiej w

ogóle go uniknąć”. Scharakteryzujemy także

konfigurowanie programu do kontroli stopnia obciążenia systemu.

Składniki i wydajność Windows NT

W naszych rozważaniach skupimy się teraz na typowym sprzęcie
i oprogramowaniu serwerów bazujących na technologii Intel-a.
Liczba dostawców sprzętu i oprogramowania ma tutaj niebagatelne
znaczenie. Dobrze jest, gdy czują oni na sobie presję konkurencji,
zmuszającą do ciągłych innowacji i obniżania cen. Z drugiej jednak
strony komplikuje to życie administratorom, którzy muszą - by
utrzymać środowisko w optymalnym stanie - nadążać za ofertą
rynku.

Intel i architektura komputerów osobistych

Czym jest architektura PC, oparta na technologii Intel-a? Rysunek
19.1 ilustruje przykład takiej architektury. Główną jej część stanowi
układ procesora (wykonanego przez Intel lub jedną z

firm

produkujących procesory z nim kompatybilne - Cyrix, AMD itd.).
Procesor ten definiuje interfejs pomiędzy procesorem, pamięcią
podręczną (cache) i główną pamięcią operacyjną RAM (Random
Access Memory).

Procesory intelowskie determinują standard komputerów
osobistych oraz - w dużym stopniu - założenia kolejnych wersji
systemu Windows NT , które mają na tych procesorach działać.
(Pominiemy tutaj wewnętrzną budowę procesora, bo nie ma ona
związku z regulowaniem wydajności systemu).

Z procesorem, za pośrednictwem najszybszej w systemie magistrali

background image

732

Rozdział 19

danych (32-bitowej - tam gdzie działa Windows NT 4) połączone są
dwa, najbardziej znaczące zasoby w systemie. Pierwszym z nich jest
pamięć operacyjna (RAM), główna pamięć w komputerze, która
przechowuje instrukcje, tworzone przez programy uruchamiane
przez użytkowników. Drugi z tych zasobów, pamięć podręczna
drugiego poziomu - second-level cache - służy do przyspieszenia
wszystkich operacji. Koncepcyjnie jest ona zbliżona do pamięci
operacyjnej, tyle że szybsza. Jej zadaniem jest przechowywanie
instrukcji lub danych, które - według przewidywań procesora
i

systemu operacyjnego - zostaną za chwilę wykorzystane.

Zazwyczaj komputery pracują nieco szybciej, jeśli - przy tej samej
prędkości procesora - dysponują większą pamięcią podręczną.

Ponieważ Windows NT działa na różnych platformach, ważne jest,
aby wiedzieć na którym z dwóch rodzajów procesorów będzie
pracował. Rodzina maszyn Intel-a 80x86 znana jest także pod
nazwą komputerów o złożonej liście rozkazów - CISC (Complex
Instruction Set Computers
). Oznacza to, że każdy rozkaz
(instrukcja) realizuje zestaw skomplikowanych czynności. Drugi
rodzaj stanowią komputery o zredukowanej liście rozkazów - RISC
(Reduced Instruction Set Computers ), takie jak DEC Alpha, które
dla każdej instrukcji wykonują relatywnie proste zadania.
Informacje te stają się istotne wtedy, gdy rozważać będziemy
prędkość przetwarzania. Komputery typu RISC - w porównaniu

Magistrala procesora

i pamięci (32 bitowa)

Pa mię ć podrę cz na

drugiego poziom u

(wytwórc a płyty

główne j)

P amię ć

opera cyjna

Kontroler

ma gistrali

EISA

Kontroler

ma gistrali

PCI

CPU

Magistrala EISA

(8, 16 lub 32-bitowa)

Magistrala

PCI (32 bitowa)

Standardowe

karty

rozszerzeń

Porty

Szeregowe /

Równoległe

Kontrolery

dysków

IDE lub SCSI

Kontrolery

dysków

IDE lub SCSI

Szybkie

karty

PCI

Rys. 19.1 Typowa

architektura PC

oparta na

technologii Intel-

a.

background image

Optymalizacja wydajności

733

z komputerami CISC, przy tej samej liczbie operacji w tym samym
czasie zazwyczaj - charakteryzują się wyższą prędkością
przetwarzania. Ponieważ rodzina Intel-a wciąż się rozwija, z reguły
nowsze generacje jej procesorów przewyższają wydajnością starsze
procesory o podobnych prędkościach (zakładając oczywiście, że
system operacyjny zaprojektowano z

myślą o

tych właśnie

odmianach procesorów). Windows NT należy do elitarnej, bardzo
wąskiej grupy systemów operacyjnych, który efektywnie
wykorzystuje wiele z cech najnowszych procesorów Intela.

Jak dotąd, ze składników architektury PC omówiliśmy trzy (CPU,
pamięć podręczną i operacyjną), połączone z szybką magistralą
danych. Aby ją „zarezerwować” dla potrzeb istotnych transferów
pomiędzy pamięcią i

procesorem, mniej ważna komunikacja

obsługiwana jest przez inne magistrale.

Wiele nowoczesnych komputerów osobistych, które mogłyby
pełnić rolę serwerów, zazwyczaj obsługuje dwa typy magistrali
danych. Pierwszy z nich - EISA (Enhanced Industry Standard
Architecture), istnieje już na rynku kilka lat. Z tego powodu
większość kart rozszerzeń (wykorzystujące 16 i

32-bitowe

magistrale danych) architekturę tę obsługuje. EISA zaprojektowano
w czasach, gdy procesory i urządzenia zewnętrzne były znacznie
wolniejsze niż dzisiejsze.

Magistrala PCI obsługuje 32-bitowy transfer danych. Oznacza to, że
jeżeli serwer posiada magistralę PCI i urządzenie zewnętrzne (takie
jak karta kontrolera dysków SCSI), które obsługuje ten typ
magistrali, jego system może osiągnąć, w odniesieniu do EISA,
znacznie wyższy poziom wydajności. Jednak niektóre urządzenia
zewnętrzne nie są w stanie wykorzystać możliwości magistrali PCI
(np. napędy dyskietek). Większość serwerów, jakie ostatnio autor
konfigurował, miało jednocześnie porty EISA i PCI. Zazwyczaj
gniazda PCI należy pozostawić dla kart sieciowych wymagających
transferów rzędu 100 MB na sekundę (i potrzebujących prędkości
magistral PCI).

Istnieją jeszcze kontrolery, które łączą szybką magistralę procesora
i pamięci z wolniejszymi urządzeniami zewnętrznymi. Wyróżniamy
kilka odmian magistrali danych, obsługujących urządzenia
zewnętrzne. Stąd kluczowe znaczenie ma właściwe zestawienie typu
magistrali z rodzajem karty, dołączanej do komputera.

background image

734

Rozdział 19

Przed rozpoczęciem pomiarów wydajności systemu należy poznać
jeszcze kilka istotnych szczegółów, aby móc rozpocząć działania
optymalizujące jego pracę. Niektóre z kart przyłączanych do EISA,
PCI lub innych, wolniejszych magistrali, są jednocześnie
kontrolerami urządzeń wewnętrznych komputera. Najczęściej
spotykanym przykładem może tu być kontroler twardego dysku.
Oczywiście, istnieje kilka różnych standardów tych kontrolerów
(SCSI, Fast - Wide SCSI, IDE i inne), z różną charakterystyką
wydajności.

IDE (Intergrated Drive Electronics) to standard obsługujący wiele
logicznych pętli (co przyspiesza dostęp do dysku i

redukuje

obciążenie systemu) i większy transfer danych, niż starsze napędy
(MFM, RLL czy ESDI). Kontrolery IDE obsługują zazwyczaj dwa
dyski twarde - jeden w trybie master (nadrzędny, ładujący zazwyczaj
system operacyjny), drugi - w slave (podrzędny). W stosunku do
kontrolerów SCSI są wolniejsze (pojedynczy kontroler obsługuje też
mniejszą liczbę dysków). Niemniej jednak IDE jest obecnie (w
maszynach PC) stosowany najczęściej.

Standard SCSI (Small Computer Standard Interface) używany był
powszechnie w systemach pracujących pod nadzorem UNIX-a.
Zaprojektowany został dla większych transferów danych i większej
liczby napędów (standardowo jeden kontroler obsługuje siedem
urządzeń zewnętrznych). Jeżeli w

systemie istnieje wielkie

zapotrzebowanie na pamięć dyskową, można w nim umieścić kilka
kontrolerów SCSI. Cena ich jest nieco wyższa (np. w porównaniu
z IDE), a obsługa trudniejsza, jednakże wielu administratorów woli
w serwerach mieć ten typ kontrolera. Na rynku dostępne są
również napędy taśm SCSI, jak i stacje dysków optycznych i kilka
innych urządzeń zewnętrznych (np. skanery). Magistrala danych
SCSI została zaprojektowana dla bardziej wymagających transferów
danych, które spotykane były tylko w maszynach z systemem
UNIX (teraz jednak takie transfery leżą w możliwościach serwerów
NT ).

Standard SCSI został zaprojektowany kilka lat temu, a technologia
wciąż idzie naprzód. Opracowano w tym czasie jego nowe formy.
Jedną z bardziej popularnych modyfikacji jest fastwide SCSI.
Magistrala danych jest tutaj dwukrotnie szersza niż oryginalna,
dwukrotnie wzrosła też prędkość transferu. Kontrolery te

background image

Optymalizacja wydajności

735

umożliwiają często podłączenie nawet do 15 urządzeń
zewnętrznych. Przy dużym zapotrzebowaniu na pamięć dyskową
i wysoką prędkość transferu rozważyć możemy - dla serwera NT -
magistralę SCSI–3.

Inne składniki komputerów także posiadają swoje standardy. Np.
modemy często określane są jako kompatybilne z produktami
firmy Hayes lub US Robotics. Jednakże urządzenia te wykonują swe
czynności niezależnie od pozostałych i przez to mają mały wpływ
na wydajność całego systemu. Nie możemy tego samego powiedzieć
o podsystemie obsługi wideo. Niektóre karty sterowników
graficznych realizują instrukcje graficzne na wysokim poziomie,
wykorzystując własne (wbudowane w

kartę) możliwości

obliczeniowe. Posiadają one własne procesory i szybkie pamięci
graficzne. Środowisko NT możemy tak skonfigurować, by
możliwości kart maksymalnie wykorzystać lub - by do obsługi
grafiki angażowany był procesor główny (co jednak zwiększa
obciążenie systemu).

Przed przejściem do zagadnień związanych z oprogramowaniem
należy omówić jeszcze jedną kwestię „sprzętową”. Spróbujmy objąć
w całości współpracę poszczególnych składników komputera.
Układy scalone pamięci operacyjnej pracują z własną, określoną
prędkością. Z

uwagi na fakt, iż prędkość transferu

zsynchronizowana jest z magistralą danych procesora, należy
zadbać o to, aby prędkość pamięci operacyjnej odpowiadała
taktowaniu zegara procesora (a

ściślej mówiąc, aby pamięć

operacyjna nie była zbyt wolna). Wydajność systemu jest także
ściśle związana z napędami dysków. W systemie może pracować
szybka magistrala danych, ale z powodu wolnych dysków twardych
prędkość magistrali nie będzie miała żadnego znaczenia. Będą one
poważnie redukowały transfer danych. Dlatego w

systemach

wymagających wysokiej wydajności należy także sprawdzać
charakterystykę wydajności urządzeń zewnętrznych.

Rysunek 19.2 przedstawia hierarchię składników sprzętu.
Poszczególne jej elementy ściśle ze sobą współpracują. Przykładem
takiej współpracy jest korzystanie z danych zapisanych na dyskach.
Każdy ze składników może pochodzić od innego producenta.
Zadaniem administratora powinno być dobranie odpowiednich
składników - tak, by spełniały wymagania wydajności, przy

background image

736

Rozdział 19

rozsądnych cenach.

System operacyjny i jego współpraca ze sprzętem

Rozdział 2 zawiera szczegółowe informacje o architekturze NT .
System operacyjny instalujemy dopiero po skonfigurowaniu sprzętu
i sprawdzeniu jego pracy. Dopóki komputer nie działa poprawnie
(nie uruchamia się lub wykazuje błędy konfiguracji), nieistotne są
możliwości systemu operacyjnego.

Pierwszy poziom współpracy (nazywany również interfejsem) -
pomiędzy sprzętem a systemem operacyjnym - został zdefiniowany
przez firmę Intel (lub innego producenta procesora, np. DEC)
i

Microsoft. System operacyjny zawiera wiele programów,

napisanych w języku, którego używa procesor główny i procesory
pośrednie (zestaw kodu zerojedynkowego - binarnego).
Niskopoziomowy interfejs układów scalonych komputera
podzielony jest na małe zestawy kodów charakterystycznych dla
danego rodzaju procesora (pomaga to w komunikacji NT z różnymi
platformami sprzętowymi, takimi jak Intel, DEC Alpha itp.).

Każde urządzenie komputera (karty rozszerzeń, kontrolery SCSI,
napędy dysków) odpowiada na wysyłane kody zerojedynkowe
(binarne). Istotny jest fakt, iż różne urządzenia używają różnych
zestawów kodów kontrolnych. (Np. inny kod binarny wysyłany
jest, w celu wysunięcia taśmy, do 4 mm napędu DAT , a inny do
napędu CD-ROM - by wysunąć kieszeń). Biorąc pod uwagę liczbę
producentów i rozmaitych urządzeń istniejących na rynku możemy
wyobrazić sobie, jak wiele różnego rodzaju kodów kontrolnych
można napotkać.

W czasach panowania DOS-u, każda aplikacja musiała sama dbać
o współpracę ze wszystkimi urządzeniami zewnętrznymi.

Inne kontrolery

ma gistrali (tzn. SCSI)

Inne urządzenia

zewnętrzne

Kontrolery zewnętrznej magistra li (tzn. PCI)

Magistrala procesora i pa mięci operacyjnej

Urzą dzenia ze wnętrzne (tzn. dyski)

Procesor (CPU) Pamięć operacyjna (RAM )

Pamięć podręczna (cache)

Rys. 19.2
Hierarchia
sprzętu.

background image

Optymalizacja wydajności

737

W Windows (jeszcze przed Windows 95 i NT ) zrealizowano
koncepcję sterowników urządzeń. Dzięki temu można było pisać
aplikacje zgodne ze standardowym interfejsem dla danego systemu
operacyjnego. Całe zadanie tłumaczenia kodów aplikacji na kody
rozpoznawane przez urządzenia spoczęło wówczas na systemie
operacyjnym.

Jednakże to nie wszystko. Ponieważ różne urządzenia mają różne
możliwości (np. jedne drukarki mogą drukować grafikę, inne nie),
sterowniki urządzeń muszą sygnalizować aplikacji, że żądanie przez
nią wysłane nie może być spełnione z przyczyn (takich lub innych)
urządzenia. Problemem mogą być też same sterowniki, które są
częścią oprogramowania i mogą być napisane dobrze lub źle.
Wynikiem ewentualnych błędów są różnego rodzaju, wnoszone na
bieżąco, aktualizacje i poprawki. Równocześnie, mimo iż Windows
NT zawiera całą gamę sterowników, dla pewnych urządzeń może
ich zabraknąć. (Wspaniałym źródłem, z którego niezmiernie łatwo
uzyskać najnowsze sterowniki, jest Internet). Jeżeli brak informacji
o tym, czy dane urządzenie obsługiwane jest przez NT , należy
przejrzeć tzw. Listę urządzeń kompatybilnych - HCL (Hardware
Compatibility List) na stronie: www.microsoft.com (lub na
płytach CD ROM).

Poprawna konfiguracja interfejsów niskiego poziomu stwarza
podstawę, na której można realizować usługi systemu operacyjnego.
Według tego samego schematu, który doprowadził do powstania
sterowników urządzeń, powstał zestaw funkcji, wykorzystywanych
przez niemal każdą aplikację. Zamiast spędzać mnóstwo czasu na
pisaniu oddzielnych kodów dla każdej aplikacji, programiści
Microsoft wbudowali odpowiedni schemat funkcjonalny w sam
system operacyjny. Przykładem jego działania jest przetwarzanie
kolejki wydruków (usuwanie wydruków i śledzenie kolejności ich
wysyłania do drukarki) oraz działanie sterowników sieciowych
T CP/IP. Wprowadzenie takiego schematu daje jeszcze jeden efekt -
dzięki niemu twórca aplikacji nie musi przejmować się
opracowaniem wszystkich funkcji sterujących i może skupić się na
dopracowaniu szczegółów swojego produktu.

A zatem każdy administrator systemu powinien pamiętać, że jest
na szczycie hierarchii wydajności i w każdym momencie może się
zdarzyć, że przy najlepszym sprzęcie, najlepszych sterownikach

background image

738

Rozdział 19

urządzeń, najlepiej wyregulowanym systemie NT , lecz przy źle
napisanych aplikacjach poniesie klęskę. Rysunek 19.3 ilustruje
sumarycznie (w czytelnej postaci) to, co do tej pory
powiedzieliśmy. Jak widać, nie pokazuje on zależności między
poszczególnymi komponentami. System operacyjny współdziała
z CPU i niektóre z urządzeń zewnętrznych współpracują ze sobą.
Widzimy tutaj, iż wydajność jest wypadkową współpracy kilku
komponentów. Zoptymalizowanie tej współpracy jest
skomplikowanym zadaniem, ale na szczęście Windows NT został
wyposażony w narzędzia, które je istotnie ułatwiają.

Określanie normalnych poziomów sprawności systemu

Poprawne określenie wszystkich parametrów sprawności systemu
wydawać się może trudne. Niektóre opracowania omawiają teorię
związaną ze wszystkimi składnikami systemu i zasady obliczania
współczynników wyznaczających wydajność rozmaitych
konfiguracji.

Jednakże, ponieważ technologia wciąż idzie naprzód i konfiguracje,
które opisano najprawdopodobniej zdążyły się już
zdezaktualizować, administratorzy systemów preferują metody
bardziej empiryczne. W odróżnieniu od większości systemów
operacyjnych, Windows NT umożliwia obserwację większości
zjawisk towarzyszących współpracy pomiędzy poszczególnymi
składnikami. Musimy tutaj podkreślić, iż nieumiejętne regulowanie
pracy systemu może dać rezultaty niezamierzone nawet przez jego
twórców.

Inne kontrolery

ma gistrali (tzn. SCSI)

Inne urządzenia

zewnętrzne

Kontrolery zewnętrznej magistra li (tzn. PCI)

Magistrala procesora i pa mięci operacyjnej

Urzą dzenia ze wnętrzne (tzn. dyski)

Sterowniki urządzeń

Procesor (CPU) Pamięć operacyjna (RAM )

Pamięć podręczna (cache)

Rys. 19.3.
Hierarchia
składników
sprzętu
i oprogramowani
a

background image

Optymalizacja wydajności

739

Poniżej przedstawiliśmy schematy kontrolowania wydajności. Dla
potrzeb tego rozdziału przyjęliśmy, że każda z konfiguracji sprzęto-
wych, na której działa Windows NT , obejmuje pięć składowych,
których praca może być monitorowana i regulowana:

!

Zdolność przetwarzania procesora

!

Pojemność pamięci operacyjnej i pamięci wirtualnej

!

Pojemność i wydajność wejścia/wyjścia

!

Wydajność transmisji w sieci

!

Wydajność aplikacji

Zdolność przetwarzania procesora

Pierwsza składowa określa pracę, jaką procesor komputera może
wykonać w określonym czasie. Pomimo że może ona zależeć od
prędkości taktowania zegara procesora, typu listy instrukcji, jakie
wykonuje, łatwości, z jaką system operacyjny wykorzystuje zasoby
procesora i dowolnej liczby innych czynników - dla potrzeb jej
oszacowania należy przyjąć zdolność przetwarzania procesora za
określoną dla danego typu procesora i systemu operacyjnego.
Różne procesory wykazują różne zdolności przetwarzania
w zależności od typu pracy, jaką wykonują. Niektóre komputery
radzą sobie przyzwoicie z przetwarzaniem tekstu i operacjami na
liczbach całkowitych, podczas gdy inne zaprojektowano jako
numeryczne maszyny liczące, które opracowują skomplikowane
operacje zmiennoprzecinkowe. T akie charakterystyki przypisane
są zazwyczaj do całych rodzin procesorów (takich jak Intel
Pentium) i można je wziąć pod uwagę, ustalając odpowiednią
architekturę sprzętu.

Pamięć operacyjna i pamięć wirtualna

Kolejnym składnikiem jest pamięć operacyjna (RAM) i pamięć
wirtualna. Projektanci aplikacji wiedzą, że pamięć operacyjna może
być odczytywana bardzo szybko i ma bezpośrednie połączenie -
poprzez magistralę danych procesora i pamięci - z CPU. Dążą do
tego, aby ich aplikacje wykonywały więcej funkcji i, oczywiście,
odpowiadały szybciej na żądania użytkowników. Dlatego wciąż
szukają nowych sposobów na umieszczanie większej liczby

background image

740

Rozdział 19

informacji (danych, składników aplikacji itp.) w

pamięci

operacyjnej, skąd będą one szybciej pobierane, niż z dysku twardego
czy dyskietki. Dawno minęły czasy, gdy komputer osobisty z 256
KB pamięci operacyjnej budził zazdrość i

podziw otoczenia.

Nowoczesne serwery NT mają przynajmniej 24 MB pamięci, a jest
to dolny limit dla rozsądnej konfiguracji.

Pracując z

Windows NT i

większością innych systemów

operacyjnych mamy do czynienia w zasadzie z dwoma typami
pamięci. Pamięć operacyjna (RAM) ma ścisły związek z układami
scalonymi, które przechowują informacje i znajdują się fizycznie
w

komputerze. Pierwsze systemy operacyjne generowały

komunikaty o błędach (lub całkiem się „zawieszały”), gdy brakło im
dostępnej pamięci operacyjnej. Aby rozwiązać ten problem
stworzono pamięć wirtualną. Jest ona połączeniem układów
scalonych, realizujących pamięć operacyjną i części przestrzeni
jednego lub kilku dysków - dzięki czemu system „udaje” środowisko,
w

którym znajduje się znacznie więcej fizycznej pamięci

operacyjnej, niż w rzeczywistości. T akie systemy operacyjne
dysponują procedurami, wykrywającymi obszary pamięci fizycznej,
które najprawdopodobniej nie będą szybko potrzebne (zazwyczaj
dzięki kombinacji atrybutów obszaru pamięci i

algorytmów

określających najrzadziej używane obszary). Procedury te
przenoszą następnie ich zawartość do pliku znajdującego się na
dysku, który zawiera takie właśnie, zeskładowane (swapped) części
pamięci operacyjnej. Gdy wymieniony obszar pamięci jest znów
potrzebny, system operacyjny przesyła go z powrotem do pamięci.
Ponieważ transfery dyskowe są znacznie wolniejsze (niż te
w pamięci operacyjnej) - wtedy, gdy trzeba przenieść zawartość
części pamięci operacyjnej na dysk i zapisać w niej nowe dane,
spowalniana jest także praca aplikacji.

Niektóre transfery zawartości pamięci operacyjnej na dysk są
nieszkodliwe. Pewne, załadowane do pamięci składniki systemu
operacyjnego używane są bardzo rzadko. Niektóre aplikacje operują
na danych, które zawsze umieszczane są w pamięci operacyjnej,
nigdy nie będąc używane. Jednakże problemy pojawiają się wtedy,
gdy pamięć komputera zaangażowana jest w takim stopniu, iż
system musi przenieść dane z pamięci na dysk, a następnie, inne
dane - z dysku do pamięci. Wówczas maszyna nie ma czasu na
wykonanie żądań użytkowników. Niektóre obszary pamięci

background image

Optymalizacja wydajności

741

oznaczone są w systemie operacyjnym jako „stałe” - oznacza to ,
że nie mogą być składowane na dysku. A zatem dla aplikacji
przeznaczony jest mniejszy obszar pamięci, niż mogliśmy tego
oczekiwać. Nowoczesna baza danych (taka jak Serwer SQL lub
Oracle), zajmuje dużą część wspólnej pamięci operacyjnej. Bazy
danych używają pamięci operacyjnej do przechowywania transakcji
oczekujących, rekordów plików protokołów, które mają być
zapisane na dysku i zapisów pamięci podręcznej, które zostały
pobrane w wyniku przewidywania żądań użytkowników. Należą one
do najbardziej wymagających aplikacji, realizowanych na serwerach
sieciowych.

Obsługa wejścia/wyjścia

Kolejnym składnikiem jest obsługa wejścia/wyjścia komputera.
Wystarczy skupić się na obsłudze wejścia/wyjścia kontrolerów
i napędów dysków. Ocenia się, iż wkrótce wystąpią trudności,
wynikające z

zapełnienia magistrali PCI transferem danych

audio/wideo. Zazwyczaj w transferze danych z dysków do pamięci
operacyjnej, skąd procesor może je pobrać, biorą udział trzy
jednostki: kontroler magistrali danych (najczęściej PCI lub EISA),
kontroler napędu dysków (zazwyczaj IDE lub droższy SCSI), i sam
napęd dysku. Dla obliczania wydajności napędów dyskowych należy
traktować je tak, jak gdyby były przyłączone bezpośrednio do
magistrali procesora. W tym układzie kontrolery i dyski „widziane”
są jako całość, co ułatwia pomiar i zarządzanie. Jednak nie zawsze
można obliczyć wydajność samego kontrolera napędów dysków, nie
biorąc pod uwagę wydajności poszczególnych dysków do niego
podłączonych.

Transmisje w sieci

Serwer Windows NT wyznacza środowisko oparte na strukturze
sieciowej, w

której dane są wysyłane i

przyjmowane za

pośrednictwem kart sieciowych. Urządzenie wejścia/wyjścia sieci
należy, z

kilku powodów, oddzielić od innych urządzeń

wejścia/wyjścia. Są to przede wszystkim różne technologie.
Administrator serwera nie ma wyłącznego wpływu na system
transmisji w sieci (z wyjątkiem sytuacji, gdy pełni on jednocześnie
funkcje administratora sieci). Jest po prostu jednym z wielu
użytkowników i dlatego musi umieć w określić, czy jest przyczyną

background image

742

Rozdział 19

kłopotów w sieci, czy ich ofiarą.

Karty sieciowe są często pomijanym elementem serwerów. Błędem
jest uzależnianie parametrów wydajności transmisji w sieci tylko od
jej typu. Może to prowadzić do błędnego założenia, że rodzaj
używanej karty sieciowej nie ma znaczenia, ponieważ prędkość
transmisji i tak jest stała. T ymczasem testy przeprowadzone na
różnych kartach wykazują, że dla danego komputera różne karty
sieciowe będą miały lepsze lub gorsze parametry transmisji danych.
Ponieważ większość kart na rynku przeznaczona jest do pracy
w

komputerach z

niewielkimi transferami sieciowymi, może

zaistnieć konieczność znalezienia tej, która podoła większemu
obciążeniu serwera.

Wydajność aplikacji

Wydajność aplikacji realizowanych w systemie stanowi bardzo
istotny element całkowitej jego wydajności. Należy to podkreślić -
zwłaszcza w

odniesieniu do systemów z

bazami danych.

Niejednokrotnie zdarza się, że baza funkcjonuje bardzo wolno.
Okazuje się wówczas, że aplikacja została zaprojektowana tak
niefortunnie, że w sytuacji, gdy potrzebne jest dziesięć cyfr z bazy,
aplikacja wykonuje puste pętle - w oczekiwaniu odpowiedzi na
dziesięć żądań wysłanych przez bardzo obciążoną sieć. T en sam
skutek odniesie jedno żądanie, które spowoduje jednoczesne
przysłanie wszystkich danych i nie obciąży dodatkowo sieci,
a będzie szybsze. Możliwe też, że żądania te są wysyłane
z pominięciem indeksów, służących przyspieszeniu komunikacji. Po
zmianie kilku poleceń zawartych w żądaniu można skrócić - z 30
minut do 10 sekund (nie jest to żadna przesada) - czas oczekiwania
na odpowiedź. Jest to jeden z aspektów pracy w środowisku
sieciowym, który wymaga doświadczenia i zdolności ogólnego
spojrzenia. Istotna jest umiejętność oceny, czy dana aplikacja
działa wolno, ponieważ jest rzeczywiście skomplikowana, czy też
jest niedokładnie skonstruowana. I do tego właśnie służą narzędzia
monitorowania wydajności. Udostępniają one dane wskazujące, czy
wykonana optymalizacja odnosi przewidywane skutki.

Obliczanie wartości wskaźników ilustrujących wydajność systemu
nie jest metodą skuteczną. Lepszy sposób polega na wykorzystaniu
klucza wskaźników wydajności, oferowanych przez system.

background image

Optymalizacja wydajności

743

Z czasem możemy utworzyć własny klucz kontrolny, będący
dokładnym wizerunkiem wydajności systemu.

Samoczynna optymalizacja a Windows NT

Jak już wcześniej wspominaliśmy, Windows NT jest systemem,
który sam optymalizuje (w pewnych granicach) własną pracę.
Jednakże należy zaznaczyć, że system ten, działając np. na
maszynie 486/33 obsługującej tysiące użytkowników, takiemu
zadaniu nie podoła. Samoczynna optymalizacja obejmuje takie
procedury, na które oddziaływać może administrator systemu. Gdy
zrozumie on jej istotę, łatwiej będzie mu interpretować rezultaty
monitorowania pracy systemu, a przez to orientować się, kiedy
wymagana jest jego interwencja.

W procesie samoczynnej optymalizacji realizowane są takie
operacje, w

których system nie powinien zastępować

administratora. Mamy tutaj na myśli przenoszenie plików
pomiędzy dyskami - wtedy, gdy zajętość dysku może spowodować
błędy w pracy aplikacji. Kolejną taką czynnością jest kończenie
zadań realizowanych w tle, nie kontynuowanych przez jakiś czas.

Istnieją i takie operacje, których Windows NT nie jest w stanie
wykonać. Nie może np. zmienić ustawienia przełączników na
kartach rozszerzeń ani dyskach - aby przekonfigurować system
w celu osiągnięcia wyższej wydajności. Nie może też zmienić układu
połączenia komputerów w sieci.

Cóż więc może kontrolować system operacyjny Windows NT ?
Przede wszystkim może wpłynąć na efektywniejsze wykorzystanie
pamięci. Istnieje kilka usprawnień, wykorzystywanych (przez
system) do zachowania w pamięci informacji, które mogą być
w niedługim czasie potrzebne. W

tym celu przypisuje on

pomocnicze obszary pamięci do obsługi pamięci podręcznej dysków
(disk cache) oraz do innych celów. Usiłuje zaadaptować się do
wskazanych priorytetów przetwarzania. Gdy zmiany priorytetów
zostaną wykryte, zmienia on przyporządkowanie pamięci - tak, aby
jak najlepiej dostosować się do postawionych wymagań. Dlatego
właśnie pamięć w serwerze NT jest prawie zawsze zajęta, nawet gdy
system nie jest bardzo obciążony. Windows NT wykrywa, że duży
jej obszar nie jest angażowany i, zamiast pozostawić ją nieaktywną,

background image

744

Rozdział 19

próbuje wykorzystać tak, aby jak najlepiej dostosować swoje
działanie do potrzeb wszystkich aktywnych użytkowników.

Kolejną procedurą, jaką Windows NT może robić automatycznie,
jest dynamiczne dostosowywanie wielkości pamięci wirtualnej.
Jeżeli bieżąca wielkość pliku stronicowania (pagefile.sys) nie
wystarcza do prawidłowego obsłużenia pracy, system zajmuje wolną
pamięć dyskową - tak by sprostać aktualnym wymaganiom.
Niestety, w rezultacie nowe obszary zajęte przez dodane pliki
stronicowania nie sąsiadują na dysku z pierwotnym plikiem.
Powoduje to dodatkowe opóźnienia odczytu lub zapisu do tych
plików, ponieważ głowice muszą przesuwać się pomiędzy
oddzielnymi obszarami dysku. Dlatego, w

miarę możliwości,

sytuacji takich powinniśmy unikać.

Narzędzia do monitorowania wydajności

Przejdziemy teraz do narzędzia o nazwie Performance Monitor
(Monitor wydajności). Umożliwia ono proste monitorowanie
większości istotnych parametrów wydajności systemu
operacyjnego. Wyposażone jest w

wygodny interfejs czasu

rzeczywistego, pozwala na przechowywanie danych w protokołach,
które mogą się przydać w przyszłości.

Windows NT może monitorować wszystkie (istotne) zadania
systemu lub tylko wybrane z nich. Zadaniem administratora jest
dokonanie odpowiedniej selekcji - by uzyskać żądany zakres
informacji.

Pomiar aktywności

W jaki sposób Windows NT mierzy aktywność wybranych zadań?
Musimy przede wszystkim zrozumieć pojęcie obiektu (przykładem
obiektu w systemie NT może być procesor lub logiczne napędy
dysków). Do każdego z obiektów przypisane są serie liczników.

Każdy z nich mierzy różne rodzaje aktywności danego obiektu -
takie jak całkowita liczba bajtów na sekundę i liczba bajtów odczytu
na sekundę. Liczniki muszą mierzyć coś, co będzie pożyteczne (lub
np. wyznaczać stopień załadowania systemu). Posłużmy się
przykładem: informacja o odczycie sześciu milionów bajtów nie

background image

Optymalizacja wydajności

745

mówi nam nic konkretnego. Gdyby było to sześć milionów bajtów
na sekundę, wskazywałoby na znaczną ilość danych w systemie.
Gdyby to było sześć milionów bajtów odczytu od ostatniego
uruchomienia systemu, dwa miesiące temu, nie byłaby to istotna
informacja. Dlatego większość liczników kontrolujących aktywność
systemu wskazuje wartości na sekundę lub procent zaangażowania
całkowitej pamięci (tak jak procent czasu procesora poświęcony
obsłudze zadań użytkowników). Kilka składników (m.in. liczba
zadań w kolejce) oznacza konkretne fakty statystyczne.

Pomiary liczników obserwowane są w konkretnym przedziale czasu.
Wykres ilustrujący każdą wartość na przestrzeni danego okresu
powodowałby szybki wzrost danych do obsłużenia. Dlatego
narzędzia, takie jak Monitor wydajności, podają średnie wartości
parametrów dla wskazanego przedziału czasu. Zmusza to do
ostrożności przy oznaczaniu wartości takiego przedziału. Na
przykład, wyciąganie średniej z obliczeń pobranych w ciągu całego
dnia pozwala na zaobserwowanie długoterminowych trendów
wzrostu zaangażowania systemu. Nie pozwoli nam jednak dostrzec
problemów z pamięcią, występujących między godziną 8 a 9 rano
i 1 a 2 po południu, a które nie ujdą uwagi użytkowników. Dlatego
powinniśmy dla pomiarów ustalić rozsądne przedziały czasu (w
okolicach kilku minut). Monitorowanie można także, aby nie
zbierać bezużytecznych danych, włączać i wyłączać automatycznie
(temat omawiany w dalszej części rozdziału).

Monitorowanie systemu nie może mieć wpływu na dane w nim
przechowywane. Na przykład błąd popełnimy wtedy, gdy do
zmierzenia osobno wszystkich parametrów uruchomimy kilkanaście
oddzielnych zadań Monitora wydajności, przy ustalonym 1-
sekundowym przedziale czasu pomiaru (zapisując jeszcze te dane na
jednym dysku). Musimy być bowiem świadomi, iż same czynności
zbierania informacji obciążą ogromnie system i

dane będą

bezużyteczne.

Ostatnim, istotnym dla monitorowania wydajności NT , czynnikiem
jest oznaczenie logiczne napędu. Większość obiektów śledzonych
przez Monitor wydajności ma kilka oznaczeń logicznych.
Przykładem jest monitorowanie napędu dysku logicznego - system
musi wiedzieć, który z dysków logicznych ma monitorować.
Dlatego Monitor zawiera listę oznaczeń logicznych (czyli

background image

746

Rozdział 19

,,realizacji’’) obiektów.

Monitor wydajności śledzi wiele różnych typów obiektów (np.
procesory). Każdy obiekt ma kilka cech, które mogą być
kontrolowane. Każdej z tych cech Windows NT przypisuje licznik
(na przykład licznik mierzący procent zaangażowania czasu
procesora). Gdy dany obiekt ma kilka składników, należy wskazać
Monitorowi, który z

nich ma być śledzony i

przez który

z liczników (rysunek 19.4).

Aktywności, które można monitorować

Windows NT zapewnia szeroką gamę liczników śledzących funkcje
obiektów. Oto lista takich obiektów, z liczbami przypisanych im
liczników (w nawiasach):

!

Przeglądarka (21)

!

Pamięć podręczna - cache (27)

!

IP (17)

!

Dysk logiczny (21)

!

Pamięć operacyjna (27)

!

NetBEUI (39)

!

Zasoby NetBEUI (3)

!

Interfejs sieciowy (17)

!

NWLink IPX (39)

O biekt

D yski logic zne

Licz niki

% cz as prac y dysku

O dcz ytan e baj ty /se k.

Zapi sane bajt y /sek.

456

123

43

N apę d C

N apę d D

Re al iza cj a

Rys. 19.4.

Terminologia

dotycząca

Monitora

wydajności

background image

Optymalizacja wydajności

747

!

NWLink NetBIOS (39)

!

NWLink SPX (39)

!

Obiekty (zdarzenia, semafory typu mutex, procesy, sekcje,

semafory i wątki)

!

Plik stronicowania (paging file) (2)

!

Dysk fizyczny (19)

!

Proces (18)

!

Procesor (10)

!

Port RAS (17)

!

Pełna usługa RAS (18)

!

Redyrekcja (37)

!

Serwer (26)

!

Kolejka zadań serwera (17)

!

System (24)

!

T CP (9)

!

Wątek (12)

T ak jak Protokół zdarzeń może być wykorzystywany przez
aplikacje - aby informacje o tym, co wydarzyło się w systemie
znajdowały się w

jednym miejscu, tak też aplikacje mogą

współpracować z Monitorem wydajności, składując informacje (o
wydajności) w jednym miejscu. Opcje monitorowania pojawiają się
na liście obiektów tylko wtedy, gdy działają odpowiednie aplikacje.
Na przykład, pięć obiektów Monitora wydajności, związanych
z serwerem SQL i dziewięć obiektów, związanych z

serwerem

wymiany, wymienione są na liście wówczas, gdy serwery te są
aktywne. Nie przeszkadza to uruchamianiu sesji Monitora w kilku
oknach - do kontrolowania pojedynczych czynników. Pozwala to
też na umieszczenie zebranych danych na jednym wykresie
i obserwowanie ważnych parametrów systemu, charakteryzujących
współpracę aplikacji z systemem operacyjnym. W ten sposób
można wyśledzić aplikację, odpowiedzialną za duże przeciążenia
systemu czy nawet blokowanie jego pracy.

Monitor wydajności jest narzędziem, którego roli przecenić nie

background image

748

Rozdział 19

można i należy go szybko opanować. Praca z nim nie wiąże się
z żadnym ryzykiem, może on śledzić rozmaite zagadnienia, a jego
interfejs jest bardzo czytelny. Swobodne posługiwanie się różnego
rodzaju wykresami i licznikami przyda się w sytuacjach, gdy trzeba
będzie szybko rozwiązać uciążliwy problem.

M onitor wydajności

Jak wygląda Monitor wydajności (Performance Monitor)? Rysunek
19.6 ilustruje jeden z najlepszych sposobów przedstawiania danych -
wykres liniowy.

Rys. 19.5.

Monitor

wydajności

w menu Start.

background image

Optymalizacja wydajności

749

!

W górnej części okna znajduje się tradycyjny pasek menu

Windows, który umożliwia dostęp do wszystkich opcji
przetwarzania.

!

Poniżej znajduje się pasek narzędzi, który pozwala na wybranie

najczęściej używanych opcji. Dzięki pierwszym czterem
przyciskom możemy wybrać sposób, w

jaki dane będą

wyświetlane: chart view, alert view, log view i report view.
Kolejne trzy pozwalają dodać, zmienić lub usunąć dany licznik
z listy menu rozwijanego. Następny przycisk służy do krótkiego
przeglądu informacji o wydajności (gdy dane nie są zbierane
w zdefiniowanych uprzednio przedziałach czasu) a sąsiedni - do
zapisania uwagi (zakładki) w protokole, co pomaga w szybkim
przypomnieniu zagadnienia przy przeglądaniu protokołu.
Ostatni przycisk wyświetla okno

Display Options

,

przeznaczone do zmiany ustawień.

!

Większa część okna zajęta jest przez wykres ilustrujący zebrane

dane.

Niektórzy z nas są przyzwyczajeni do jednoczesnego stosowania
kilku okien lub pasków narzędzi - tak aby widzieć wszystko, co
dzieje się w systemie. Możemy wówczas - do zmniejszania wykresu
Monitora wydajności - użyć klawiszy kontrolnych. Aby np.

Rys. 19.6.
Podstawowy
interfejs
Monitora
wydajności

background image

750

Rozdział 19

uzyskać wykres z rysunku 19.7, należy nacisnąć kombinację
klawiszy CT RL+M (wyświetlenie i lub ukrycie paska narzędzi).
Kombinacja CT RL+P wyświetla okno Monitora wydajności na
wierzchu wszystkich okien pulpitu. Wystarczy teraz ustawić
Monitor tak, by kontrolował żądane składniki systemu, schować
menu, pasek narzędzi, okno statusu, zmniejszyć wielkość okna
i przesunąć je do wybranej pozycji.

Przy pierwszym uruchomieniu Monitora wydajności (Performance
Monitor) zauważymy natychmiast, że nie wykonuje on żadnych
działań. Przy tak dużej liczbie opcji monitorowania Microsoft nie
sugerował domyślnych ustawień tego narzędzia. Dlatego musimy
ustalić wszystkie żądane opcje, liczniki i obiekty, które mają być
kontrolowane. Zadanie to nie jest trudne. Klikamy najpierw ikonę
znaku plus na pasku narzędzi. Wyświetlone zostanie okno
dialogowe

Add to Chart

(Dodaj do wykresu) (rysunek 19.8).

W oknie tym wybieramy żądane opcje:

Rys. 19.7.

Zmniejszone okno

Monitora

wydajności.

background image

Optymalizacja wydajności

751

!

Computer

(Komputer): Znacznik ten umożliwia wybranie

komputera, który ma być monitorowany. Jest to bardzo
użyteczna opcja, ponieważ pozwala kontrolować całe
środowisko, do którego ma się odpowiednie uprawnienia,
z własnego terminala. Znacznik po prawej umożliwia
odnalezienie komputerów, które można monitorować (pozostaje
też wpisanie podwójnego backslash-a (\\) i nazwy komputera).

!

Obj ect

(Obiekt): Jest to lista, którą można przewinąć, aby

wybrać obiekty do monitorowania. Wybrany obiekt powoduje
zmianę dopuszczalnych wartości wyświetlanych w kolejnych
dwóch polach.

!

Counter

(Licznik): Jest to lista przewijalna - do wyboru

odpowiedniego licznika, który ma być przypisany do
wyznaczonego obiektu.

!

Instance

(Realizacja): Po prawej stronie pól

Obj ect

i

Counter

znajduje się lista oznaczeń (,,realizacji’’) wybranego obiektu
(należy wybrać napęd dysku).

!

Add

(Dodanie): Aby dodać podany licznik obiektu, dopisany do

listy liczników, należy kliknąć ten przycisk.

!

Explain

(Objaśnienie): Bardziej szczegółowy opis wybranego

licznika uzyskamy po kliknięciu przycisku

Explain

; tekst

objaśnienia pojawi się u dołu okna dialogowego (rysunek 19.8).

Rys. 19.8. Okno
dialogowe Add to
Chart.

background image

752

Rozdział 19

Chociaż objaśnienia te nie są zbyt szczegółowe ani jasne,
w pewnych sytuacjach mogą okazać się przydatne.

!

Cancel

(Rezygnacja): Po zakończeniu pracy klikamy ten

przycisk przed wybraniem

Add

, lub klikamy

Done

- po

naciśnięciu

Add

. Wrócimy do głównego ekranu, wyświetlającego

efekty naszych działań.

!

T o samo okno dialogowe znajduje zastosowanie dla wszystkich

typów monitorowania (wykresy, alarmy, protokoły, raporty).
Ostatnie słowo na pasku tytułu zmienia się, oznaczając opcję
ekranu, którą właśnie wykorzystujemy.

!

Na koniec wypada wspomnieć o kontroli koloru (Color), skali

(Scale), szerokości (Width) i stylu (Style) (pola u dołu okna).
Monitor sam zmienia kolory i wzorce linie dla krzywych (line
pattern) w trakcie dodawania przez użytkownika liczników,
niemniej jednak sposób wyświetlania możemy tutaj ustalić
samodzielnie.

Wykresy

Dotychczasowe rozważania ilustrowaliśmy wykresami względnie
prostymi. Spójrzmy jednak na rysunek 19.9, z

wykresami

ilustrującymi kilka nowych zagadnień. Po pierwsze, trudno jest na
tym rysunku skojarzyć krzywą z odpowiadającym jej licznikiem;
krzywych jest kilka i przecinają się wzajemnie. Nawet osoby mające
duże doświadczenie w odczytywaniu wykresów z trudnością radzą
sobie z

więcej niż kilkoma krzywymi na jednym wykresie

Rys. 19.8. Okno

dialogowe Add to

Chart z wybraną

opcją Explain

( Objaśnienie).

background image

Optymalizacja wydajności

753

(pamiętajmy o tym, kiedy będziemy chcieli zademonstrować
kierownictwu nasze wydruki). Ponadto większość osób uznałaby
wykresy tu zaprezentowane za szczególnie trudne do odczytania.
Otóż Microsoft - aby ułatwić przypisanie poszczególnych
krzywych odpowiadającym im elementom danych - używa różnych
kolorów i wzorców linii. Jeśli wykres ma być czytelny na rysunku
czarno-białym, liczba krzywych powinna być niewielka (pomimo
różnych poziomów szarości odpowiadających różnym kolorom
i różnych wzorców linii).

Dobranie liczników, które chcemy monitorować i dopasowanie
opcji wyświetlania wraz z kolorami, które zadowolą nasze poczucie
estetyki, zabiera zwykle trochę czasu. Konieczność
przeprowadzania adaptacji po każdym uruchomieniu Monitora
stanowiłaby dużą niedogodność. Na szczęście wprowadzono tutaj
opcję

Sav e Chart Settings

(Zachowanie ustawień wykresu) w menu

File

(Plik) (rysunek 19.10), umożliwiającą zachowanie na dysku

ustawień dla danego wykresu. Można też, poprzez

Sav e

Workspace

(Zachowanie ustawień roboczych) zachować, w pliku

ustawień roboczych, wszystkie ustawienia dla wykresów, wybrane
opcje menu itd. Funkcje te naprawdę dają bardzo wiele. Można np.
z góry utworzyć cały szereg plików z

różnymi ustawieniami

Monitora wydajności, kiedy wszystko idzie dobrze. Można nawet
nagrywać dane dla kluczowych parametrów, odpowiadających
prawidłowej pracy systemu. W przypadku zaś wystąpienia jakiegoś

Rys. 19.9.
Kompletny wykres
Monitora
wydajności.

background image

754

Rozdział 19

kryzysu istnieje możliwość szybkiego wyświetlenia wykresów
wydajności - w celu porównania ich wartościami odpowiadającymi
warunkom normalnym. T aka asekuracja może się opłacić wtedy,
gdy wszyscy naokoło zarzucają nas pretensjami. T worzymy
wówczas listę najważniejszych czynności, niezbędnych do
przywrócenia stanu sprzed awarii.

Jeśli zaś, poza administrowaniem systemem NT , tworzymy własne
aplikacje, autor podpowiada nam, że największe zainteresowanie
wśród użytkowników budzi możliwość generowania raportów
i narzędzia do prezentacji. Z

większością formularzy do

wprowadzania danych można sobie poradzić bez kłopotów, o ile są
funkcjonalne i wydajne. Gdy jednak przychodzi do raportów
i prezentacji, użytkownicy będą kłócili się między sobą godzinami,
które kolumny powinny znaleźć się w raporcie, w jakim porządku
należy je wyświetlać, a czasem - w jaki sposób należy obliczać
wartości w kolumnach. Autor miał już do czynienia z osobami,
które godziny całe poświęcały na dyskusję o krojach czcionek
i nagłówku dokumentu. T eraz jednak sami jesteśmy w

roli

użytkownika narzędzia do prezentacji danych (tzn. Monitora
wydajności). Stąd też Monitor ma kilka opcji prezentacji danych.
Nie ograniczają się one jedynie do wyboru podstawowego formatu
(np. raportowania alarmów dla omówionych wyżej wykresów
graficznych); możemy także ustalić sposób zbierania i prezentacji
danych na wykresie. Rysunek 19.11 przedstawia okno dialogowe

Chart Option

(Opcja wykresu).

background image

Optymalizacja wydajności

755

Wymienione przed chwilą okno dialogowe umożliwia ustawienie
następujących opcji:

!

Legend

(Legenda): znacznik określający, czy część ekranu ma

zająć legenda (tzn. sekcja, w której kolor i wzorzec linii dla
krzywej przypisuje się danemu komputerowi, obiektowi,

Rys. 19.10.

Zachowanie

ustawień

Monitora

wydajności do

pliku.

Rys. 19.11. Okno
dialogowe Chart
Options.

background image

756

Rozdział 19

licznikowi i realizacji). Zalecamy zawsze uaktywniać tę opcję,
chyba że konwencja wykresu jest absolutnie oczywista.

!

Value

Bar

(Pasek wartości): znacznik określający, czy

następujące ekrany danych należy prezentować tuż pod samym
wykresem: Last (ostatni), Average (średnia), Minimum,
Maximum i Graph Time (czas wykresu) (rysunek 19.11).

!

Vertical

Grid

(siatka pionowa): znacznik określający, czy na

wykresie mają być naniesione pionowe linie, by ułatwić odczyt
wartości dla poszczególnych punktów danych (na wykresie
z

rysunku 19.11 wybrano zarówno linie poziome, jak

i pionowe).

!

Horizontal

Grid

(siatka pozioma): znacznik określający, czy na

wykresie mają być naniesione poziome linie - by ułatwić odczyt
czasów odpowiadających poszczególnym punktom danych.

!

Vertical

Labels

(etykiety pionowe): znacznik definiujący, czy

ma być wyświetlana skala wartości dla linii pionowej.

!

Gallery

(galeria): opcja zawierająca przełączniki do wyboru

pomiędzy: Graph (wykres składający się z punktów połączonych
liniami) i Histogram (wykres słupkowy, na którym każdy punkt
danych reprezentowany jest przez pionowy słupek o wysokości
proporcjonalnej do mierzonej wartości)

!

Vertical

Maximum

(zakres pionowy): pole edycyjne do

podawania, czy wyświetlany ma być cały przedział wartości
ustalonych przez system NT (od 0% do 100%), czy też żąda się
przedziału zawężonego (np. od 0% do 50%). Opcja ta jest
użyteczna wtedy, gdy chcemy odczytać niewielkie zmiany
danych, niemożliwy do uchwycenia przy wyświetlaniu całego
zakresu wartości.

!

Update

Time

(czas aktualizacji): Sekcja pozwalająca nam ustalić,

czy aktualizacja ma być wykonywana okresowo (Periodic
Update
), czy też ręcznie (Manual Update). Domyślna jest
aktualizacja okresowa (Periodic). Monitor wydajności zbiera
dane automatycznie dla danego punktu, ilustrującego wybrane
parametry w odstępie czasu podanym w polu wprowadzania
danych. W przypadku wybrania ręcznej (Manual) aktualizacji,
dane zbieramy samodzielnie, klikając na pasku narzędzi

background image

Optymalizacja wydajności

757

Monitora przycisk z rysunkiem aparatu fotograficznego, przez
wybranie pozycji menu

Options

(Opcje) i

Update Now

(T eraz

aktualizuj), lub naciśnięcie CT RL+U.

Widzimy teraz, jak szeroką gamą opcji wyświetlania wykresów
dysponuje Monitor wydajności. Nie martwmy się, jeśli nie jesteśmy
jeszcze pewni, których opcji będziemy używać w

naszym

środowisku. Autor, w dalszej części rozdziału, zamieścił listę swoich
ulubionych liczników. Przejdziemy teraz do innych opcji zbierania
danych i prezentacji, które udostępnia Monitor wydajności. Jak
dotąd poznaliśmy tylko jeden z czterech możliwych formatów
prezentacji, niemniej jednak przystosowanie się do pozostałych
trzech nie powinno zabrać nam wiele czasu.

Widok alarmów w M onitorze wydajności

Rysunek 19.12 przedstawia następną opcję prezentacji Monitora
wydajności: widok alarmów (alert view). Załóżmy, że chcemy
kontrolować kilka parametrów dla kilku serwerów. Na wykresach
jednak pionowe linie zakrywają częściowo wyświetlane wartości,
tak że zamiast informacji o historii widzimy tylko ustalone
przedziały czasu. Ponadto mało kto lubi spędzać dwadzieścia cztery
godziny na dobę czekając na pojawienie się na ekranie informacji
sygnalizującej awarię. (W dalszej części wyjaśnimy pojęcie widoku
protokołu
, umożliwiającego przechwycenie dowolnej danej
i zachowanie jej na dysku do późniejszej analizy). Mimo iż - w celu
wykrywania problemów z czasem reakcji na żądania użytkowników
- ustalimy względnie rozsądny interwał pozyskiwania danych (np.
60-sekundowy), w krótkim czasie zostaniemy „zalani” potokiem
danych.

background image

758

Rozdział 19

Ponadto znakomita większość danych, które znaleźć się mogą
w pliku protokołu Monitora wydajności, nie będzie miała dla nas
żadnego znaczenia. Odzwierciedlają one bowiem normalne działanie
systemu, bez jakichkolwiek problemów. Ceny napędów dyskowych
nie są dzisiaj wygórowane, więc przechowanie tych wszystkich
danych nie stanowi zbyt dużego obciążenia. Cenny jest jednak nasz
czas pracy, a przedarcie się przez stosy liczb, by odnaleźć te, które
mogłyby sygnalizować jakiś problem, zabrałoby go naprawdę sporo.
Widok alarmów jest narzędziem umożliwiającym selektywną
rejestrację danych - tj. tylko wtedy, gdy osiągają one pewne
wartości graniczne (wprowadzone przez nas do Monitora
wydajności jako interesujące).

Konfigurację monitorowania z widokiem alarmów należy rozpocząć
od wybrania opcji widoku z

paska narzędzi (tzn. ikony

przedstawiającej książkę protokołów z wykrzyknikiem na okładce).
Następnie - w celu wybrania liczników do monitorowania - trzeba
kliknąć przycisk ze znakiem dodawania (+). Pojawiające się
w odpowiedzi okno dialogowe

Add to Alert

(Dodanie do alarmu)

(rysunek 19.13) ma te same możliwości kontroli, które
zastosowano do wybrania liczników w widoku wykresu (Computer,
Object, Counter,
oraz Instance). Najważniejsze dane, wymagane do
uaktywnienia pracy widoku alarmów, wpisuje się u dołu ekranu.

Rys. 19.12. Ekran
Protokołu
alarmów.

background image

Optymalizacja wydajności

759

Przełącznik

Alert If

(Alarm w przypadku) umożliwia określenie

sytuacji, w której rekord z alarmem powinien zostać zapisany. Za
pomocą tego przełącznika podajemy, że interesują nas wartości
większe (Over) lub mniejsze (Under) - od tej, zapisanej w polu
edycyjnym. Obszar kontrolny

Run Program on Alert

(Program

uruchamiany dla alarmu) daje możliwość uruchomienia jakiegoś
programu w przypadku napotkania wartości spoza prawidłowego
zakresu. Możemy tutaj zadecydować, czy program ma być
uruchamiany za każdym razem, gdy spełniony będzie warunek
alarmu, czy też tylko po pierwszym jego wystąpieniu.

Widok alarmów może okazać się naprawdę użyteczny, jeżeli jego
działanie będzie długotrwałe (lub permanentne, o

okresach

aktywności serwera). Zbiera on tylko te dane, które mają dla nas
jakieś znaczenie. Można podać wartości charakteryzujące zarówno
bardzo wielkie, jak i bardzo małe obciążenie. Można nawet
automatycznie uruchomić program podejmujący działania
naprawcze lub umożliwiający dokładniejsze monitorowanie
w przypadku napotkania jakichś niezwykłych stanów w systemie.
Co prawda na przeglądanie takich informacji też potrzeba czasu, ale
teraz przynajmniej możemy ograniczyć się do danych
sygnalizujących przynajmniej potencjalnie interesujące nas
zdarzenia.

Widok protokołu w M onitorze wydajności

Widok protokołu (log view) Monitora wydajności stanowi kolejny
etap naszych rozważań. Obowiązuje tutaj czytelna zasada -
wszystkie dane wpisywane są do pliku protokołu. Później plik ten
możemy otworzyć (z poziomu Monitora) i przejrzeć wyniki lub je
wyeksportować do pliku danych (by np. umożliwić ich import, dla

Rys. 19.13. Okno

dialogowe Add to

Alert.

background image

760

Rozdział 19

dalszych analiz, do arkusza kalkulacyjnego (np. Microsoft Excel).
Obsługa Widoku protokołu nie jest kłopotliwa. Najpierw musimy
podać parametry do protokołowania (klikając na pasku narzędzi
ikonę ze znakiem dodawania), wskazać plik, który ma zawierać
protokołowane dane oraz określić metodę ich pozyskiwania.
Rysunek 19.14 ilustruje okno dialogowe

Log Options

(Opcje

protokołowania), w którym wpisujemy powyższe informacje.

Okno dialogowe

Log Options

zawiera standardowe możliwości

wyboru plików. Dane można dopisać na koniec istniejącego pliku
lub utworzyć dla nich nowy plik. Można nawet, by ułatwić
wyszukiwanie, przechowywać wszystkie pliki protokołów
w oddzielnym katalogu (lub w napędzie sieciowym). Po wpisaniu
nazwy pliku, musimy jeszcze tylko podać czas aktualizacji.
Wskazana jest tutaj ostrożność, gdyż po wybraniu np. czasu
aktualizacji wynoszącego 10 sekund, w

każdym dniu

wygenerowanych zostanie 8 600 punktów dla każdego wybranego
licznika. Proces protokołowania uruchamiamy wybierając

Start

Log

. Zauważmy, że Monitor wydajności musi być stale aktywny,

aby mógł zbierać dane do wybranego przez nas pliku protokołu.
(Narzędzie to może także pracować w tle, o czym powiemy
później).

Rys. 19.14. Okno
dialogowe Opcje
protokołowania.

background image

Optymalizacja wydajności

761

Widok raportów M onitora wydajności

A teraz ostatni widok, udostępniony przez Monitor wydajności -
Widok raportów (report view), przedstawiony na rysunku 19.15.
Musimy tutaj podać listę liczników do monitorowania;
w

odpowiedzi pojawi się lista parametrów i

wartości

zaobserwowanych w ostatnim interwale aktualizacji. W pracy z tym
widokiem bardzo pomocną będzie dla nas opcja ręcznej aktualizacji
danych. Wyobraźmy sobie sytuację, w której cały system działa
dobrze, jeśli pewna aplikacja nie jest uruchomiona. Zbieramy zestaw
wartości dla tej normalnej sytuacji i zapisujemy je na dysk.
Uruchamiamy następnie „podejrzany” program i zbieramy nowy
zestaw danych dla porównania. Jest to więc jeszcze jedno narzędzie
w naszym arsenale środków, jakimi dysponować możemy
w kryzysowych momentach pracy systemu.

Wybór źródła danych w M onitorze wydajności

Monitor wydajności oferuje nam wiele, wbudowanych w widoki
wykresów, możliwości prezentacji. Opcja protokołowania
użyteczna jest jedynie przy zbierania danych w długich przedziałach
czasu, kiedy nie mamy możliwości stałego śledzenia wykresów
przed ich zamazaniem. W tej sytuacji pomocna będzie opcja

Data

From

(Źródło danych) z menu

Options

, generująca okno dialogowe

(rysunek 19.16) do wyboru przedmiotu wizualizacji wykresem.
Normalnym ustawieniem jest wizualizacja aktywności bieżącej
(liczniki aktualnie wybrane do monitorowania). Dysponujemy
opcją wyboru jednego z

już wcześniej utworzonych plików

protokołów, jako przedmiotu późniejszej wizualizacji wykresem.

background image

762

Rozdział 19

Na koniec warto zapamiętać, iż jeśli wybierzemy pewne ustawienia
do monitorowania zestawu parametrów za pomocą jednego widoku,
nie będą one obowiązywały dla innych widoków. Jeśli np. za
pomocą wykresu monitorujemy szybkości transferu danych na
dysku logicznym, nie oznacza to, że do tych ustawień i danych
można uzyskać dostęp z widoku raportów).

Rys. 19.15. Okno

dialogowe

Dodanie do

raportu.

Rys. 19.16. Okno
dialogowe Źródło
danych.

background image

Optymalizacja wydajności

763

Inne narzędzia do optymalizacji

Omówimy teraz szereg narzędzi przydatnych w

przypadku

problemów związanych z wydajnością. Monitor wydajności jest
podstawowym, wiele oferującym narzędziem, przewidzianym do
obsługi monitorowania wydajności w środowisku Windows NT .
Warto jednak zwrócić uwagę także na te dane, które możemy
pozyskać z innych, niżej wymienionych, narzędzi do obsługi
monitorowania wydajności:

!

Event Viewer (Przeglądarka zdarzeń)

!

Ekran

Virtual Memory

(Pamięć wirtualna) w aplecie

Control

Panel System

(System panelu kontrolnego).

!

Ekran

Tasking

(Obsługa zadań) w aplecie

Control Panel System

(System panelu sterowania).

!

Aplet

Serv ices

(Usługi) Panelu sterowania (

Control Panel

).

!

Aplet

Serv er

w Panelu sterowania.

!

Windows NT Diagnostics (Diagnostyka systemu Windows NT )

w

grupie programów Administrative T ools (Narzędzia do

administrowania).

Przeglądarka zdarzeń

Podstawowym przeznaczeniem Przeglądarki zdarzeń (Event
Viewer) jest nadzorowanie (auditing) systemu Windows NT
(opisaliśmy je dokładnie w

rozdziale 24). Służy ona do

nadzorowania zarejestrowanych pewnych sytuacji (zdarzeń), które
zdefiniowano jako interesujące na przyszłość. Odnosi się ona
zarówno do usług (które np. nie chcą się uruchomić lub startują
i „zawieszają” się), jak i

komunikatów informacyjnych (np.

o uruchomieniu i zamknięciu systemu). Przeglądarka zdarzeń może
również rejestrować działania związane z aplikacjami (np. serwera
SQL i Serwera wymiany poczty), które zaprojektowano tak, aby
mogły rejestrować takie informacje. Rekord z datownikiem może
okazać się bardzo pomocny, kiedy próbujemy dowiedzieć się, co
działo się w systemie wówczas, gdy wystąpił dany problem.

Posłużymy się czytelnym przykładem: użytkownicy zgłosili nam
niezwykłą powolność systemu w

okolicach godziny 12:45.

background image

764

Rozdział 19

Ponieważ w

czasie tym Monitor wydajności (Performance

monitor) nie działał, nie ma żadnych zarejestrowanych danych
dotyczących liczników związanych z wydajnością. Są jednak dane
subiektywne: opinia użytkowników o niskiej wydajności systemu
o określonej porze dnia. Pierwszą rzeczą jest sprawdzenie - za
pomocą Przeglądarki Zdarzeń - czy około godziny 12:45 nie
wystąpiły jakieś specjalne zdarzenia.

Rysunek 19.17 ilustruje pracę Przeglądarki w systemie autora.
Możemy tutaj zauważyć, że w tym (mniej więcej) czasie, kiedy
użytkownicy zgłaszali problemy z

wydajnością, w

kolejce

oczekiwało kilka zadań drukowania. Najwidoczniej ktoś (autor,
w rzeczy samej) skierował wówczas do kolejki kilka złożonych
wydruków graficznych na taką drukarkę, która mocno obciążyła
zasoby systemowe. Można wówczas wykonać pewne testy,
przeprowadzić symulację sytuacji odpowiedzialnej za problem,
a następnie podjąć działania naprawcze. Najlepszą i najważniejszą
cechą Przeglądarki zdarzeń jest jej - dzięki oczekiwaniu w tle - stała
gotowość do podjęcia

żądanych działań. Ponadto jej

skonfigurowanie nie nastręcza problemów.

Aplet do wyświetlania parametrów pamięci wirtualnej

W naszej pracy pomocny może też być ekran

Virtual Memory

(Pamięć wirtualna) apletu

Control Panel System

(System panelu

sterowania). Rysunek 19.18 przestawia ten ekran dla komputera
autora książki. Nie uzyskamy tutaj np. informacji, dlaczego dana
aplikacja działała zbyt wolno dziś po południu - możemy jednak
sprawdzić konfigurację plików stronicowania (paging files). U dołu
ekranu zapisane są też ciekawe informacje o pamięci używanej

Rys. 19.17.
Rekord
Przeglądarki
zdarzeń
wykorzystany do
monitorowania
wydajności.

background image

Optymalizacja wydajności

765

przez sterowniki i wielkości Rejestru (Registry). Ramka u góry służy
do sprawdzenia, które napędy dyskowe zawierają pliki
stronicowania (co zainteresuje nas zwłaszcza wtedy, gdy
obserwować będziemy intensywne stronicowanie w systemie wraz
z mocno obciążonym napędem dyskowym). Stronicowanie może
istotnie obciążyć dyski zawierające pliki stronicowania.

Obsługa zadań

Ciekawym mininarzędziem do analizy jest okno do ustalania
priorytetów zadań w Windows NT . Jest ono miejscem, w którym
możemy wpływać na algorytmy samoczynnej optymalizacji.
System NT Workstation jest zoptymalizowany pod kątem czasu
reakcji na działania użytkowników (w tle). W

NT Server

poświęcono (w pewnym stopniu) szybkość reakcji konsoli na rzecz
nadzoru użytkowników pracujących w sieci, przeprowadzanego za
pośrednictwem usług w tle (takich jak usługi sieciowe, drukowania
i usługi zarządzania systemem bazy danych). Rysunek 19.19
przedstawia okno

Tasking

(Obsługa zadań) apletu

System

,

dostępnego z Panelu Sterowania (

Control

Panel

). Jak widać,

dostępne są trzy poziomy sterowania - od intensywnej obsługi
aplikacji pierwszoplanowych - do równowagi między obsługą żądań
z pierwszego planu a ich obsługą z tła. Jeśli kiedykolwiek zmuszeni
zostaniemy do pracy intensywnym przetwarzaniu danych na mało
wydajnym serwerze, odniesiemy wrażenie, że nie ma nawet

Rys. 19.18. Ekran
Virtual Memory.

background image

766

Rozdział 19

równowagi pomiędzy procesami, a raczej, że serwer zwyczajnie
ignoruje nas na rzecz tych użytkowników, którzy są podłączeni do
niego przez sieć. (Być może jest to tylko subiektywna opinia
autora, a może po prostu przyzwyczaił się on za bardzo do
względnie dobrego sprzętu...).

Aplet Usługi

Następnym narzędziem, pomocnym przy rozwiązywaniu
problemów z wydajnością, jest aplet

Serv ices

(Usługi) (rysunek

19.20). Za jego pomocą sprawdzamy, jakie usługi są w danym
momencie aktywne. W odniesieniu do problemów z wydajnością
narzędzie to znajduje zastosowanie do wyszukania kilku
działających, ale już niepotrzebnych usług. Jest to idealny sposób na
zwiększenie wydajności systemu bez ponoszenia dodatkowych
kosztów. Inny wariant polega na uruchamianiu szeregu usług,
wymaganych jedynie w

określonych porach dnia. Możemy

utworzyć plik wsadowy z

komendami net start

i net stop

- w celu uruchamiania i zatrzymywania tych usług

w zależności od potrzeb. Ilustruje to poniższy przykład, w którym
zatrzymana zostaje usługa bazy danych Oracle, by umożliwić
zakończenie operacji tworzenia kopii bezpieczeństwa (na
marginesie: w pliku wsadowym jest też kilka komend zamykających
bazę Oracle, a następnie - przez skrypt - znów ją otwierających).

Rys. 19.19. Okno

dialogowe

Tasking ( Obsługa

zadań).

background image

Optymalizacja wydajności

767

Wystarczy zapamiętać, że za pomocą apletu

Serv ices

można

sprawdzić, które usługi są aktualnie realizowane.

Aplet Server

Następnym narzędziem z listy jest aplet

Serv er

(którego nie

należy mylić z apletem

Serv ices

) (rysunek 19.21). Dzięki niemu

możemy szybko sprawdzić kilka parametrów bezpośrednio
wpływających na wydajność, bez konieczności ustawiania plików
Monitora wydajności

(Performance monitor). Poniżej

przedstawiamy te pozycje, które autor uznał za godne uwagi:

!

Liczba użytkowników z aktualnie otwartymi sesjami w serwerze.

Listę takich użytkowników uzyskamy po wybraniu funkcji

Users

(Użytkownicy). Jeśli borykamy się z

problemem

nawracającym, z opcji tej możemy skorzystać do sprawdzenia,
czy i kto jest zawsze zalogowany, gdy pojawia się problem.
Można potem sprawdzić, jakie czynności użytkownika mogłyby
ewentualnie go powodować. Jeśli opisany sposób wydaje nam się
żmudny, pamiętajmy, że może on (jako jedyny !) umożliwić
nam wykrycie przyczyny zakłóceń pojawiających się „ni stąd, ni

Rys. 19.20. Aplet
Usługi

Rys. 19.21. Aplet

Server.

background image

768

Rozdział 19

zowąd”, a

potem znikających bez śladu, zanim zdążymy

uaktywnić i ustawić formalne procedury monitorowania.

!

Liczba zablokowanych (locked) plików. W

niektórych

aplikacjach kładzie się bardzo duży nacisk na utrzymywanie
integralności danych. Stąd też aplikacje takie - podczas ich
aktualizowania przez wątek - blokują swoje pliki danych.
Problem polega na tym, że inne aplikacje użytkownika,
wymagające dostępu do tych plików mogą, oczekując aż
pierwsza aplikacja je odblokuje, „utknąć” w martwym punkcie.
Użytkownikowi końcowemu może wydawać się, że długie okresy
oczekiwania wynikają z bardzo dużego obciążenia procesora.

Aplet do diagnostyki systemu Windows NT

Ostatni na liście innych użytecznych narzędzi do monitorowania
jest panel Windows NT Diagnostics (Diagnostyka systemu
Windows NT ) (rysunek 19.22). Nie jest on aż tak funkcjonalny,
jak panele kontrolne urządzeń w Windows 95, udostępniające
wszystkie wewnętrzne parametry (jak przerwania, adresy w pamięci
itd), mające wpływ na działanie systemu. Niemniej także i tutaj
znajdziemy podobne informacje.

Narzędzia do monitorowania - uwagi końcowe

Opisane wyżej narzędzia są naprawdę bardzo pomocne

Rys. 19.22. Ekran
diagnostyczny
W indows NT.

background image

Optymalizacja wydajności

769

w wykrywaniu przyczyn i rozwiązywaniu większości problemów,
z

którymi administratorzy borykają się najczęściej. Przed

przejściem do następnego tematu kilka ostatnich uwag:

!

Dyskowe narzędzia monitorujące wprowadzają pewne niewielkie

obciążenie dodatkowe (zwykle 1,5%). Z tego powodu Microsoft
uznał, że monitorowanie dyskowe jest domyślnie wyłączone.
Włączenie liczników związanych z dyskami możliwe jest po
wpisaniu w linii komend: diskperf -y, i następnie przełado-
waniu komputera, którego napędy dyskowe chcemy
monitorować. Potem dane z tych liczników zostaną skojarzone
z napędami logicznymi i fizycznymi.

!

Musimy pamiętać, że monitorowanie wielkiej liczby parametrów

może spowolnić system. Dlatego należy je przeważnie
rozpoczynać dla problemów ogólnych, a dodatkowe liczniki,
odnoszące się do konkretnych części i obszarów systemu,
uaktywniać dopiero wtedy, gdy liczniki ogólne wskażą na
potencjalne przyczyny problemów.

!

Monitor wydajności (Performance Monitor) umożliwia

monitorowanie zdalnych komputerów NT . W

ten sposób

administrator może, korzystając z

własnej stacji roboczej,

nadzorować kilka serwerów. W przypadku takiej konfiguracji
wydajność wszystkich komputerów w sieci można sprawdzać
w jednym miejscu.

M onitorowanie wydajności w zadanych godzinach

Informacji o wydajności nie musimy pobierać permanentnie.
W wielu firmach systemy są niemal nieobciążone wieczorem lub
nocą. Nie ma sensu marnowanie przestrzeni dyskowej na dane
z bardzo wielu liczników, o których i tak wiadomo, że wskazują
wartości bliskie zeru. Celem uniknięcia takiego marnotrawstwa
możemy skorzystać z małego i zgrabnego narzędzia, zawartego
w

pakiecie Windows NT Resource Kit, umożliwiającego

rozpoczęcie w tle monitorowania wydajności z użyciem plików
ustawień, już przedtem zachowanych na dysku. Można
skonfigurować wiele plików ustawień tak, by średnie zbierane były
co minutę podczas normalnych godzin pracy, a co pół godziny
w

nocy, kiedy działają stosunkowo długie zadania wsadowe

background image

770

Rozdział 19

i obciążenie systemu mało zmienia się w czasie. Usługą realizującą
to zadanie jest datalog.exe. Włącza się ją i wyłącza z linii
komend NT (albo poprzez plik wsadowy) lub z wykorzystaniem
komendy

monitor.exe

. W

poniższym przykładzie

monitorowanie powinno zacząć się o godzinie 8:00, a zakończyć
o godzinie 11:59 (praca poranna):

at 8:00 ”monitor START”

at 11:59 ”monitor STOP”

Pakiet Resource Kit udostępnia więcej szczegółowych informacji na
temat omawianej usługi. W dalszym ciągu musimy - aby sprawdzić,
co się dzieje w

systemie - oglądać pliki protokołów, ale

przynajmniej nie jesteśmy zmuszeni do stałego przesiadywania przy
komputerze (żeby włączać i wyłączać proces monitorowania).
Istnieje ponadto udogodnienie, polegające na interaktywnym
tworzeniu i sprawdzaniu plików ustawień z użyciem Monitora
wydajności. Własność ta, w połączeniu ze wszystkimi wyżej
omówionymi funkcjami monitorowania, stwarza rzeczywiście
skuteczny zestaw narzędziowy do kontroli wydarzeń
w zarządzanym systemie NT .

Startowy zestaw liczników

Jest wiele rzeczy do obserwacji, a tylko kilka narzędzi do
wykorzystania. Ponadto wiele z liczników przeznaczonych jest dla
bardzo specjalnych sytuacji, pozbawiając nas w ten sposób wielu
użytecznych danych. Przedstawimy teraz zestaw liczników, który
(według opinii autora) pozwoli nam stworzyć ogólną i miarodajną
ocenę stanu systemu. Jeśli któryś z tych liczników zaczyna
sygnalizować problem, wówczas do wyśledzenia jego przyczyny
będziemy mogli skorzystać z

innych liczników, związanych

z podejrzanym obiektem.

Opierając się na klasycznym modelu budowy komputera (procesor
(CPU), pamięć, wejście/wyjście (przede wszystkim dyski twarde)
i obsługa sieci) autor proponuje nam rozważyć następujący startowy
zestaw liczników:

!

Procesor: wykorzystanie czasu procesora [%]. Jeśli nasz

procesor jest obciążony w

blisko 100%, oznacza to, iż

najprawdopodobniej zbliżamy się do granicy możliwości

background image

Optymalizacja wydajności

771

przetwarzania naszego komputera. W przypadku systemów
wieloprocesorowych musimy ustalić obciążenie wszystkich
procesorów. Mogłoby np. okazać się, że system i aplikacje
korzystają jedynie z jednego z procesorów, gdy pozostałe są
bezczynne (Windows NT „czuwa” nad podziałem zaangażowania
procesorów). Pamiętajmy, że przetwarzanie w sposób naturalny
ma zmienny przebieg (aplikacja czeka przez chwilę na dane
z

dysku, potem startuje w

wybuchu nagłej aktywności).

W związku z tym obciążenia powinniśmy mierzyć w rozsądnych
przedziałach czasu (10 sekund i więcej).

!

Pamięć: szybkość stronicowania

[stron/sekundę].

Stronicowanie pomiędzy pamięcią fizyczną a wirtualną jest
zjawiskiem normalnym i zdarza się przy niewielkim obciążeniu.
Uważać należy na sytuacje, w

których staje się ono

intensywniejsze (niż zwykle), a system, zamiast realizować
przetwarzanie dla użytkowników - poświęca cały swój czas na
przesyłanie informacji między plikami stronicowania i samą
pamięcią fizyczną. Szybkość stronicowania mniejszą lub równą 5
uważa się zwykle za prawidłową, ale może się to zmieniać
w różnych systemach.

!

Fizyczne napędy dyskowe: fragmentaryczny czas

obciążenia [%]. Aplikacje ,,wolą’’ przechowywać wszystkie
pliki we wspólnej przestrzeni - tak, aby można je było znajdować
i separować od tych, utworzonych przez inne aplikacje. Ma to
swoje negatywne strony: kiedy działa jakaś aplikacja (zwłaszcza
gdy obsługuje wielu użytkowników), przejawia tendencję do
znacznego (nieproporcjonalnego względem pozostałych
napędów) obciążania napędu dyskowego z jej plikami. Dyski
twarde - z uwagi na ich nieefektywną obsługę w prawie każdej
aplikacji - stają się przyczyną „wąskich gardeł” (kiedy to
aplikacje bezczynnie wyczekują na zakończenie transferu
danych dla jednego użytkownika, zanim inni będą mogli uzyskać
dostęp do swoich danych). Zjawisko to wyznacza jeden
z najważniejszych aspektów optymalizacji dla baz danych.
Doświadczenie uczy, że powinno się redukować obciążenie
napędu przekraczające 90 % jego czasu.

!

Fizyczne napędy dyskowe: długość kolejki. Długość kolejki

jest następnym wskaźnikiem służącym do wykrywania, że kilka

background image

772

Rozdział 19

procesów użytkownika nic nie robi w oczekiwaniu na dostęp do
napędu dyskowego. Zdroworozsądkowa reguła mówi, że jeżeli dla
danego napędu dyskowego długość kolejki przekracza 2, to
należy rozważyć sposoby zmniejszenia jego obciążenia.

!

Serwery: ogólna liczba przesłanych bajtów na sekundę.

Ostatnim komponentem wydajności, któremu powinniśmy
poświęcić uwagę, jest obciążenie sieci powodowane transmisją.
Niestety, ze względu na dużą ilość monitorów dla każdego
z różnych protokołów sieciowych, nie jest to zadanie proste.
Omawiany licznik pozwala nam zorientować się, kiedy sieć i/lub
karta interfejsu sieciowego nie nadąża z obsługą żądań. Wartość
bliska nominalnej wartości granicznej dla używanego typu sieci
(3 miliony bitów na sekundę dla standardu Ethernet oraz 4 albo
16 milionów bitów na sekundę - dla T oken ring) wskazuje, że
sama sieć jest przeciążona. Parametr ten jednak może być
mylący, gdyż w przypadku podłączenia do sieci lokalnej, która
bez trudności przesyła dane z

wymienionymi powyżej

prędkościami, prawdziwym „wąskim gardłem” stałaby się sieć, do
której podłączeni bylibyśmy za pomocą łączy o maksymalnej
przepustowości np. 56 KB/s. Wreszcie sieć może sobie radzić ze
swoją przepustowością nominalną, ale karta sieciowa naszego
komputera - już nie.

Narzędzia do monitorowania powinniśmy uruchamiać podczas
normalnej pracy systemu - dla orientacji, jakie wartości liczników
wiążą się z wydajnością pozostającą w granicach normy. Jest to
szczególnie istotne w przypadku tych liczników, których nie
wymieniliśmy na powyższej liście; trudno byłoby podać dla nich
reguły ogólne, gdyż w bardzo dużym stopniu zależą one od sprzętu.
Stąd np. szybki napęd dyskowy, współpracujący z

szybkim

kontrolerem i magistralą, może odczytać o wiele więcej bajtów
w ciągu sekundy, niż wolny napęd połączony z

wolnym

kontrolerem.

Na koniec wspomnieć należy jeszcze o możliwościach innego
narzędzia (z pakietu Resource Kit), przeznaczonego do symulacji
obciążeń w systemie. Dzięki niemu możemy ustalić, które liczniki
wiążą się z ograniczeniami systemu. Powinniśmy zacząć od średnich
obciążeń, a następnie zwiększać je - aż do zauważenia poważnego
pogorszenia wydajności. Wartości liczników należy rejestrować

background image

Optymalizacja wydajności

773

w trakcie zwiększania obciążenia i zaznaczać liczniki, dla których
wartości te są największe. Operacja taka jest czasochłonna i wpływa
na pracę użytkowników. Jeśli jednak zarządzamy szczególnie dużym
lub wymagającym środowiskiem NT , dane te mogą okazać się
bardzo cenne - zwłaszcza przy organizowaniu zasobów przed
osiągnięciem przez system absolutnej granicy przetwarzania.

Musimy być świadomi, iż każda aplikacja ma inny wpływ na
system. Np. bazy danych nadmiernie angażują pamięć,
wejście/wyjście i

zdolność systemu do prostych

(całkowitoliczbowych) obliczeń. Aplikacje inżynierskie i naukowe
nadużywają moc obliczeniową komputera, zwłaszcza przy
kalkulacjach zmiennoprzecinkowych. Warto wiedzieć, co
konkretnie robią aplikacje w serwerze. Dzięki temu będziemy mogli
się zorientować, która aplikacja (a więc i który użytkownik)
powoduje wzrost obciążenia systemu. Pamiętajmy, że licznik dla
kolejki dyskowej może wykazać przeciążenie danego napędu
dyskowego; naszym zadaniem jednak jest wykrycie aplikacji
i użytkownika, odpowiedzialnych za przeciążenia, a

także

zaradzenie temu i poprawienie wydajności.

Częste problemy: wykrywanie i rozwiązywanie

Niestety nasza nowo nabyta wiedza o analizowaniu przyczyn
problemów z

wydajnością w

systemie Windows NT nie jest

wystarczająca. T rzeba jeszcze umieć wykryć konkretny problem
i rozwiązać go tak, by wydajność wróciła do normy. Musimy być
przy tym świadomi, iż:

!

Problemy mogą się ukrywać. Rozważmy przykład intensywnie

wykorzystywanego napędu dyskowego. Jeśli nie sprawdzimy
wszystkich wskaźników, nie będziemy w

stanie ustalić

prawdziwej przyczyny zakłóceń, a

mianowicie wysokiego

stopnia stronicowania związanego z

napędem, na którym

znajduje się większość plików naszej bazy danych. Jest to dobry
przykład problemu zarówno z

pamięcią, jak i

sposobem

organizacji zasobów dyskowych w systemie. Stąd najlepiej jest
zawsze sprawdzać wszystkie dostępne informacje.

!

Żeby wiedzieć, co regulować, trzeba też wiedzieć dokładnie, co

działa w systemie kiedy pojawił się problem. Może okazać się to

background image

774

Rozdział 19

trudne w systemach przetwarzających dane dla dużej liczby
użytkowników i obsługujących wiele różnorodnych aplikacji. Nie
wystarczy wiedzieć, że napęd dyskowy jest przeciążony. T rzeba
jeszcze ustalić - by dokonać odpowiednich czynności
regulacyjnych - która aplikacja jest przyczyną zakłóceń.

!

Różne są opinie co do satysfakcjonującego czasu reakcji. Osoby

przyzwyczajone do pracy z

prostymi aplikacjami dla

komputerów osobistych akceptują natychmiastowe czasy
reakcji. Kiedy jednak wyszukuje się dane w bazie danych
o objętości kilkuset gigabajtów, trzeba być odrobinę bardziej
wyrozumiałym i cierpliwym. T aki parametr powinien więc
zostać wspólnie przyjęty w

firmie, najlepiej przed

wprowadzeniem aplikacji - tak, by administrator zapewnił sobie
wystarczające zasoby obliczeniowe.

!

Należy również dokładnie rozważyć stosunek kosztów do

wydajności. Chociaż wielka szybkość przetwarzania jest zaletą
w każdym systemie, poświęcanie kilku miesięcy pracy na
przyspieszenie o

dwie sekundy czasu reakcji na żądania

użytkownika dla jednej aplikacji byłoby wielką przesadą..
Administratorzy mają przecież również mnóstwo innych zadań.
Następną decyzją do podjęcia mogłoby być rozstrzygnięcie, czy
lepiej wydać 400 złotych na dodatkowe 8 MB pamięci
operacyjnej, czy też wynająć specjalistę, który zoptymalizuje
system w ciągu miesiąca, biorąc 30 złotych za godzinę (a więc za
około 4800 złotych).

!

Czasem warto też rozważyć całkowicie „nietechniczne”

rozwiązanie problemu, przed zakupem sprzętu lub poświęceniem
długiego czasu pracy na optymalizację. Jednym z klasycznych
problemów z serwerami jest szczytowe obciążenie przez pierwszą
godzinę dnia pracy, a następnie przez pierwszą godzinę po
przerwie obiadowej. Zjawisko to można łatwo wyjaśnić:
większość pracowników przychodzi do biur, robi sobie kawę
i loguje się do systemu, żeby sprawdzić pocztę. T o samo dzieje
się po obiedzie, a czasem też tuż przed końcem dnia pracy (z
dodatkową ewentualnością szczytowych obciążeń zasobów
związanych z drukowaniem). Czasem list lub komunikat od
administratora do użytkowników, który wyjaśni sytuację
i zaproponuje znacznie krótszy czas reakcji (pod warunkiem

background image

Optymalizacja wydajności

775

zmiany nawyków), może rozwiązać problem (bez drastycznych
decyzji co do ograniczeń dostępu czy zakupów dodatkowego
sprzętu).

M etodologia optymalizacji wydajności

Rozpoczęliśmy od podstawowych danych związanych
z wydajnością, zebranych z wykorzystaniem narzędzi omówionych
w tym rozdziale. Znajomość tych danych należy połączyć z wiedzą
o tym, co dzieje się w systemie (jakie uruchomiono zadania, czy nie
są realizowane comiesięczne zestawienia, bilanse itd.).

W następnym etapie powinniśmy powiązać zebrane dane
z informacjami na temat platformy sprzętowej i systemu Windows
NT . Zadaniem administratora jest określenie ewentualnych
przyczyn obserwowanego problemu. T utaj właśnie okazują się
szczególnie pomocne zebrane wcześniej dane przy prawidłowej
wydajności systemu. Wówczas nawet niewielkie zmiany we
wskaźnikach wydajności zostaną uchwycone, co może naprowadzić
nas na przyczynę problemu. Dobrze jest czasem zacząć od
ustalenia, co działa dobrze i zawężać stopniowo listę możliwych
źródeł zakłóceń.

Po zestawieniu listy potencjalnych przyczyn problemu,
powinniśmy - w celu potwierdzenia naszych hipotez - zebrać trochę
więcej danych. Może też jednak okazać się, że ogólne dane
o wydajności nie będą wystarczające. Być może trzeba będzie
uruchomić dodatkowe liczniki wydajności, aby pozyskać
odpowiednio wiele danych do podjęcia decyzji. Jest to często trudne
wyzwanie dla administratora, bo użytkownicy żądają rozwiązań
natychmiastowych i rzadko okazują cierpliwość. Poważne kłopoty
sprawiają tzw. problemy nawracające. Załóżmy, że (używając
alarmów w Monitorze wydajności) stwierdzamy pewnego ranka, że
wczoraj wystąpiły dwa „skoki” obciążenia systemu. Jak można
odtworzyć warunki, które doprowadziły do tych zakłóceń?
Mogłoby okazać się konieczne uruchomienie dodatkowych
monitorów na wiele dni lub nawet tygodni, zanim problem ten
pojawiłby się ponownie.

Jeśli mamy już wystarczająco wiele danych, musimy sformułować
możliwe przyczyny zakłóceń. Ograniczenie listy możliwych

background image

776

Rozdział 19

przyczyn tylko do tych, które wydają się nam możliwe, jest jak
najbardziej zasadne. Dobrze jest też przypisać prawdopodobieństwa
poszczególnym pozycjom na liście możliwych przyczyn.

Po przeprowadzeniu wszystkich uznanych za celowe analiz czas na
faktyczne rozwiązanie problemu. T eraz właśnie niezbędna okaże
się, zebrana wcześniej, wiedza na temat systemu. Podstawowa
zasada eksperymentów naukowych, którą powinni przestrzegać
także administratorzy sieci komputerowych, dopuszcza zmianę
tylko jednej rzeczy na raz w systemie. Jeśli przenieślibyśmy
wszystkie pliki między napędami, to być może rozwiązalibyśmy
nasz problem, powodując jednak kilka następnych.

Typowe problemy z wydajnością

Dodanie jeszcze jednego napędu dyskowego jest wydatkiem mało
znaczącym, ponadto często wymaganym w przyszłości, wraz ze
wzrostem zapotrzebowań aplikacji. Jednak rozbudowa
o potężniejszy procesor/jednostkę centralną jest z

reguły

poważnym wydatkiem. Niektóre zagadnienia, jakie trzeba rozważyć
przy problemach z procesorem, obejmuje poniższa lista:

!

Czy procesor jest rozsądnie obciążony przez uruchomioną

aplikację? Ustalenie tego faktu może być trudne dla osób mało
obeznanych z

technologią komputerową. Jednak jeśli

dysponujemy procesorem Pentium z zegarem 150 MHz, który
jest przeciążony przez system poczty elektronicznej obsługujący
10 użytkowników, wtedy problem wiąże się raczej z aplikacją lub
innymi parametrami optymalizacji ale z

pewnością nie

z procesorem.

!

Czy w komputerze zainstalowano jakiekolwiek nowe lub mało

znane urządzenia? Źle napisany sterownik urządzenia może
zmarnować mnóstwo czasu procesora i spowolnić jego pracę.

!

Czy posiadamy dane monitorowania, zebrane podczas prób

planowania wydajności (patrz niżej), które potwierdziłyby naszą
opinię, że wzrost wymagań użytkowników uzasadnia zakup
nowego procesora? Czy w systemie zaczęto używać nowych
aplikacji, które ewentualnie wymagają optymalizacji lub
modernizacji procesora?

background image

Optymalizacja wydajności

777

Kolejny aspekt naszych rozważań stanowi pamięć. Użytkownicy
PC bardzo często narzekają na wielkie, ich zdaniem,
zapotrzebowania systemu NT względem pamięci. Wspominaliśmy
już, iż z uwagi na szybszy (w stosunku do dysków) dostęp do
informacji znajdującej się w

pamięci operacyjnej, projektanci

systemów operacyjnych i aplikacji będą z pewnością dalej tworzyli
oprogramowanie wymagające coraz większej pamięci do
wykonywania coraz bardziej złożonych zadań. Nie należy też
zapominać, że wiele działań systemu NT , związanych
z samoczynną optymalizacją, dotyczy przydzielania pamięci w celu
polepszenia wydajności. Starając się ustalić przyczynę wadliwego
funkcjonowania pamięci powinniśmy znaleźć odpowiedź na
poniższe pytania:

!

Czy dobrze zoptymalizowano aplikacje wykorzystujące pamięć

współdzieloną? DBA może ustalić wymagania bazy danych
Oracle - od kilku do prawie stu megabajtów. T rzeba sprawdzić
prawidłowość optymalizacji (ani za mało, ani za dużo) przed
dokupieniem pamięci oraz stwierdzić, czy w systemie nie
działają żadne niepotrzebne usługi. Mając do czynienia ze
wszystkimi udogodnieniami zautomatyzowanej instalacji
oprogramowania trudno jest zapamiętać, czy usunięto wszystkie
stare usługi aplikacji przed zainstalowaniem nowych.
Sprawdzenie tego na liście w Panelu sterowania nie powinno być
specjalnie uciążliwe.

!

Jaka jest konfiguracja gniazd rozszerzeń pamięci? Często

producenci sprzętu łączą te gniazda parami i wymagają instalo-
wania układów pamięci w takich bankach również parami. Jeśli
rzeczywiście trzeba będzie zwiększyć wydajność serwera
i pamięć, wtedy lepiej wcześniej zakupić pojemniejsze układy
pamięci, by nie trzeba było ich później wymieniać na nowe,
spełniające wymagania.

Przechodzimy teraz do problemów wejścia/wyjścia, związanych
z napędami dyskowymi. Autor pracuje dużo z systemami baz
danych i uważa, że te właśnie zakłócenia pojawiają się najczęściej.
Są one jednak najłatwiejsze do rozwiązania, ze względu na dzisiejsze
pojemności i ceny napędów dyskowych. Pierwszą czynnością jest
ustalenie, które pliki są często używane (lub używane w tym samym
czasie przez daną aplikację) i umieszczenie ich na oddzielnych

background image

778

Rozdział 19

napędach dyskowych. Najlepszym zaleceniem optymalizacyjnym
dla bazy danych Oracle, która działa mało wydajnie z powodu
problemów wyjścia/wejścia, jest umieszczenie tablic i indeksów na
osobnych napędach dyskowych (uważając przy tym na sposób
wzajemnego ich połączenia). Obciążenie można rozłożyć między
kilka napędów dyskowych, tak by każdy działał znacznie poniżej
granicznych wartości transferu danych, ale może zdarzyć się i tak,
że przekroczona zostanie wartość graniczna transferu dla
sterującego tymi napędami kontrolera. W

przypadku bardzo

wielkich zestawów napędów dyskowych z wieloma poziomami
kontrolerów dyskowych, ktoś musi - obok rozłożenia pomiędzy
poszczególne napędy dyskowe - rozłożyć obciążenie między
kontrolery (i kontrolery kontrolerów).

!

Napotkać możemy sytuacje, w których obciążenie wynikające

z aplikacji lub inne czynniki nie pozwolą na rozłożenie
obciążenia między kilka napędów dyskowych (jeśli np. wszystkie
operacje wejścia/wyjścia koncentrują się wokół jednego pliku).
T rzeba wówczas - aby zapewnić obsługę często używanych
plików - rozważyć zakup szybszych napędów i kontrolerów
(takich jak SCSI lub nawet napędów dysków
elektrostatycznych), a pozostałe napędy przydzielić do innych
zadań (takich jak magazynowanie wszystkich danych
o wydajności, które będziemy musieli protokołować w

tak

bardzo obciążonym systemie). Można też wdrożyć ,,paskowanie
dysków’’ (disk stripping), aby pojedyncze pliki przechowywane
były na wielu napędach dyskowych.

!

W zależności od stosowanego w danym napędzie dyskowym

systemu plików NT (FAT , NT FS itd.) pojawić się mogą
problemy wywołane fragmentacją plików. U zarania dziejów
komputerów wszystkie dane w pliku musiały być ulokowane na
dysku, jako zbiór przylegających do siebie bloków. Powodowało
to mnóstwo komplikacji - np. przy tworzeniu takich aplikacji,
jak edytory tekstów, które zapisują na dysk pewne dane do
jednego dokumentu, wykonują inne operacje, by ponownie
zapisywać do tego samego dokumentu. Dyskowe bloki danych za
obszarem zajętym przez dokument utworzony przez edytor
tekstów zostały zapisane w wyniku realizacji innych procedur.
W rezultacie utworzenie miejsca na zapisanie zmodyfikowanego,
większego dokumentu, wymagało przeprowadzenia bardzo wielu

background image

Optymalizacja wydajności

779

operacji przestawiania plików na dysku. Rozwiązaniem było
umożliwienie dzielenia plików na wiele sekcji i uzupełnienie
obsługi plików o usługi systemu operacyjnego, potrafiące złożyć
taki plik razem wtedy, gdy ma być wykorzystany. T aki
mechanizm powodował z kolei nowy problem, spowodowany
różnicą między szybkością transmisji danych z

dysków

a mechanicznym ruchem ramion z głowicami. Stąd też dostęp do
pliku rozrzuconego po całym dysku (pliku pofragmentowanego)
jest znacznie wolniejszy niż do takiego, który znajduje się
w grupie przylegających do siebie sekcji. Czy fragmentacja
w ogóle ma istotny wpływ na pogorszenie działania Windows
NT nie zostało do końca ustalone. W każdym razie dostępne są
narzędzia do defragmentacji dla wielu różnych systemów plików,
takie jak Executive Software wraz z powiązanym produktem
Diskeeper.

!

Ciekawa sytuacja wiąże się z niższym, niż usług drukowania,

priorytetem usług dyskowych. Odważni mogą spróbować wejść
do Rejestru poprzez

service\lanman\server

\

parameters

i podnieść priorytet serwera z domyślnego poziomu 1 na 2
(dodać ThreadPriority typu DWORD z wartością 2).

!

Istnieje możliwość rozrzucenia jednego pliku między kilka

napędów dyskowych. Czasem sprzęt (lub oprogramowanie)
odpowiada wówczas za składanie razem sekcji kilku napędów
i traktowanie tych sekcji jako jednego napędu logicznego. Na
przykład w przypadku pary dwudyskowej pierwszy blok logiczny
znajdowałby się na pierwszym fizycznym napędzie dyskowym;
drugi natomiast - na drugim napędzie fizycznym; trzeci - na
pierwszym itd. T echnika ta, zwana ,,paskowaniem’’ (stripping)
jest przykładem technologii zwanej RAID (Redundant Arrays of
Inexpensive Disks ), stosowanej w celu polepszenia wydajności
i niezawodności.

Ostatnim obszarem występowania problemów w

naszych

rozważaniach jest sieć. Z uwagi na złożoność jej struktury nawet
administratorzy sieciowi mają czasem kłopoty, gdyż serwery
i stacje robocze mogą powodować zakłócenia równie często, jak np.
niska wydajność sieci lub uszkodzony sprzęt. Aby efektywnie
wykrywać awarie w sieci musimy dysponowanie diagramem jej
struktury. Nie jest to łatwe, gdyż w sieci wszystko ciągle się

background image

780

Rozdział 19

zmienia, i większość osób nie ma dostępu do takich diagramów (jeśli
w ogóle ktoś je kiedyś wykonał). Przed przejściem do dalszych
analiz zapoznajmy się z poniższymi uwagami:

!

Szybkie i skuteczne rozwiązanie awarii w sieci możliwe będzie po

zawężeniu strefy jej występowania - do konkretnego fragmentu
sieci lub nawet do konkretnego komputera. Często wiąże się to
z weryfikacją pracy znajomych użytkowników różnych
segmentów sieci. Niektórzy z Czytelników mogą mieć dostęp do
zaawansowanych technik monitorowania, pomocnych przy
takim zawężaniu lokalizacji problemu. Źródłem większości
zakłóceń pracy w sieciach rozległych jest ograniczona prędkość
transmisji łączy z odległymi miejscami. Chociaż takie łącza
sieciowe nie muszą być przyczyną problemów w naszej sieci,
i tak pierwsi o nich usłyszymy (,,czemu twój serwer działa dziś
tak wolno?’’). Wniosek jest oczywisty: powinniśmy mieć na
podorędziu dane dowodzące, że niewystarczająca prędkość
transmisji nie wynika z błędów w naszej pracy.

!

Po stwierdzeniu, iż problem występuje na zarządzanym przez nas

serwerze, spróbujmy ograniczyć liczbę monitorowanych przez
serwer protokołów sieciowych. Podczas instalacji systemu
serwera łatwo zaznaczało się każdy możliwy protokół w celu
uniknięcia późniejszych kłopotów, ale teraz może to być
przyczyną nadmiernego obciążenia.

!

Można również tak zmodyfikować kolejność wiązania dla

różnych protokołów sieciowych, aby nadać większą rangę
ważniejszym z nich (np. protokołowi T CP/IP dla tych transakcji
baz danych, które wszyscy chcą przyspieszyć), kosztem
wydłużenia czasu reakcji dla usług, które w mniejszym stopniu
wymagają dużej szybkości (np. zadania drukowania).

!

Jeśli wszystkie opisane (i nieopisane) wyżej działania nie odniosą

skutku, spytajmy się ekspertów od sieci, czy potrafią polecić
kartę sieciową o przepustowości lepszej od obecnie używanej.
Karty bardzo różnią się wydajnością, przy czym większość
z nich stanowią proste karty przystosowane do względnie
niskich wymagań transmisyjnych stacji roboczych, a nie dużych,
wyznaczonych przez serwery. Zamiana karty jest mniej
kosztowna od wymiany całej sieci na szybszą lub też zmiany jej
topologii - w celu polepszenia routingu.

background image

Optymalizacja wydajności

781

Na tym etapie będziemy kończyć nasze rozważania poświęcone
wydajności pracy serwera NT w sieci. Sztuka optymalizacji jest
złożona, stanie się jednak prostsza wraz z

nabywaniem

doświadczenia. Objęcie wszystkich dostępnych technik jest dla wielu
osób trudne. Ewolucja systemu Windows NT będzie chyba
ukierunkowana na wykorzystanie wielu nowych technologii, łącznie
z

Internetem, sieciami intranetowymi oraz technikami

multimedialnymi (np. obsługi wideograficznej w

komputerach

osobistych).

Monitorowanie sieci

Wielu administratorów zarządza małymi sieciami, w których awarie
zdarzają się stosunkowo rzadko. Inni znowu mają do czynienia ze
złożonymi sieciami rozległymi, nakładającymi wysokie wymagania
na wszystkie części systemu. Narzędzia do monitorowania,
wbudowane w system NT , mają jednak spełniać stosunkowo proste
wymagania mniejszych sieci. Mają one za zadanie udostępnić
rozsądną ilości informacji, na podstawie których można ustalić, czy
to serwer NT jest przyczyną problemu. Mogą nawet pomóc
w odnalezieniu protokołu i (ewentualnie) aplikacji powodujących
zakłócenia. Mocniejsze narzędzia mogą monitorować poziom ruchu
w sieci oraz typy różnych jej segmentów. Wiele z nich można
nawet uruchomić w Windows NT , a sprzedawane są przez wielkich
producentów sprzętu (np. Hewlett-Packard). Posiadają one
wygodne interfejsy graficzne (co ma znaczenie przy ilustrowaniu
obciążenia). Powinniśmy w każdym razie o takich narzędziach
pamiętać, kiedy już będziemy umieli udowodnić, że serwer zapewnia
obsługę transmisji w wystarczającym stopniu, a źródło spowolnienia
obsługi użytkowników leży gdzie indziej w sieci firmy.

Protokół SMNP

Protokół SNMP (Simple Network Monitoring Protocol) stworzono
z myślą o monitorowaniu informacji związanych z siecią. Wspomi-
namy go tutaj z dwóch powodów. Po pierwsze, sferę zastosowań
tego protokołu rozszerzono do monitorowania pracy urządzeń
sieciowych w takich systemach operacyjnych, jak Windows NT
Server. Agenta SNMP można zainstalować po to, by urządzenia

background image

782

Rozdział 19

odległe mogły ustalić, co robi serwer. Po drugie, są pakiety narzędzi
do zbierania wyników pomiarów wydajności innych urządzeń
w sieci, funkcjonujących w Windows NT . Jedną ze stacji roboczych
(lub też jeden z serwerów) można by wykorzystać jako centralny
komputer monitorujący system sieciowy.

Planowanie i rutynowe monitorowanie wydajności

Kiedy administrator otrzyma sygnał od użytkownika
o niewystarczającej przestrzeni dyskowej w

systemie lub

o znacznym wydłużeniu prostej transakcji bazy danych, wtedy
powinien on rozpatrzyć problem o charakterze zewnętrznym. T aka
sytuacja zmusza go do szybkiego działania w dużym stresie.

Sytuacji takich, chociaż nie można całkowicie wyeliminować,
powinniśmy unikać za wszelką cenę. W tym celu trzeba nadzorować
system dokładnie i systematycznie. Wszystkie, opisane w tym
rozdziale, techniki monitorowania możemy stosować niemal
w każdej sytuacji. W

planowaniu musimy dysponować

potwierdzonymi danymi, charakteryzującymi tendencje
w znaczącym przedziale czasu, łącznie z

informacjami

o przewidywanych zmianach środowiska.

Metod obliczania zapotrzebowania na zasoby i wydajność jest wiele.
Dla celów niniejszej książki wystarczy zaprezentować kilka
podstawowych koncepcji, z których mogą (przy minimalnym
wysiłku) skorzystać administratorzy zajmujący się serwerami
małych grup roboczych lub dużymi, złożonymi z

serwerów,

centrami danych:

!

Jeśli nie udaje nam się przez dłuższy czas zamknąć programu

monitorującego wydajność, autor proponuje realizować
automatyzację pozyskiwania danych przy użyciu plików
protokołów Monitora wydajności (za pomocą komendy at)
albo przez uruchomienie go jako usługi. Za obowiązkowe należy
uznać okresowe zbieranie z tych plików informacji o średnich
i maksymalnych/minimalnych wartościach, i ich umieszczanie
w arkuszu kalkulacyjnym, bazie danych lub książce protokołów.

background image

Optymalizacja wydajności

783

!

Zebrane dane należy okresowo przedstawiać kierownictwu, użyt-

kownikom itd. Dobrze jest dostosować planowanie wydajności
do cyklu finansowego swojej firmy.

!

Dane możemy gromadzić w arkuszu kalkulacyjnym, który

pomoże później utworzyć wykresy ilustrujące obciążenie
systemu w czasie. Długie szeregi liczb często są nieczytelne, ale
na wykresie nie sposób nie dostrzec, że krzywa wykorzystania
dysku zmierza nieubłaganie ku wartości granicznej.

!

Znajomość zdarzeń w systemie i przewidywanie na tej podstawie

przyszłych zdarzeń to nie wszystko. Możemy np., opierając się
na trendach wykorzystania procesora, przewidzieć, że jego
wydajność będzie wystarczająca przez dwa następne lata. Wiemy
jednocześnie, że grupa projektowa przygotowuje pięć nowych
aplikacji dla naszego serwera. Musimy znaleźć sposób
oszacowania (nawet bardzo pobieżne będzie lepsze niż żadne)
wpływu, jaki wywrą owe planowane zmiany na krzywe wzrostu -
aby wyznaczyć przedział czasu, w którym jakiś składnik serwera
osiągnie kres swojej wydajności.


Wyszukiwarka

Podobne podstrony:
20 rozdzial 19 lokja3dicdpmiyri Nieznany (2)
20 Rozdziae 19id 21444 Nieznany
19 rozdzial 18 CP7M6AGYJMXCNAAP Nieznany (2)
19 rozdzial 18 2i5rflcqd4jdzgnd Nieznany
plan dsbhp 19 20 01 id 360925 Nieznany
FIY Rozdział 19,20
Rozdział 19, 20, 21
Rozdział 19,20,21,22,23
20 Stosowanie zasad projektowan Nieznany (2)
05 rozdzial 04 nzig3du5fdy5tkt5 Nieznany (2)
2015 08 20 08 19 24 01
28 rozdzial 27 vmxgkzibmm3xcof4 Nieznany (2)
22 Rozdzial 21 KP4Q5YBIEV5DBSVC Nieznany (2)
09 08 Rozdzielnice budowlane RB Nieznany (2)
17 rozdzial 16 fq3zy7m2bu2oan6t Nieznany (2)
Kanicki Systemy Rozdzial 10 id Nieznany
29 rozdzial 28 ciw47mwstcqakqpq Nieznany
P C and Krisin Cast Dom Nocy Ujawniona(Revealed) rozdział 19

więcej podobnych podstron