ROZDZIAú 28

Okre£lanie wykorzystania pamiΩci i bufora

     Konsola Wydajno£µ wraz z innymi narzΩdziami systemu Windows 2000 umo┐liwia szacowanie ilo£ci dostΩpnej pamiΩci oraz obserwowanie efekt≤w jej niedoboru, kt≤ry jest najczΩstsz╣ przyczyn╣ niskiej wydajno£ci komputera. W niniejszym rozdziale mo┐na znaleƒµ tak┐e informacje pomocne w badaniu wydajno£ci pamiΩci podrΩcznej (bufora) û obszaru pamiΩci fizycznej, w kt≤rym przechowywane s╣ ostatnio u┐ywane dane odczytane lub zapisane na dysk. Dodatkowo w rozdziale tym mo┐na zapoznaµ siΩ z narzΩdziami u│atwiaj╣cymi analizowanie problem≤w zwi╣zanych z pamiΩci╣ i powodowanych przez aplikacje, kt≤re nie zosta│y zoptymalizowane pod wzglΩdem jej u┐ycia.
Zawarto£µ rozdzia│u
      Om≤wienie monitorowania pamiΩci
      Okre£lanie ilo£ci zainstalowanej pamiΩci
      PamiΩµ a bufor systemu plik≤w
      Ustanawianie linii bazowej dla pamiΩci
      Analizowanie problem≤w z pamiΩci╣
      Usuwanie w╣skich garde│ zwi╣zanych z pamiΩci╣ i buforem
Por≤wnaj
     U┐ytkownicy system≤w Windows 98 i Windows NT 4.0 Workstation zauwa┐╣ kilka zmian w systemie Windows 2000 zwi╣zanych z zasobami pamiΩci i jej wykorzystaniem. Kr≤tkie podsumowanie tych zmian znajduje siΩ poni┐ej:

Om≤wienie monitorowania wydajno£ci

     Warunki niedoboru pamiΩci mog╣ spowolniµ funkcjonowanie aplikacji i us│ug dzia│aj╣cych w komputerze, a tak┐e wp│yn╣µ na wydajno£µ innych zasob≤w. Przyk│adowo, je┐eli w komputerze brakuje pamiΩci, to wystΩpuje w nim zjawisko stronicowania, polegaj╣ce na przenoszeniu pamiΩci wirtualnej tam i z powrotem miΩdzy pamiΩci╣ fizyczn╣ a dyskiem. Skutkuje to zwiΩkszeniem obci╣┐enia napΩd≤w dyskowych. Poniewa┐ stronicowanie jest zwi╣zane z odczytywaniem i zapisywaniem danych na dysku, to czynno£µ ta mo┐e wsp≤│zawodniczyµ o dostΩp do niego z innymi, wykonywanymi w tym samym czasie transakcjami dyskowymi. Powoduje to powstawanie w╣skiego gard│a. Wzmo┐one operacje dyskowe powoduj╣ z kolei nadmierne obci╣┐enie procesora, kt≤ry musi obs│ugiwaµ liczne przerwania wywo│ywane przez powtarzaj╣ce siΩ b│Ωdy stron (b│Ωdy stron powstaj╣ w sytuacji, gdy system nie mo┐e zlokalizowaµ ┐╣danego kodu lub danych w pamiΩci fizycznej dostΩpnej dla ┐╣daj╣cego procesu). W rezultacie wyd│u┐a siΩ czas odpowiedzi aplikacji i us│ug.
     Rysunek 28.1 ilustruje miejsce monitorowania pamiΩci w procesie analizowania wydajno£ci systemu. PamiΩµ posiada tak istotny wp│yw na t╣ wydajno£µ, ┐e monitorowanie i analizowanie jej wykorzystania powinno byµ jednym z pierwszych etap≤w szacowania efektywno£ci systemu.


Rysunek 28.1 Rola monitorowania pamiΩci w procesie monitorowania systemu

     Pierwszym krokiem analizowania wykorzystania pamiΩci jest okre£lenie jej aktualnej konfiguracji i obci╣┐enia. Mo┐e w tym pom≤c poni┐sza lista:      Dalsze monitorowanie nale┐y ukierunkowaµ na okre£lenie, w jaki spos≤b system korzysta z pamiΩci oraz na zidentyfikowanie jej niedobor≤w. W tym celu nale┐y wykonaµ nastΩpuj╣ce czynno£ci:

Okre£lanie ilo£ci zainstalowanej pamiΩci

     Monitorowanie nale┐y rozpocz╣µ od sprawdzenia, czy w komputerze zosta│a zainstalowana ilo£µ pamiΩci wymagana do uruchomienia systemu Windows 2000. System Windows 2000 Professional wymaga co najmniej 32 megabajt≤w (MB) pamiΩci.
     Zalecenia zwi╣zane z pamiΩci╣ dla systemu Windows 2000 Professional s╣ oparte na typowej konfiguracji komputera osobistego, w kt≤rym u┐ywana jest aplikacja biznesowa, taka jak procesor tekstu lub arkusz kalkulacyjny, aplikacja do obs│ugi poczty elektronicznej oraz przegl╣darka sieci Web.
     Ilo£µ pamiΩci dostΩpnej w komputerze mo┐na okre£liµ na kilka sposob≤w. Rozmiar zainstalowanej pamiΩci fizycznej jest wy£wietlany na zak│adce Wydajno£µ w Mened┐erze zada±. Innym miejscem, w kt≤rym mo┐na znaleƒµ t╣ informacjΩ, jest zak│adka Og≤lne w module System w Panelu sterowania.
Uwaga KonfiguracjΩ pamiΩci w lokalnych i odleg│ych systemach mo┐na wy£wietlaµ za pomoc╣ narzΩdzia Informacje o systemie. WiΩcej informacji na jego temat mo┐na znaleƒµ w Pomocy systemu Windows 2000 Professional.
     System operacyjny r≤┐nicuje wykorzystanie pamiΩci przez aplikacje i us│ugi na podstawie tego, czy korzystaj╣ one z puli stronicowanej, czy niestronicowanej. Pula stronicowana zawiera pamiΩµ zwi╣zan╣ z obiektami u┐ywanymi przez aplikacje i us│ugi, kt≤ra mo┐e byµ stronicowana na dysk. Obiekty w puli niestronicowanej nie mog╣ byµ stronicowane na dysk. System operacyjny ustala rozmiary tych pul na podstawie ilo£ci dostΩpnej pamiΩci fizycznej. U┐ycie puli pamiΩci mo┐e byµ istotnym czynnikiem, kt≤ry nale┐y wzi╣µ pod uwagΩ podczas analizowania og≤lnego wykorzystania pamiΩci przez poszczeg≤lne aplikacje. WiΩcej informacji na temat pul pamiΩci mo┐na znaleƒµ w dalszej czΩ£ci tego rozdzia│u, w paragrafach äBadanie wyciek≤w pamiΩci w trybie u┐ytkownikaö oraz äBadanie wyciek≤w pamiΩci w trybie j╣draö.
     PamiΩµ podrΩczna systemu plik≤w, kt≤ra jest podzbiorem pamiΩci fizycznej umo┐liwiaj╣cym szybki dostΩp do danych, oraz plik stronicowania, obs│uguj╣cy pamiΩµ wirtualn╣, wp│ywaj╣ na ilo£µ pamiΩci u┐ywanej przez system operacyjny i aplikacje. Plik stronicowania, zwany tak┐e plikiem wymiany, znajduje siΩ na dysku twardym i s│u┐y jako tymczasowy magazyn dla pamiΩci wirtualnej, zawieraj╣cej kod i dane. PamiΩµ wirtualna jest przestrzeni╣ na dysku, z kt≤rej system Windows 2000 korzysta tak samo, jak z pamiΩci fizycznej. Z punktu widzenia monitorowania najistotniejszymi rodzajami pamiΩci wirtualnej s╣: pamiΩµ zadeklarowana (raportowana przez licznik PamiΩµ\Zadeklarowane bajty), kt≤r╣ system rezerwuje dla procesu w pliku stronicowania, oraz pamiΩµ dostΩpna (raportowana przez licznik PamiΩµ\DostΩpne bajty), kt≤ra nie jest u┐ywana przez ┐aden proces. Innym rodzajem pamiΩci zarz╣dzanej przez system Windows 2000 jest pamiΩµ zarezerwowana, kt≤r╣ system przeznacza dla procesu, ale kt≤ra mo┐e nie byµ wykorzystana w ca│o£ci. Kolejne paragrafy opisuj╣ wp│yw pamiΩci podrΩcznej i pliku stronicowania na og≤ln╣ wydajno£µ systemu oraz wyja£niaj╣, w jaki spos≤b nale┐y je konfigurowaµ, aby wykorzystanie pamiΩci by│o optymalne.

PamiΩµ a bufor systemu plik≤w

     System Windows 2000 alokuje czΩ£µ pamiΩci wirtualnej dostΩpnej w systemie na potrzeby bufora (pamiΩci podrΩcznej) systemu plik≤w. Bufor ten jest podzbiorem pamiΩci, kt≤ry przechowuje ostatnio u┐ywane informacje i umo┐liwia szybki dostΩp do nich. Rozmiar bufora zale┐y od ilo£ci zainstalowanej pamiΩci fizycznej oraz ilo£ci pamiΩci wymaganej przez aplikacje. System operacyjny dynamicznie dostosowuje rozmiar bufora, optymalnie dziel╣c pamiΩµ pomiΩdzy zestawami roboczymi proces≤w a pamiΩci╣ podrΩczn╣.
     System Windows 2000 Server udostΩpnia interfejs u┐ytkownika umo┐liwiaj╣cy dostosowywanie rozmiaru pamiΩci podrΩcznej systemu plik≤w. Interfejs ten nie jest jednak dostΩpny w systemie Windows 2000 Professional. WiΩcej informacji na temat dostosowywania rozmiaru bufora w komputerach u┐ywaj╣cych systemu Windows 2000 Server mo┐na znaleƒµ w rozdziale äOkre£lanie wykorzystania pamiΩci oraz pamiΩci podrΩcznejö w tomie Operacje Serwera wchodz╣cym w sk│ad publikacji Microsoft Windows 2000 Server Resource Kit.

Dostosowywanie rozmiaru pliku stronicowania

     System Windows 2000 tworzy na potrzeby obs│ugi pamiΩci wirtualnej jeden plik stronicowania. Posiada on nazwΩ Pagefile.sys i jest umiejscowiony na dysku lub woluminie, na kt≤rym zosta│ zainstalowany system operacyjny. Jego domy£lny rozmiar jest 1,5 razy wiΩkszy ni┐ rozmiar pamiΩci fizycznej zainstalowanej w komputerze. Niewielki plik stronicowania ogranicza ilo£µ przechowywanych danych i mo┐e spowodowaµ wyczerpanie pamiΩci wirtualnej dostΩpnej dla aplikacji. Je┐eli w systemie brakuje pamiΩci RAM, to stronicowanie zachodzi czΩ£ciej, co powoduje zwiΩkszon╣ aktywno£µ dysk≤w i wyd│u┐a czas odpowiedzi systemu.
     Ze wzglΩdu na to, ┐e rozmiar i lokalizacja pliku stronicowania mo┐e wp│yn╣µ na wydajno£µ systemu, mo┐e zaistnieµ potrzeba modyfikacji tych parametr≤w. Ponadto, poniewa┐ obs│uga kilku plik≤w znajduj╣cych siΩ na r≤┐nych dyskach fizycznych mo┐e zwiΩkszyµ wydajno£µ, to mo┐e zaistnieµ potrzeba utworzenia dodatkowych plik≤w stronicowania. Rysunek 28.2 przedstawia okno dialogowe PamiΩµ wirtualna, umo┐liwiaj╣ce zmianΩ ustawie± plik≤w stronicowania. WiΩcej informacji na ten temat mo┐na znaleƒµ w Pomocy systemu Windows 2000 Professional.


Rysunek 28.2 Okno dialogowe PamiΩµ wirtualna

     W optymalizacji pliku stronicowania mog╣ pom≤c poni┐sze wskaz≤wki.
Ujednolicenie pocz╣tkowego i maksymalnego rozmiaru
     Ustawienie pocz╣tkowego i maksymalnego rozmiaru pliku stronicowania na t╣ sam╣ warto£µ zwiΩksza efektywno£µ korzystania z niego, poniewa┐ system operacyjny nie musi zwiΩkszaµ tego pliku podczas przetwarzania danych. Ustawienie r≤┐nych warto£ci dla rozmiar≤w pocz╣tkowego i maksymalnego mo┐e zwiΩkszyµ fragmentacjΩ dysku.
ZwiΩkszenie rozmiaru domy£lnego
     ZwiΩkszenie domy£lnego rozmiaru pliku stronicowania mo┐e zwiΩkszyµ wydajno£µ systemu w przypadku, gdy aplikacje korzystaj╣ z pamiΩci wirtualnej, a ca│y istniej╣cy plik jest ju┐ zajΩty. Aby sprawdziµ, jak du┐y powinien byµ plik stronicowania, nale┐y monitorowaµ licznik Proces(_Total)\Bajty w pliku stronicowania. Wskazuje on, w bajtach, jaka czΩ£µ pliku stronicowania jest aktualnie u┐ywana.
     W│a£ciwy rozmiar pliku stronicowania mo┐na tak┐e ustaliµ mno┐╣c warto£µ licznika Plik stronicowania\Szczyt wykorzystania (%) przez rozmiar pliku Pagefile.sys. Licznik Szczyt u┐ycia (%) wskazuje na poziom wykorzystania pliku stronicowania. ZwiΩkszenie rozmiaru tego pliku nale┐y wzi╣µ pod uwagΩ w momencie, gdy warto£µ tego licznika przekroczy 70% ca│kowitego rozmiaru wszystkich plik≤w stronicowania lub gdy warto£µ licznika PamiΩµ\Zadeklarowane bajty w u┐yciu (%) przekroczy 85%.
     Plik stronicowania zajmuje miejsce na dysku, dlatego te┐ nie nale┐y tworzyµ du┐ego pliku stronicowania na dysku, kt≤ry charakteryzuje siΩ wysokim poziomem aktywno£ci lub niewielk╣ pojemno£ci╣. Rozmiar pliku stronicowania nale┐y zwiΩkszaµ stopniowo, testuj╣c jednocze£nie wydajno£µ, do momentu znalezienia optymalnej r≤wnowagi miΩdzy rozmiarem tego pliku a wykorzystaniem miejsca na dysku. System operacyjny wymaga do pracy co najmniej 5 MB wolnej przestrzeni na dysku. WiΩcej informacji na ten temat mo┐na znaleƒµ w rozdziale äBadanie i dostrajanie wydajno£ci dyskuö.
Przenoszenie pliku stronicowania
     Je┐eli przestrze± dyskowa w woluminie startowym jest ograniczona, to wy┐sz╣ wydajno£µ mo┐na osi╣gn╣µ przenosz╣c plik stronicowania do innego woluminu. Warto jednak pozostawiµ w woluminie startowym mniejszy plik stronicowania, tworz╣c jednocze£nie wiΩkszy w innym woluminie, poniewa┐ mo┐e on byµ potrzebny podczas odzyskiwania systemu po awarii. W zale┐no£ci od tego, jak zosta│y skonfigurowane opcje uruchamiania i odzyskiwania systemu, mo┐e byµ konieczne utrzymanie pliku stronicowania o okre£lonym rozmiarze w woluminie startowym. Dlatego planuj╣c przeniesienie pliku stronicowania, nale┐y wzi╣µ pod uwagΩ okre£lone w systemie ustawienia uruchamiania i odzyskiwania systemu. WiΩcej informacji na temat tych opcji mo┐na znaleƒµ w Pomocy systemu Windows 2000.
Korzystanie z kilku dysk≤w
     System Windows 2000 umo┐liwia korzystanie z pliku stronicowania o rozmiarze do 4.096 MB. Dodatkowo du┐e ilo£ci pamiΩci wirtualnej mo┐na udostΩpniµ aplikacjom konfiguruj╣c kilka plik≤w stronicowania. Rozdzielenie tych plik≤w pomiΩdzy kilkoma napΩdami dysk≤w i kontrolerami powoduje zwiΩkszenie wydajno£ci w wiΩkszo£ci nowoczesnych system≤w dyskowych. Jest tak, poniewa┐ poszczeg≤lne dyski mog╣ r≤wnocze£nie przetwarzaµ ┐╣dania wej£cia/wyj£cia (We/Wy).
     Dobr╣ lokalizacj╣ pliku stronicowania jest wolumin dublowany lub roz│o┐ony. Umieszczenie pliku stronicowania w przeznaczonej tylko dla niego partycji logicznej zapobiega jego fragmentacji. Utworzenie kilku plik≤w stronicowania w jednym woluminie logicznym lub partycji nie zwiΩksza w ┐aden spos≤b wydajno£ci systemu.
Uwaga Aby zaobserwowaµ u┐ycie pliku stronicowania podczas niedobor≤w pamiΩci, nale┐y uruchomiµ narzΩdzie LeakyApp, znajduj╣ce siΩ na dysku CD do│╣czonym do angielskojΩzycznej publikacji Microsoft Windows 2000 Professional Resource Kit. NarzΩdzie to symuluje wycieki pamiΩci na potrzeby monitorowania systemu. W czasie jego dzia│ania nale┐y monitorowaµ liczniki Plik stronicowania\Szczyt u┐ycia (%) oraz Proces(_Total)\Bajty w pliku stronicowania. Liczniki te nale┐y rejestrowaµ w celu okre£lenia prΩdko£ci wzrostu pliku stronicowania.

Ustanawianie linii bazowej dla pamiΩci

     Po stwierdzeniu, ┐e w systemie zosta│a zainstalowana wystarczaj╣ca ilo£µ pamiΩci, oraz ┐e jej konfiguracja jest prawid│owa, nale┐y przeanalizowaµ jej wykorzystanie przy typowym obci╣┐eniu systemu w celu okre£lenia linii bazowej, bΩd╣cej punktem odniesienia dla dalszych analiz. Linia bazowa nie jest pojedyncz╣ warto£ci╣, lecz raczej zakresem, wewn╣trz kt≤rego powinny siΩ znajdowaµ warto£ci charakteryzuj╣ce wykorzystanie pamiΩci zapewniaj╣ce akceptowaln╣ wydajno£µ. Linia bazowa mo┐e byµ u┐ywana do rozpoznawania problem≤w lub identyfikowania trend≤w, takich jak zwiΩkszanie siΩ wymaga± zwi╣zanych z pamiΩci╣.
     Aby ustanowiµ liniΩ bazow╣ dla danego systemu, nale┐y zarejestrowaµ u┐ycie pamiΩci w d│u┐szym przedziale czasu (od tygodnia do miesi╣ca). W tym celu nale┐y zwr≤ciµ szczeg≤ln╣ uwagΩ na warto£ci nastΩpuj╣cych licznik≤w:      Podczas monitorowania warto£ci tych licznik≤w od czasu do czasu mog╣ pojawiµ siΩ warto£ci znacznie wy┐sze ni┐ typowe, tzw. szpilki. Mo┐na je zazwyczaj wy│╣czyµ z linii bazowej, poniewa┐ opisuje ona sp≤jne, powtarzalne warto£ci. Zakres warto£ci, kt≤re wydaj╣ siΩ byµ w przybli┐eniu sta│e, okre£la liniΩ bazow╣ dla danego systemu. Je┐eli warto£ci licznik≤w pozostaj╣ poza tym zakresem przez d│u┐szy okres czasu, nale┐y skorzystaµ z instrukcji zawartych w tym rozdziale w celu okre£lenia przyczyny tego zjawiska.

U┐ycie pamiΩci wirtualnej

     Nawet je┐eli w systemie zainstalowano wiΩcej pamiΩci wirtualnej, ni┐ okre£laj╣ to minimalne wymagania systemu operacyjnego, to mog╣ siΩ pojawiµ sytuacje, w kt≤rych pamiΩci wirtualnej bΩdzie brakowaµ. Przyk│adowo, je┐eli korzysta siΩ jednocze£nie z kilku aplikacji wymagaj╣cych du┐ej ilo£ci pamiΩci lub je┐eli kilku u┐ytkownik≤w korzysta z jednego komputera, to ca│a zainstalowana w komputerze pamiΩµ fizyczna mo┐e zostaµ zajΩta. Powoduje to znaczne zmniejszenie wydajno£ci systemu.
     Aby sprawdziµ, jaka ilo£µ pamiΩci wirtualnej jest u┐ywana przez komputer dzia│aj╣cy pod kontrol╣ systemu Windows 2000 Professional, nale┐y uruchomiµ wszystkie najczΩ£ciej u┐ywane aplikacje i za pomoc╣ Mened┐era zada± odczytaµ szczytow╣ warto£µ pamiΩci zadeklarowanej. Warto£µ ta pojawia siΩ w polu PamiΩµ zadeklarowana na zak│adce Wydajno£µ. PamiΩµ zadeklarowana jest to ilo£µ stron zarezerwowanych dla pamiΩci wirtualnej, kt≤re s╣ zapisywane w pliku stronicowania.
     Szczytowa warto£µ pamiΩci zadeklarowanej jest to najwiΩkszy rozmiar pamiΩci wirtualnej (w bajtach), jaki zosta│ zadeklarowany. Aby bajty zosta│y zadeklarowane, musi im odpowiadaµ odpowiednia przestrze± dostΩpna na dysku lub w pamiΩci fizycznej. Warto£µ t╣ nale┐y por≤wnaµ z rozmiarem pliku stronicowania w celu stwierdzenia, czy posiada on odpowiedni rozmiar.

U┐ycie pamiΩci przez us│ugi domy£lne

     System Windows 2000 zosta│ zoptymalizowany tak, aby domy£lnie by│y uruchamiane jedynie te us│ugi, kt≤re s╣ wsp≤lne dla wiΩkszo£ci zastosowa±. Wymagania systemu operacyjnego zwi╣zane z pamiΩci╣ mo┐na jednak ograniczyµ, wy│╣czaj╣c pewne z us│ug udostΩpnianych domy£lnie przez system operacyjny. Administratorzy domy£lnie posiadaj╣ dostΩp do konsoli Us│ugi w folderze NarzΩdzia administracyjne.

Aby zatrzymaµ us│ugΩ, nale┐y:
  1. W menu Start wskazaµ Programy, NarzΩdzia administracyjne, a nastΩpnie klikn╣µ opcjΩ Us│ugi.
  2. Klikn╣µ prawym przyciskiem myszy odpowiedni╣ us│ugΩ, a nastΩpnie klikn╣µ przycisk Zatrzymaj.
     Powy┐sza procedura powoduje zatrzymanie us│ugi na czas aktualnej sesji. Aby wy│╣czyµ jak╣£ us│ugΩ na sta│e, nale┐y zmieniµ jej spos≤b uruchamiania w oknie jej w│a£ciwo£ci. Aby wywo│aµ to okno dialogowe, nale┐y klikn╣µ Us│ugi w menu NarzΩdzia administracyjne lub w konsoli Zarz╣dzanie komputerem. NastΩpnie nale┐y klikn╣µ prawym przyciskiem myszy nazwΩ us│ugi, kt≤ra ma zostaµ wy│╣czona, wybraµ polecenie W│a£ciwo£ci i zmieniµ warto£µ w polu Typ uruchomienia na Wy│╣czona.

Analizowanie problem≤w z pamiΩci╣

     Po przeprowadzeniu obserwacji wykorzystania pamiΩci w typowych warunkach i ustanowieniu linii bazowej, mo┐na zauwa┐yµ, ┐e warto£ci licznik≤w zwi╣zanych z pamiΩci╣ odbiegaj╣ czasem od typowego zakresu. Kolejne paragrafy opisuj╣ sposoby analizowania warunk≤w powoduj╣cych odchylenia tych warto£ci od linii bazowej.
     Poni┐sza lista czynno£ci mo┐e pom≤c w analizowaniu wykorzystania pamiΩci i w╣skich garde│ z ni╣ zwi╣zanych przy u┐yciu Monitora systemu i innych narzΩdzi:      W tabeli 28.1 wymieniono najwa┐niejsze liczniki, kt≤re nale┐y monitorowaµ analizuj╣c wykorzystanie pamiΩci.
Tabela 28.1 Liczniki do analizowania wykorzystania pamiΩci

Monitorowane zagadnienieObiekt\Licznik

Niedobory pamiΩci PamiΩµ\DostΩpne bajty Proces (Wszystkie procesy)\Zestaw roboczy PamiΩµ\Stron/s PamiΩµ\Bajty pamiΩci podrΩcznej
CzΩste b│Ωdy stron PamiΩµ\Stron/s Proces (Wszystkie procesy)\Zestaw roboczy PamiΩµ\Strony wchodz╣ce/s PamiΩµ\Strony wychodz╣ce/s
Nadmierne stronicowanie, w╣skie gard│o zwi╣zane z dyskiem Fragmentacja pliku stronicowania PamiΩµ\Odczyty stron/s Dysk fizyczny\îrednia liczba bajt≤w dysku/Odczyt Dysk fizyczny\Podzia│ We/Wy/s Dysk fizyczny\Czas odczytu dysku (%) Dysk fizyczny\Bie┐╣ca d│ugo£µ kolejki dysku Proces\Licznik doj£µ
Wycieki pamiΩci, aplikacje intensywnie u┐ywaj╣ce pamiΩci PamiΩµ\Przydzia│y w puli niestronicowanej PamiΩµ\Bajty w puli niestronicowanej PamiΩµ\Bajty w puli stronicowanej Proces (nazwa procesu)\Bajty w puli niestronicowanej Proces (nazwa procesu)\Licznik doj£µ Proces (nazwa procesu)\Bajty w puli stronicowanej Proces (nazwa procesu)\Bajty wirtualne Proces (nazwa procesu)\Bajty prywatne
Wydajno£µ Mened┐era pamiΩci podrΩcznej PamiΩµ podrΩczna\Trafienia odczyt≤w kopii (%) PamiΩµ podrΩczna\Odczyty kopii/s PamiΩµ podrΩczna\Trafienia mapowa± danych (%) PamiΩµ podrΩczna\Mapowania danych/s PamiΩµ podrΩczna\Trafienia odczyt≤w MDL (%) PamiΩµ podrΩczna\Odczyty MDL/s PamiΩµ podrΩczna\Trafienia odczyt≤w przypiΩµ (%) PamiΩµ podrΩczna\Odczyty przypiΩµ/s W celu identyfikowania w╣skich garde│ zwi╣zanych z pamiΩci╣ podrΩczn╣ mo┐na korzystaµ tak┐e z licznika PamiΩµ\Strony wchodz╣ce/s.



Uwaga Liczniki obiektu Dysk logiczny domy£lnie nie s╣ dostΩpne. Je┐eli zachodzi potrzeba ich monitorowania, nale┐y je aktywowaµ wpisuj╣c w wierszu polece± diskperf ûyv.

Analizowanie niedobor≤w pamiΩci

     W systemie mo┐e powstaµ niedob≤r pamiΩci w przypadku, gdy kilka proces≤w wymaga wiΩkszej ilo£ci pamiΩci, ni┐ jest dostΩpna, lub je┐eli korzysta siΩ z aplikacji generuj╣cych wycieki pamiΩci. W celu £ledzenia niedobor≤w pamiΩci i identyfikowania ich przyczyn nale┐y monitorowaµ nastΩpuj╣ce liczniki:      Aby zachowaµ minimaln╣ liczbΩ dostΩpnych bajt≤w pamiΩci fizycznej dla systemu operacyjnego i proces≤w, Mened┐er pamiΩci wirtualnej stale dostosowuje przestrze± u┐ywan╣ w pamiΩci fizycznej i na dysku. Je┐eli pamiΩci jest du┐o, to zestawy robocze mog╣ byµ w razie potrzeby rozszerzane. Je┐eli zasoby pamiΩci s╣ zaledwie wystarczaj╣ce lub bardzo zbli┐one do wymaganej ilo£ci, to mo┐na zaobserwowaµ obcinanie rozmiar≤w niekt≤rych zestaw≤w roboczych przez system operacyjny. Dzieje siΩ tak, gdy inny proces potrzebuje wiΩkszej ilo£ci pamiΩci, np. podczas jego uruchamiania. Rysunek 28.3 przedstawia tak╣ w│a£nie sytuacjΩ.
     

Rysunek 28.3 Rozmiary zestaw≤w roboczych proces≤w podczas uruchamiania innego procesu

     Je┐eli warto£µ licznika PamiΩµ\DostΩpne bajty stale znajduje siΩ poni┐ej okre£lonego dla systemu poziomu, a w warto£ciach licznika PamiΩµ\Strony/s co chwila wystΩpuj╣ szpilki, to prawdopodobnie konfiguracja pamiΩci jest niewystarczaj╣ca w stosunku do potrzeb. Aby potwierdziµ, czy wysoki poziom stronicowania wynika z niedoboru pamiΩci, nale┐y zapoznaµ siΩ z informacjami zawartymi w dalszej czΩ£ci tego rozdzia│u, w paragrafie äAnalizowanie stronicowania z u┐yciem dyskuö.
Uwaga Nisk╣ warto£µ licznika PamiΩµ\DostΩpne bajty mo┐na zaobserwowaµ tak┐e w nastΩpuj╣cych sytuacjach, nie zwi╣zanych z niedoborem pamiΩci:
     Aby zidentyfikowaµ procesy zwi╣zane z brakiem pamiΩci, nale┐y przeanalizowaµ jej u┐ycie przez poszczeg≤lne procesy i stwierdziµ, czy proces nie generuje wycieku pamiΩci. Jest to opisane w dalszej czΩ£ci tego rozdzia│u, w paragrafach äAnalizowanie wyciek≤w pamiΩci w trybie u┐ytkownikaö oraz äAnalizowanie wyciek≤w pamiΩci w trybie j╣draö.
     Je┐eli ilo£µ dostΩpnej pamiΩci jest stale niska (2 MB lub mniej), to komputer przestaje odpowiadaµ, poniewa┐ jest zajΩty wy│╣cznie operacjami We/Wy dysku. Podczas stronicowania spowodowanego niedoborem pamiΩci procesor jest bezczynny oczekuj╣c na zako±czenie operacji dyskowej. Z tego powodu istotne jest okre£lenie i wyeliminowanie przyczyny tego niedoboru. Nale┐y zwr≤ciµ uwagΩ na to, jakie procesy dzia│aj╣ i jakie s╣ rozmiary ich zestaw≤w roboczych. Procesy te mog╣ wymagaµ aktualizacji lub zast╣pienia innymi w przypadku, je┐eli wp│ywaj╣ w znacznym stopniu na powstawanie niedobor≤w pamiΩci, a jej rozszerzenie nie jest mo┐liwe.
     WiΩcej informacji na temat usuwania problem≤w zwi╣zanych z niedoborami pamiΩci znajduje siΩ w dalszej czΩ£ci tego rozdzia│u, w paragrafie äUsuwanie w╣skich garde│ zwi╣zanych z pamiΩci╣ i buforemö.

Analizowanie stronicowania z u┐yciem dysku

     Aby zidentyfikowaµ niedobory pamiΩci skutkuj╣ce powstawaniem w╣skich garde│ w napΩdach dyskowych, nale┐y skorzystaµ z licznik≤w raportuj╣cych aktywno£µ stronicowania. W pierwszej kolejno£ci nale┐y monitorowaµ warto£ci zwi╣zane z licznikami pamiΩci i zestaw≤w roboczych, u┐ywanymi podczas badania niedobor≤w pamiΩci w poprzednim paragrafie. Korzystaj╣c z licznika PamiΩµ\Strony/s nale┐y sprawdziµ, czy wystΩpuj╣ b│Ωdy stron.
     Je┐eli pojawiaj╣ siΩ b│Ωdy stron, to nale┐y monitorowaµ liczniki zwi╣zane z dyskiem w celu stwierdzenia, jak zachowuje siΩ dysk podczas stronicowania: czy jest zajΩty innymi czynno£ciami, czy obs│ug╣ b│Ωd≤w stron. Stronicowanie z u┐yciem dysku nale┐y monitorowaµ w dw≤ch etapach:
  1. Aby sprawdziµ, czy wystΩpuj╣ b│Ωdy stron, nale┐y skorzystaµ z nastΩpuj╣cych licznik≤w obiekt≤w PamiΩµ i Proces:
    • PamiΩµ\Strony/s
    • Proces (Wszystkie procesy)\Zestaw roboczy
    • PamiΩµ\Strony wchodz╣ce/s
    • PamiΩµ\Strony wychodz╣ce/s
  2. Aby okre£liµ wp│yw b│Ωd≤w stron na dzia│anie dysku, nale┐y por≤wnaµ ilo£µ odczyt≤w i odczytanych bajt≤w, mierzonych przez nastΩpuj╣ce liczniki:
    • PamiΩµ\Odczyty stron/s
    • Dysk fizyczny\Odczyty dysku/s
    • Dysk fizyczny\îrednia liczba bajt≤w dysku/Odczyt

Potwierdzanie wystΩpowania b│Ωd≤w stron

     Aby stwierdziµ, czy wystΩpuj╣ b│Ωdy stron, nale┐y przeanalizowaµ ilo£µ tych b│Ωd≤w raportowan╣ przez licznik PamiΩµ\Strony/s oraz zestawy robocze aktywnych proces≤w, u┐ywaj╣c do tego celu licznika Proces(nazwa procesu)\Zestaw roboczy. Licznik PamiΩµ\Strony/s zwraca sumΩ warto£ci licznik≤w Strony wchodz╣ce/s oraz Strony wychodz╣ce/s. Informuje on o liczbie ┐╣danych stron, kt≤re nie by│y natychmiast dostΩpne w pamiΩci operacyjnej i musia│y byµ odczytane z dysku (co powoduje b│╣d strony) oraz o liczbie tych stron, kt≤re musia│y zostaµ zapisane na dysk w celu zwolnienia przestrzeni dla innych stron. Monitorowanie zestaw≤w roboczych proces≤w umo┐liwia powi╣zanie u┐ycia pamiΩci przez okre£lon╣ aplikacjΩ z wystΩpowaniem b│Ωd≤w stron. Je┐eli ilo£µ wolnej pamiΩci jest niewielka, to zestawy robocze s╣ obcinane, a b│Ωdy stron wystΩpuj╣ czΩsto.
     Akceptowalne warto£ci licznika PamiΩµ\Stron/s znajduj╣ siΩ w przedziale od 40 w przypadku starszych komputer≤w przeno£nych do 150 w najnowszych systemach dyskowych. W komputerach klienckich nale┐y u┐ywaµ kr≤tszego okresu monitorowania ni┐ w serwerach (aktualizacja co sekundΩ powinna byµ wystarczaj╣ca), poniewa┐ aktywno£µ zwi╣zana ze stronicowaniem w komputerach klienckich czΩsto wystΩpuje w seriach. W serwerach stronicowanie zazwyczaj zmierza do osi╣gniΩcia stanu stabilnego, z tego powodu w│a£ciwe jest w nich monitorowanie d│ugoterminowe.
Uwaga NarzΩdzie Monitor b│Ωd≤w stron (Pfmon.exe), znajduj╣ce siΩ na dysku CD do│╣czonym do angielskojΩzycznej publikacji Microsoft Windows 2000 Professional Resource Kit, raportuje b│Ωdy stron generowane przez ka┐de wywo│anie funkcji w dzia│aj╣cym procesie. Dane te mog╣ byµ wy£wietlane i/lub zapisywane do pliku dziennika. WiΩcej informacji na ten temat mo┐na znaleƒµ w Pomocy narzΩdzi z zestawu Windows 2000 Resource Kit (W2rktools.chm), znajduj╣cej siΩ na tym samym dysku CD.
     B│Ωdy stron i dane zwi╣zane z zarz╣dzeniem pamiΩci╣ mo┐na monitorowaµ tak┐e za pomoc╣ Dziennik≤w £ledzenia w konsoli Wydajno£µ. WiΩcej informacji na ich temat mo┐na znaleƒµ w rozdziale äWstΩp do monitorowania wydajno£ciö.
     Je┐eli liczba stron na sekundΩ przekracza typow╣ dla danego napΩdu dyskowego, to nale┐y przeanalizowaµ jego aktywno£µ w celu stwierdzenia, czy stronicowanie powoduje powstawanie w nim w╣skiego gard│a. Licznik PamiΩµ\Strony wchodz╣ce/s odzwierciedla natΩ┐enie odczyt≤w stron z dysku, informuj╣c tym samym o ilo£ci b│Ωd≤w stron. W zale┐no£ci od mo┐liwo£ci dysku, wysoka warto£µ tego licznika mo┐e wskazywaµ na niedob≤r pamiΩci powoduj╣cy obni┐enie wydajno£ci ca│ego systemu. Przyk│adowy zapis b│Ωd≤w stron zosta│ przedstawiony na rysunku 28.4.
Uwaga Licznik PamiΩµ\Strony/s mo┐e zarejestrowaµ wysoki poziom stronicowania w sytuacji, gdy strony s╣ zapisywane i odczytywane z pliku mapowania pamiΩci, kt≤ry nie jest buforowany. Je┐eli korzysta siΩ z takich plik≤w, to warto£ci licznik≤w PamiΩµ\Strony/s i PamiΩµ\DostΩpne bajty s╣ wysokie, a warto£ci licznik≤w Plik stronicowania\U┐ycie (%) i PamiΩµ\B│edy pamiΩci podrΩcznej/s s╣ typowe.
     

Rysunek 28.4 Aktywno£µ stronicowania w systemie, w kt≤rym brakuje pamiΩci

     Innym sk│adnikiem licznika PamiΩµ\Strony/s jest licznik PamiΩµ\Strony wychodz╣ce/s, informuj╣cy o natΩ┐eniu zapisywania stron na dysk. Mimo ┐e aktywno£µ ta nie generuje b│Ωd≤w stron, to mo┐e po£rednio informowaµ o niedoborze pamiΩci i wskazywaµ na nadmiarow╣ aktywno£µ dysku. Dzieje siΩ tak, gdy Mened┐er pamiΩci wirtualnej obcinaj╣c zestaw roboczy stwierdza, ┐e pewne strony zawieraj╣ zmienione dane. W takiej sytuacji dane te musz╣ zostaµ zapisane na dysk w celu zwolnienia stron w pamiΩci fizycznej. Gdy pamiΩci jest pod dostatkiem, to warto£µ licznika PamiΩµ\Strony wychodz╣ce/s jest zazwyczaj niska û potrzeba zwalniania zmodyfikowanych stron i zapisywania tych danych na dysk jest znacznie mniejsza. WiΩcej informacji na temat analizowania aplikacji generuj╣cych zapisy na dysk znajduje siΩ w rozdziale äBadanie i dostrajanie wydajno£ci dyskuö.

Ocenianie wp│ywu b│Ωd≤w stron na dysk

     Aby oceniµ wp│yw b│Ωd≤w stron na wydajno£µ dysku, nale┐y sprawdziµ ilo£µ operacji dyskowych, kt≤re s╣ skutkiem stronicowania. Je┐eli obci╣┐enie dysku jest zdeterminowane przez aktywno£µ zwi╣zan╣ ze stronicowaniem, to w dysku wystΩpuje w╣skie gard│o zwi╣zane z niedoborem pamiΩci. Monitorowanie nale┐y rozpocz╣µ od licznika PamiΩµ\Odczyty stron/s. Licznik ten wskazuje na ilo£µ operacji odczytu z dysku, kt≤re by│y niezbΩdne do pobrania b│Ωdnych stron. LiczbΩ tych odczyt≤w nale┐y por≤wnaµ z liczb╣ b│Ωdnych stron i w ten spos≤b okre£liµ ilo£µ stron pobieranych podczas ka┐dej operacji odczytu. Du┐y stosunek liczby odczyt≤w do liczby b│Ωd≤w oznacza, ┐e wiele stron nie zosta│o odnalezionych w pamiΩci fizycznej i w zwi╣zku z tym musia│y byµ odczytane z dysku. Powoduje to utworzenie w╣skiego gard│a.
     NastΩpnie nale┐y okre£liµ, jaka czΩ£µ pracy wykonywanej przez dysk jest zwi╣zana z odczytywaniem stron. W tym celu nale┐y por≤wnaµ liczbΩ odczyt≤w stron z og≤ln╣ liczb╣ odczyt≤w dla dysku. Je┐eli wystΩpuje korelacja pomiΩdzy warto£ciami licznik≤w PamiΩµ\Odczyty stron/s i Dysk fizyczny\Odczyty dysku/s, to aktywno£µ zwi╣zana ze stronicowaniem stanowi prawdopodobnie wiΩkszo£µ aktywno£ci dysku i mo┐e byµ przyczyn╣ powstawania w╣skiego gard│a.
     Aby z innej perspektywy oceniµ zwi╣zek pomiΩdzy stronicowaniem a operacjami odczytu z dysku, nale┐y monitorowaµ warto£ci licznik≤w Dysk fizyczny\îrednia liczba odczytanych bajt≤w/s oraz Odczyty stron/s. Pierwszy z nich informuje o poziomie transferu danych podczas operacji odczyt≤w. Poniewa┐ licznik ten mierzy liczbΩ bajt≤w a nie stron, czy te┐ samych odczyt≤w, to konieczna jest konwersja jego warto£ci do jednostek identycznych z jednostkami u┐ywanymi przez inne liczniki. W tym celu nale┐y pos│u┐yµ siΩ nastΩpuj╣c╣ formu│╣: warto£µ licznika Dysk fizyczny\Liczba odczytanych bajt≤w/s ╕ 4096 (ilo£µ bajt≤w w stronie).
     Je┐eli otrzymany rezultat jest w przybli┐eniu r≤wny warto£ci licznika Odczyty stron/s, to aktywno£µ stronicowania stanowi wiΩkszo£µ aktywno£ci zwi╣zanej z odczytami dysku, a niedob≤r pamiΩci powoduj╣cy to stronicowanie mo┐e powodowaµ w╣skie gard│o w dysku. Aby sprawdziµ, czy aktywno£µ ta jest wystarczaj╣ca do obni┐enia wydajno£ci dysku, nale┐y skorzystaµ z jego dokumentacji i sprawdziµ liczbΩ transakcji wej£cia/wyj£cia, jak╣ dysk powinien obs│u┐yµ w ci╣gu sekundy. DostΩpne aktualnie dyski mog╣ podo│aµ prΩdko£ci transferu odpowiadaj╣cej ok. 70 operacjom wej£cia/wyj£cia na sekundΩ. WiΩcej informacji na temat lokalizowania w╣skich garde│ zwi╣zanych z dyskiem mo┐na znaleƒµ w rozdziale äBadanie i dostrajanie wydajno£ci dyskuö.
     Na rysunku 28.5 przedstawiono aktywno£µ dysku zwi╣zan╣ ze stronicowaniem w sytuacji niedoboru pamiΩci.
     

Rysunek 28.5 Aktywno£µ dysku i stronicowania przy niedoborze pamiΩci

Analizowanie wyciek≤w pamiΩci w trybie u┐ytkownika

     Wyciek pamiΩci ma miejsce w przypadku, gdy aplikacja alokuje pamiΩµ, ale nie zwalnia jej po zako±czeniu dzia│ania. W rezultacie dostΩpna pamiΩµ jest stopniowo wykorzystywana, co czΩsto powoduje niew│a£ciwe funkcjonowanie systemu. Z tej przyczyny istotne jest analizowanie przyczyn wyciek≤w pamiΩci. Niniejszy paragraf opisuje, w jaki spos≤b mo┐na identyfikowaµ wycieki, │╣cznie z wp│ywaj╣cymi na krytyczn╣ pulΩ pamiΩci niestronicowanej. Znajduj╣ siΩ w niej tak┐e informacje o tym, gdzie mo┐na znaleƒµ narzΩdzia i informacje pomocne w redukowaniu problem≤w z wyciekami pamiΩci.
Uwaga Mo┐na czasem pomyliµ wzrost obci╣┐enia systemu z wyciekiem pamiΩci. Aby rozr≤┐niµ te dwie sytuacje, nale┐y obserwowaµ liczniki obiekt≤w PamiΩµ i Proces przez kilka dni. Je┐eli mo┐na zaobserwowaµ, ┐e system najpierw osi╣ga stan stabilny, a nastΩpnie do£wiadcza zwiΩkszonego obci╣┐enia (zazwyczaj o okre£lonej porze dnia), kt≤re p≤ƒniej ponownie opada, to prawdopodobnie jest to zwi╣zane ze zmianami w obci╣┐eniu, a nie z wyciekami pamiΩci. W komputerach sieciowych, aby wyeliminowaµ czynnik obci╣┐enia systemu, nale┐y zwr≤ciµ uwagΩ na sesje u┐ytkownik≤w i poziomy przesy│ania danych.

Identyfikowanie wycieku pamiΩci

     Symptomami wycieku pamiΩci s╣:
Rysunek 28.6 Komunikat informuj╣cy o braku pamiΩci wirtualnej

     Je┐eli podejrzewa siΩ, ┐e okre£lona aplikacja lub us│uga powoduje wyciek pamiΩci, to nale┐y przeanalizowaµ wykorzystanie pamiΩci przy u┐yciu nastΩpuj╣cych licznik≤w:      Wy┐ej wymienione liczniki nale┐y monitorowaµ w okresie od dw≤ch godzin do kilku dni. Rejestrowanie ich wydajno£ci jest zalecane, zar≤wno ze wzglΩdu na obci╣┐enie systemu powodowane przez monitorowanie kilku wyst╣pie± licznik≤w obiektu Proces, jak te┐ dlatego, ┐e wycieki pamiΩci objawiaj╣ siΩ stopniowo i powoli.
     Dodatkowo, aby odizolowaµ problem i unikn╣µ zbΩdnego obci╣┐enia systemu, monitorowanie nale┐y w miarΩ mo┐liwo£ci prowadziµ z odleg│ego komputera. Aktywno£µ sieci oraz interakcje z innymi komputerami mog╣ wp│yn╣µ na rezultaty monitorowania.

Wycieki pamiΩci a pula niestronicowana

     Mimo ┐e ka┐dy wyciek pamiΩci jest istotny dla systemu, to wycieki zwi╣zane z pul╣ niestronicowan╣ maj╣ szczeg≤lny wp│yw na jego dzia│anie. Wiele us│ug alokuje pamiΩµ z puli niestronicowanej, poniewa┐ odwo│uj╣ siΩ do niej podczas obs│ugi przerwania, kiedy nie mog╣ wystΩpowaµ b│Ωdy stron. Aby sprawdziµ, czy wyciek dotyczy puli niestronicowanej, nale┐y monitorowaµ nastΩpuj╣ce liczniki:
Uwaga Poniewa┐ wewnΩtrzne liczniki u┐ywane do mierzenia rozmiar≤w pul niestronicowanych poszczeg≤lnych proces≤w przez Mened┐era zada±, Monitor procesu i Monitor systemu nie s╣ precyzyjne, to zalecane jest monitorowanie zmian ca│kowitego rozmiaru tej puli w czasie np. kilku dni. Nie nale┐y natomiast polegaµ na bezwzglΩdnych, natychmiastowych warto£ciach raportowanych dla poszczeg≤lnych proces≤w. Warto£ci tych licznik≤w s╣ przybli┐one i r≤wne sumie zduplikowanych doj£µ do obiekt≤w oraz przestrzeni zajmowanej przez te obiekty. Ponadto, poniewa┐ rozmiar puli procesu jest zaokr╣glany do rozmiaru strony, to jest on zazwyczaj przeszacowany w przypadku, gdy proces u┐ywa jedynie fragmentu strony. Ca│kowite rozmiary pul podawane s╣ precyzyjnie. Dlatego suma rozmiar≤w pul poszczeg≤lnych proces≤w mo┐e byµ r≤┐na od tej warto£ci dla ca│ego systemu.
     Liczniki obiektu PamiΩµ monitoruj╣ ca│kowity rozmiar puli niestronicowanej i liczbΩ przydzia│≤w jej przestrzeni w ca│ym systemie. Licznik obiektu Proces monitoruje przestrze± w puli niestronicowanej przydzielon╣ wybranemu procesowi.
     Aby monitorowaµ wycieki w puli niestronicowanej za pomoc╣ Monitora systemu, nale┐y:      Dodatkowe narzΩdzia, udostΩpniaj╣ce informacje na temat stronicowanych i niestronicowanych pul pamiΩci, s╣ wymienione w tabeli 28.2. NarzΩdzia te gromadz╣ dane pochodz╣ce z tych samych ƒr≤de│, co dane zbierane przez Monitor systemu.
Tabela 28.2 NarzΩdzia udostΩpniaj╣ce informacje na temat pul pamiΩci

Nazwa narzΩdziaOpisLokalizacja

Memsnap (memsnap.exe)1 Rejestruje u┐ycie pamiΩci systemu do pliku dziennika. NarzΩdzia Windows 2000 Support Tools
Monitor procesu (pmon.exe)1 UdostΩpnia og≤lne i opisuj╣ce poszczeg≤lne procesy warto£ci dla puli stronicowanej i niestronicowanej. Ponadto monitoruje zwiΩkszanie siΩ warto£ci pamiΩci zadeklarowanej, kt≤re zazwyczaj wystΩpuje w procesach generuj╣cych wycieki pamiΩci. NarzΩdzia Windows 2000 Support Tools


1 NarzΩdzia te s╣ u┐yteczne, poniewa┐ ilustruj╣ one przydzia│y dla poszczeg≤lnych proces≤w.

     WiΩcej informacji na temat instalowania i u┐ywania narzΩdzi Windows 2000 Support Tools mo┐na znaleƒµ w pliku Sreadme.doc, znajduj╣cym siΩ w folderze \Support\Tools na dysku CD systemu operacyjnego Windows 2000.
     Aby obejrzeµ demonstracjΩ wycieku pamiΩci, nale┐y uruchomiµ narzΩdzie LeakyApp, znajduj╣ce siΩ na dysku CD do│╣czonym do angielskojΩzycznej publikacji Microsoft Windows 2000 Professional Resource Kit, a nastΩpnie rozpocz╣µ monitorowanie. Nale┐y zwr≤ciµ uwagΩ, ┐e zwiΩkszaj╣ siΩ warto£ci nastΩpuj╣cych licznik≤w: PamiΩµ\Strony/s, Proces(LeakyApp)\Zestaw roboczy oraz Proces(LeakyApp)\Bajty prywatne.
     Rysunek 28.7 ilustruje aktywno£µ licznik≤w podczas wycieku pamiΩci generowanego przez narzΩdzie LeakyApp.
     

Rysunek 28.7 Aktywno£µ pamiΩci procesu podczas wycieku

     Mimo ┐e wyciek pamiΩci przedstawiony na rysunku 28.8 wp│ywa na dzia│anie ca│ego systemu, to problem mo┐e zostaµ sprowadzony do jednej przyczyny û aplikacji generuj╣cej wyciek. Je┐eli w systemie dzia│a aplikacja charakteryzuj╣ca siΩ podobnym zachowaniem, to zalecane jest jej zmodyfikowanie (je┐eli posiada siΩ dostΩp do kod≤w ƒr≤d│owych) lub zast╣pienie inn╣.
     NarzΩdzia programistyczne u│atwiaj╣ce analizowanie i dostrajanie wykorzystania pamiΩci przez aplikacje s╣ dostΩpne na dysku CD do│╣czonym do angielskojΩzycznej publikacji Microsoft Windows 2000 Professional Resource Kit. WiΩcej informacji na ich temat mo┐na znaleƒµ korzystaj╣c z │╣cza do biblioteki MSDN, znajduj╣cego siΩ na stronie Web Resources, pod adresem http://windows.microsoft.com/windows2000/reskit/webresources.
     Do optymalizowania aplikacji intensywnie korzystaj╣cych z pamiΩci mo┐na u┐ywaµ nastΩpuj╣cych program≤w:      Rozmiary pul stronicowanej i niestronicowanej s╣ okre£lane automatycznie podczas instalowania systemu Windows na podstawie aktualnej konfiguracji pamiΩci. Maksymalnym rozmiarem puli niestronicowanej jest 256 MB. Maksymalnym rozmiarem puli stronicowanej jest ok. 470 MB. Faktyczne ich rozmiary wahaj╣ siΩ w zale┐no£ci od konfiguracji. WiΩksza ilo£µ zainstalowanej pamiΩci fizycznej skutkuje mniejsz╣ pul╣ stronicowan╣, poniewa┐ zamiast niej musi byµ u┐ywana wirtualna przestrze± adresowa zawieraj╣ca kluczowe struktury zwi╣zane z zarz╣dzaniem pamiΩci╣. Rozmiary pul s╣ zdefiniowane w rejestrze, w kluczu HKEY_LOCAL_MACHINE\System\CurrentControlSet \Control\Session Manager\Memory Management.
     Aby zwiΩkszyµ rozmiar pamiΩci podrΩcznej systemu plik≤w z 512 MB do 960 MB, nale┐y ustawiµ warto£µ wpisu PagedPoolSize w rejestrze na 192000000, ustawiµ wpis SystemPages na 0 i upewniµ siΩ, czy system zosta│ zoptymalizowany dla udostΩpniania plik≤w za pomoc╣ wpisu LargeSystemCache ustawionego na 1. Aby przydzieliµ maksymaln╣ wirtualn╣ przestrze± adresow╣ puli stronicowanej, nale┐y ustawiµ warto£µ wpisu PagedPoolSize na û1. W tym przypadku jednak system nie mo┐e korzystaµ z opcji /3 GB w pliku Boot.ini.
     Ustawianie wpisu NonPagedPoolSize nie jest zazwyczaj konieczne, poniewa┐ w komputerach zawieraj╣cych wiΩcej ni┐ 1,2 GB pamiΩci system automatycznie ustawia maksymalny rozmiar puli niestronicowanej. Je┐eli zachodzi konieczno£µ rΩcznego ustawienia warto£ci tego wpisu, to nale┐y podaµ potrzebn╣ warto£µ (w bajtach) wprost, nie ustawiaj╣c jej na û1.

Analizowanie wyciek≤w pamiΩci w trybie j╣dra

     Procesy dzia│aj╣ce w trybie j╣dra, takie jak sterowniki urz╣dze±, r≤wnie┐ mog╣ powodowaµ wycieki pamiΩci. Podobnie jak w przypadku proces≤w dzia│aj╣cych w trybie u┐ytkownika, nale┐y je zazwyczaj £ledziµ w okresie od kilku godzin do dni, jednak┐e nie nale┐y u┐ywaµ do tego celu Monitora systemu, lecz narzΩdzia Pool Monitor (Poolmon.exe). WiΩcej informacji na jego temat mo┐na znaleƒµ w Pomocy pakietu narzΩdzi Windows 2000 Support Tools. Instrukcje dotycz╣ce instalacji i u┐ywania tych narzΩdzi znajduj╣ siΩ w pliku Sreadme.doc, w katalogu \Support\Tools na dysku CD systemu operacyjnego Windows 2000.
     NarzΩdzie Pool Monitor (Poolmon.exe) wy£wietla ilo£µ pamiΩci niestronicowanej i stronicowanej, kt≤ra zosta│a przydzielona i zwolniona, oblicza r≤┐nice pomiΩdzy nimi i wi╣┐e zgromadzone dane ze znacznikiem funkcji, umo┐liwiaj╣cym zidentyfikowanie generuj╣cego je procesu. Domy£lnie system Windows 2000 jest skonfigurowany tak, aby nie gromadzi│ informacji zwi╣zanych z pulami û proces ten stanowi pewne obci╣┐enie systemu. Aby korzystaµ z narzΩdzia Poolmon, nale┐y w│╣czyµ sygna│ znacznika puli. S│u┐y do tego narzΩdzie Gflags.exe. W narzΩdziu tym nale┐y w│╣czyµ opcjΩ Enable Pool Tag (W│╣cz znacznik puli). WiΩcej informacji na temat narzΩdzi Poolmon i Gflags mo┐na znaleƒµ w Pomocy pakietu narzΩdzi Windows 2000 Support Tools. Informacje na temat ich instalowania i u┐ywania znajduj╣ siΩ w pliku Sreadme.doc, w katalogu \Support\Tools na dysku CD systemu operacyjnego Windows 2000.
     Znacznik puli jest mechanizmem umo┐liwiaj╣cym zidentyfikowanie sterownika lub innego elementu j╣dra przydzielonego do okre£lonego fragmentu pamiΩci. Znaczniki te mog╣ byµ analizowane w celu wykrywania wyciek≤w pamiΩci i uszkodze± puli, natomiast wadliwy sk│adnik kodu mo┐na okre£liµ wyszukuj╣c sk│adnik przydzielony do okre£lonego znacznika. W tym celu nale┐y wyszukaµ znacznik z gwa│townie zwiΩkszaj╣cym siΩ licznikiem bajt≤w, kt≤ry nie zwalnia tylu bajt≤w, ile alokowa│, a nastΩpnie sprawdziµ, czy znacznik ten odpowiada funkcji, dla kt≤rej zwiΩkszanie siΩ przydzia│u pamiΩci nie jest w│a£ciwe. Je┐eli zachowanie siΩ tej funkcji nie wydaje siΩ byµ prawid│owe, to mo┐e okazaµ siΩ konieczne przeanalizowanie i dostrojenie jej dzia│ania w celu wyeliminowania wycieku pamiΩci.

Monitorowanie bufora (pamiΩci podrΩcznej)

     PamiΩµ podrΩczna systemu plik≤w Windows 2000 jest obszarem pamiΩci, w kt≤rym system wej£cia/wyj£cia mapuje ostatnio u┐ywane dane, zapisane na dysku. Gdy proces odczytuje lub zapisuje dane z plik≤w mapowanych w buforze, Mened┐er wej£cia/wyj£cia kopiuje te dane z lub do bufora, bez korzystania z systemu plik≤w û tak, jakby stanowi│y tablicΩ w pamiΩci operacyjnej. Poniewa┐ dostΩp do pamiΩci jest znacznie szybszy ni┐ operacje na plikach, to pamiΩµ podrΩczna pozwala na znaczne zwiΩkszenie wydajno£ci proces≤w.
     Liczniki obiektu PamiΩµ podrΩczna udostΩpniaj╣ dane na temat trafie± i chybie± oraz operacji wej£cia/wyj£cia, informuj╣ce o tym, jak wydajnie aplikacje korzystaj╣ z danych w buforze systemu plik≤w. Jednak ze wzglΩdu na to, ┐e liczniki bufora dzia│aj╣ w oparciu o widoki mapowane przez Mened┐era pamiΩci podrΩcznej, a nie o dane pochodz╣ce od Mened┐era pamiΩci wirtualnej, to nie udostΩpniaj╣ one ostatecznych informacji na temat w╣skich garde│. W pewnych przypadkach liczniki pamiΩci podrΩcznej mog╣ raportowaµ niskie odsetki trafie± lub wysokie chybie±, co sugeruje, ┐e system korzysta z dysku, podczas gdy w rzeczywisto£ci ┐╣dane dane zosta│y pobrane z pamiΩci. Mo┐e siΩ tak zdarzyµ w przypadku, gdy wirtualny adres mapowany przez Mened┐era pamiΩci podrΩcznej ju┐ nie istnieje û np. w sytuacji, gdy docelowy plik zosta│ zamkniΩty. Aby uzyskaµ dok│adniejsze dane zwi╣zane z w╣skimi gard│ami wej£cia/wyj£cia, nale┐y korzystaµ z licznika PamiΩµ\Strony wchodz╣ce/s.
     Sama pamiΩµ podrΩczna nigdy nie jest ƒr≤d│em w╣skiego gard│a, poniewa┐ jest po prostu fragmentem pamiΩci fizycznej. W pewnych sytuacjach jednak┐e, gdy w systemie nie ma wystarczaj╣cej ilo£ci pamiΩci fizycznej do utworzenia efektywnego bufora, system musi odczytywaµ wiΩksz╣ ilo£µ danych z dysku. W efekcie wykonywane s╣ operacje wej£cia/wyj£cia, kt≤re mog╣ wp│yn╣µ na og≤ln╣ wydajno£µ systemu. Taki niedob≤r przestrzeni bufora mo┐na interpretowaµ jako pewn╣ formΩ w╣skiego gard│a zwi╣zanego z pamiΩci╣ podrΩczn╣.
     W╣skie gard│a zwi╣zane z pamiΩci╣ podrΩczn╣ s╣ najbardziej istotne dla u┐ytkownik≤w komputer≤w u┐ywaj╣cych systemu Windows 2000 Professional, w kt≤rych dzia│aj╣ aplikacje CAD/CAM lub du┐e bazy danych, korzystaj╣ce z du┐ych blok≤w wielu plik≤w. Aplikacje te s╣ w znacznym stopniu zale┐ne od wydajno£ci pamiΩci podrΩcznej. Liczniki pamiΩci podrΩcznej pozwalaj╣ stwierdziµ, czy niewielki rozmiar bufora (spowodowany brakiem pamiΩci fizycznej) wp│ywa ujemnie na wydajno£µ ca│ego systemu.
     W przypadku operacji wej£cia/wyj£cia dzia│aj╣cych na plikach mapuj╣cych pamiΩµ, ca│y plik mo┐e zostaµ otworzony bez przepisania go do pamiΩci fizycznej. Do przestrzeni adresowej procesu mapowane s╣ jedynie tzw. widoki, czyli mniejsze fragmenty takiego pliku. Proces ten odbywa siΩ tu┐ przed przeprowadzeniem operacji wej£cia/wyj£cia. Takie podej£cie do operacji na plikach pozwala zachowaµ niewielki rozmiar pamiΩci podrΩcznej. WiΩcej informacji na temat operacji wej£cia/wyj£cia dzia│aj╣cych na plikach mapuj╣cych pamiΩµ mo┐na znaleƒµ korzystaj╣c z │╣cza Software Development Kit (SDK) znajduj╣cego siΩ na stronie Web Resources, pod adresem http://windows.microsoft.com/windows2000/reskit/webresources.
     Tw≤rcy oprogramowania, kt≤rzy chc╣ dowiedzieµ siΩ, w jaki spos≤b ich programy u┐ywaj╣ pamiΩci podrΩcznej podczas operacji zapisu i odczytu, tak┐e mog╣ chcieµ j╣ monitorowaµ. Dane ┐╣dane przez aplikacjΩ s╣ mapowane w pamiΩci podrΩcznej, a nastΩpnie kopiowane stamt╣d do przestrzeni adresowej ┐╣daj╣cego ich procesu. Dane zmieniane przez aplikacje s╣ przepisywane z bufora na dysk przez w╣tek zapisu op≤ƒnionego lub bezpo£rednio przez aplikacjΩ, za pomoc╣ odpowiedniego wywo│ania systemowego. W╣tek zapisu op≤ƒnionego jest w╣tkiem systemu, kt≤ry okresowo zapisuje strony uwzglΩdnione na li£cie stron zmienionych i opr≤┐nia pamiΩµ podrΩczn╣. Gdy strona jest usuwana z bufora, zmienione dane s╣ zapisywane na dysk. Dlatego te┐ monitorowanie bufora jest r≤wnoznaczne z obserwowaniem operacji wej£cia/wyj£cia aplikacji. Nale┐y jednak pamiΩtaµ, ┐e je┐eli aplikacja rzadko korzysta z pamiΩci podrΩcznej, to aktywno£µ bufora nie wp│ywa w spos≤b znacz╣cy na wydajno£µ systemu, dysk≤w i pamiΩci.

Dzia│anie licznik≤w pamiΩci podrΩcznej

     W celu mierzenia wydajno£ci pamiΩci podrΩcznej, nale┐y pos│ugiwaµ siΩ nastΩpuj╣cymi licznikami obiekt≤w PamiΩµ podrΩczna i PamiΩµ:
     PamiΩµ podrΩczna\Trafienia odczyt≤w kopii (%) Licznik ten nale┐y monitorowaµ w celu okre£lenia poziom≤w trafie± i chybie±. Warto£µ powy┐ej 80% oznacza, ┐e aplikacja korzysta z pamiΩci podrΩcznej w spos≤b bardzo efektywny. Warto£µ tego licznika nale┐y por≤wnaµ z warto£ci╣ licznika PamiΩµ podrΩczna\Odczyty kopii/s w celu stwierdzenia faktycznej ilo£ci trafie±. Nawet je┐eli procent trafie± jest niewielki, a ilo£µ operacji jest wysoka, to mo┐e to wskazywaµ na wy┐sz╣ wydajno£µ, ni┐ gdy procent trafie± jest wysoki, a liczba operacji niewielka.
Uwaga Aby osi╣gn╣µ najlepsze rezultaty, nale┐y monitorowaµ ten licznik przy u┐yciu wykresu, a nie raportu. Wysokie poziomy trafie± czΩsto s╣ widoczne jako szpilki na wykresie, kt≤re s╣ trudne do wykrycia, gdy korzysta siΩ z raportu.
     PamiΩµ podrΩczna\Odczyty kopii (%) Licznik ten nale┐y monitorowaµ w celu okre£lenia, jak czΩsto system pr≤buje wyszukaµ dane aplikacji w buforze, bez korzystania z dysku. Jest to licznik wszystkich wywo│a± odczytu kopii danych z bufora, uwzglΩdniaj╣cy zar≤wno trafienia, jak i chybienia. Odczyty kopii s╣ typow╣ metod╣ kopiowania danych znalezionych w buforze do przestrzeni adresowej aplikacji.
     PamiΩµ podrΩczna\Opr≤┐nienia danych - strony/s  Licznik ten informuje, jak czΩsto aplikacje zmieniaj╣ strony buforowanych danych oraz jak czΩsto dane s╣ zapisywane z powrotem na dysk. UwzglΩdnia on strony zapisane przez proces systemowy po zgromadzeniu wystarczaj╣cej liczby stron zmienionych, strony usuniΩte z bufora (pozwala to na zmniejszenie jego rozmiaru) oraz zapisy na dysk spowodowane przez bezpo£rednie ┐╣danie aplikacji.
     PamiΩµ podrΩczna\Opr≤┐nienia danych/s  Licznik ten nale┐y monitorowaµ w celu okre£lenia, jak czΩsto buforowane dane s╣ zapisywane z powrotem na dysk. Licznik ten raportuje pochodz╣ce od aplikacji ┐╣dania opr≤┐nienia bufora i jest po£rednim wskaƒnikiem poziomu i czΩstotliwo£ci zmian danych przez aplikacjΩ.
     PamiΩµ podrΩczna\Mapowania danych/s  Licznik ten nale┐y monitorowaµ w celu okre£lenia, jak czΩsto system mapuje w buforze strony plik≤w, aby umo┐liwiµ ich odczyt. Licznik ten raportuje dostΩp w trybie tylko-do-odczytu do katalog≤w systemu plik≤w, tabel alokacji plik≤w (FAT) w systemie plik≤w FAT i g│≤wnej tablicy plik≤w (MFT) w systemie NTFS. Licznik ten nie odzwierciedla wykorzystania pamiΩci podrΩcznej przez aplikacje.
     PamiΩµ podrΩczna\Odczyty szybkie/s  Licznik ten nale┐y obserwowaµ w celu okre£lenia, jak czΩsto aplikacje omijaj╣ system plik≤w i pobieraj╣ dane bezpo£rednio z bufora. Warto£µ powy┐ej 50% wskazuje na efektywne dzia│anie aplikacji. Odczyty szybkie zmniejszaj╣ obci╣┐enie procesora i s╣ preferowane w stosunku do ┐╣da± wej£cia/wyj£cia.
     PamiΩµ podrΩczna\Zapis z op≤ƒnieniem û opr≤┐nienia/s  Licznik ten nale┐y obserwowaµ w celu okre£lenia, jak czΩsto aplikacja zmienia dane, powoduj╣c zapis zawarto£ci pamiΩci podrΩcznej na dysk i opr≤┐nienie danych. Je┐eli warto£µ ta jest charakteryzowana przez trend wzrostowy, to mo┐e oznaczaµ to zmniejszanie siΩ ilo£ci dostΩpnej pamiΩci. Opr≤┐nienia zwi╣zane z zapisem z op≤ƒnieniem stanowi╣ podzbi≤r wszystkich opr≤┐nie± pamiΩci podrΩcznej. W╣tek zapisu op≤ƒnionego w procesie systemowym okresowo zapisuje na dysku strony znajduj╣ce siΩ na li£cie stron zmienionych i usuwa je z bufora. W╣tek ten jest aktywowany czΩ£ciej w przypadku, gdy pamiΩµ musi byµ zwalniana na potrzeby innych proces≤w. Opisywany licznik zlicza liczbΩ operacji zapisu i opr≤┐nienia bufora, niezale┐nie od ilo£ci zapisywanych danych.
     PamiΩµ podrΩczna\Zapis z op≤ƒnieniem û strony/s  Licznik ten nale┐y obserwowaµ w celu okre£lenia, jak czΩsto strony s╣ zmieniane przez aplikacjΩ i zapisywane na dysk. Je┐eli warto£ci wskazywane przez ten licznik stopniowo zwiΩkszaj╣ siΩ, to mo┐e oznaczaµ to zmniejszanie siΩ ilo£ci dostΩpnej pamiΩci. Warto£µ licznika Zapis z op≤ƒnieniem û strony jest sk│adnikiem warto£ci licznika Opr≤┐nienia danych - strony/s.
     PamiΩµ podrΩczna\Odczyty z wyprzedzeniem/s  Licznik ten nale┐y monitorowaµ w celu okre£lenia, jak czΩsto Mened┐er pamiΩci podrΩcznej wykrywa, ┐e plik jest odczytywany sekwencyjnie. Sekwencyjny dostΩp do pliku jest w wiΩkszo£ci przypadk≤w bardzo efektywnym rozwi╣zaniem. Je┐eli plik jest odczytywany sekwencyjnie, to Mened┐er pamiΩci podrΩcznej mo┐e podczas ka┐dej operacji wej£cia/wyj£cia mapowaµ w buforze wiΩksze jego bloki, zmniejszaj╣c w ten spos≤b obci╣┐enie zwi╣zane z poszczeg≤lnymi pr≤bami dostΩpu do pliku.
     PamiΩµ\Bajty pamiΩci podrΩcznej Licznik ten nale┐y monitorowaµ w celu zaobserwowania zwiΩkszania lub zmniejszania siΩ bufora. Warto£µ tego licznika uwzglΩdnia rozmiar pamiΩci podrΩcznej, puli stronicowanej oraz sterownik≤w i kodu j╣dra, kt≤re mog╣ byµ stronicowane. Warto£ci te okre£laj╣ rozmiar zestawu roboczego systemu.
     PamiΩµ\B│Ωdy pamiΩci podrΩcznej/s  Licznik ten nale┐y monitorowaµ w celu okre£lenia, jak czΩsto strony widoczne w buforze nie zosta│y w nim znalezione i musia│y byµ uzyskane z innego miejsca w pamiΩci lub na dysku. Warto£µ tego licznika nale┐y por≤wnaµ z warto£ciami licznik≤w PamiΩµ\B│Ωdy stron/s oraz Strony wchodz╣ce/s w celu okre£lenia liczby b│Ωd≤w stron, je┐eli jakie£ wystΩpuj╣.
Uwaga NarzΩdzie Performance Meter (Perfmtr.exe), znajduj╣ce siΩ na dysku CD do│╣czonym do angielskojΩzycznej publikacji Microsoft Windows 2000 Professional Resource Kit i wchodz╣ce w sk│ad pakietu SDK, opr≤cz innych statystyk, wy£wietla informacje na temat pamiΩci podrΩcznej systemu plik≤w. WiΩcej informacji na temat tego narzΩdzia mo┐na uzyskaµ w Pomocy narzΩdzi z zestawu Windows 2000 Resource Kit lub w dokumentacji SDK.

Interpretowanie zmian warto£ci licznik≤w pamiΩci podrΩcznej

     Administratorzy musz╣ zwracaµ uwagΩ na oznaki pochodz╣ce z licznik≤w pamiΩci podrΩcznej, £wiadcz╣ce o tym, ┐e niedob≤r pamiΩci skutkuje zbyt ma│ym rozmiarem bufora, co z kolei powoduje niepotrzebne operacje wej£cia/wyj£cia dysku. Efektem tego jest spadek wydajno£ci ca│ego systemu. Dzia│anie bufora mo┐na poprawiµ przez defragmentacjΩ dysku lub dodanie pamiΩci do systemu. Monitoruj╣c dzia│anie pamiΩci podrΩcznej za pomoc╣ opisanych wy┐ej licznik≤w, nale┐y zwr≤ciµ uwagΩ na nastΩpuj╣ce sytuacje:
Zmniejszanie siΩ rozmiaru pamiΩci podrΩcznej
     Je┐eli zainstalowana w systemie ilo£µ pamiΩci jest zbyt ma│a i zestawy robocze s╣ obcinane, to wraz z nimi zmniejszany jest rozmiar pamiΩci podrΩcznej. Je┐eli bufor jest zbyt ma│y, to wra┐liwe na jego dzia│anie procesy s╣ spowalniane przez operacje dyskowe. W celu monitorowania rozmiaru pamiΩci podrΩcznej nale┐y u┐ywaµ licznik≤w PamiΩµ\Bajty pamiΩci podrΩcznej oraz PamiΩµ\DostΩpne bajty. Nale┐y zauwa┐yµ, ┐e wp│yw ma│ego rozmiaru bufora na wydajno£µ aplikacji i operacji na plikach zale┐y od tego, jak czΩsto i jak efektywnie aplikacje korzystaj╣ z pamiΩci podrΩcznej.
CzΩste opr≤┐nianie pamiΩci podrΩcznej
     CzΩste opr≤┐nianie pamiΩci podrΩcznej zachodzi, je┐eli dane s╣ czΩsto zapisywane na dysk w celu zwolnienia stron pamiΩci. Liczniki opr≤┐niania bufora odzwierciedlaj╣ wyj£cie pamiΩci podrΩcznej. Aby sprawdziµ, czy sytuacja ta ma miejsce, nale┐y monitorowaµ liczniki PamiΩµ podrΩczna\Opr≤┐nienia danych/s oraz PamiΩµ podrΩczna\Zapis z op≤ƒnieniem û opr≤┐nienia/s.
     Licznik PamiΩµ podrΩczna\Odczyty przypiΩµ/s informuje o tym, jak czΩsto bufor odczytuje dane z intencj╣ ich zapisania. Odczyt przypiΩcia zachodzi w sytuacji, gdy dane s╣ mapowane w pamiΩci podrΩcznej jedynie po to, aby zosta│y zmodyfikowane i zapisane z powrotem na dysk. S╣ one äprzypiΩteö w buforze w celu zagwarantowania, ┐e nie zostan╣ zapisane na dysk przed zako±czeniem ich aktualizacji. Przyk│adowo, odczytu przypiΩcia wymaga operacja utworzenia pliku lub zmiany jego atrybut≤w. Zmiana zawarto£ci pliku nie skutkuje odczytem przypiΩcia. Opisywany licznik mo┐e przewidywaµ aktywno£µ opr≤┐niania bufora.
Wysokie warto£ci chybie± w buforze
     Wysokie warto£ci chybie± w buforze wskazuj╣ na to, ┐e ┐╣dane dane nie s╣ dostΩpne w pamiΩci fizycznej i musz╣ zostaµ pobrane z dysku. Aby okre£liµ poziom chybie±, nale┐y monitorowaµ liczniki obiektu PamiΩµ podrΩczna, kt≤re rejestruj╣ poziom i natΩ┐enie trafie± (np. PamiΩµ podrΩczna\Trafienia odczyt≤w kopii (%) i PamiΩµ podrΩczna\Trafienia odczyt≤w kopii/s).
     W celu zagwarantowania dok│adnego odzwierciedlenia efektywno£ci pamiΩci podrΩcznej, nale┐y korzystaµ zar≤wno z licznik≤w procentowych, jak i informuj╣cych o natΩ┐eniu trafie±. Przyk│adowo, mo┐na obserwowaµ bardzo wysoki poziom trafie± (£rednio 90%), implikuj╣cy efektywne dzia│anie pamiΩci podrΩcznej. Po przeanalizowaniu natΩ┐enia trafie± mo┐e siΩ jednak okazaµ, ┐e podczas pr≤bkowania zosta│o dokonanych zaledwie kilka odczyt≤w kopii. W tym przypadku poleganie na wskazaniach procentowych powodowa│oby powstawanie fa│szywego wra┐enia efektywno£ci bufora. Z tego powodu zalecane jest badanie poziomu trafie± przy okre£lonej aktywno£ci systemu.
Wysokie warto£ci b│Ωd≤w pamiΩci podrΩcznej
     Mimo ┐e nie mo┐na tego stwierdziµ jedynie na podstawie warto£ci licznika PamiΩµ\B│Ωdy pamiΩci podrΩcznej/s, to zwiΩkszaj╣ca siΩ liczba b│Ωd≤w pamiΩci podrΩcznej mo┐e oznaczaµ pojawianie siΩ b│Ωd≤w stron, skutkuj╣cych zwiΩkszeniem aktywno£ci dysku. Licznik PamiΩµ\B│Ωdy pamiΩci podrΩcznej/s raportuje b│Ωdy dla systemowego zestawu roboczego. Poniewa┐ liczniki bufora nie s╣ wystarczaj╣ce do podjΩcia jednoznacznej decyzji o tym, czy powstaj╣ b│Ωdy stron, to nale┐y dodatkowo monitorowaµ licznik PamiΩµ\Strony wchodz╣ce/s.
     Je┐eli warto£ci licznika B│Ωdy pamiΩci podrΩcznej/s zwiΩkszaj╣ siΩ, a warto£ci licznika informuj╣cego o poziomie trafie± siΩ zmniejszaj╣, to prawdopodobnie brakuje pamiΩci do utworzenia efektywnego bufora systemu plik≤w. Je┐eli brak pamiΩci zmusza system do utrzymywania niewielkiego rozmiaru bufora, to aktywno£µ wej£cia/wyj£cia dysku posiada tendencjΩ wzrostow╣.
     Wp│yw aktywno£ci pamiΩci podrΩcznej na dysk mo┐na zaobserwowaµ sumuj╣c warto£ci licznik≤w PamiΩµ\Strony wychodz╣ce/s oraz PamiΩµ podrΩczna\Opr≤┐nienia danych - strony/s. Suma ta jest w przybli┐eniu r≤wna warto£ci licznika Dysk fizyczny\Bajty zapisu dysku/s w przeliczeniu na strony. Wraz ze wzrostem warto£ci licznik≤w Strony wychodz╣ce/s oraz Opr≤┐nienia danych - strony/s wzrasta r≤wnie┐ warto£µ licznika Bajty zapisu dysku/s, co odzwierciedla zwiΩkszaj╣c╣ siΩ aktywno£µ zapis≤w danych na dysk. R≤┐nice w warto£ciach tych licznik≤w s╣ zwi╣zane z pr≤bkowaniem danych przez Monitor systemu. Podobnie zachodzi zbli┐ony wp│yw operacji odczyt na dzia│anie dysku: nale┐y zwr≤ciµ uwagΩ na warto£µ licznika PamiΩµ\Strony wchodz╣ce/s. Musi byµ ona r≤wna ilo£ci pamiΩci raportowanej przez licznik Dysk fizyczny\Bajty odczytu dysku/s wyra┐onej w stronach. Zagadnienia te s╣ opisane dok│adniej we wcze£niejszej czΩ£ci tego rozdzia│u, w paragrafie äAnalizowanie stronicowania z u┐yciem dyskuö.

Usuwanie w╣skich garde│ zwi╣zanych z pamiΩci╣ i buforem

     Podczas monitorowania zasob≤w zwi╣zanych z pamiΩci╣ i buforem mo┐na stwierdziµ wystΩpowanie zwi╣zanych z nimi w╣skich garde│. W rezultacie mo┐e pojawiµ siΩ potrzeba optymalizacji u┐ycia bufora, wymiany aplikacji lub nawet rozszerzenia pamiΩci. W podjΩciu w│a£ciwej decyzji mog╣ pom≤c poni┐sze wskaz≤wki.

Optymalizowanie u┐ycia pamiΩci podrΩcznej

     Mimo ┐e nie jest mo┐liwe zmienianie ustawie± samej pamiΩci podrΩcznej, istnieje kilka czynno£ci, kt≤re mo┐na wykonaµ w celu zoptymalizowania jej dzia│ania:

Usuwanie w╣skiego gard│a zwi╣zanego z pamiΩci╣

     Mimo ┐e najprostsz╣ metod╣ usuniΩcia w╣skiego gard│a zwi╣zanego z pamiΩci╣ jest jej rozszerzenie, to nie jest to rozwi╣zanie zalecane w pierwszej kolejno£ci. Przed wydaniem pieniΩdzy na dodatkow╣ pamiΩµ nale┐y wypr≤bowaµ ni┐ej wymienione, bardziej efektywne pod wzglΩdem koszt≤w rozwi╣zania. Je┐eli ostatecznie zostanie podjΩta decyzja o rozszerzeniu pamiΩci, to nale┐y pamiΩtaµ, ┐e system Windows 2000 mo┐e maksymalne obs│u┐yµ 4 GB pamiΩci.

Dodatkowe zasoby

     WiΩcej informacji na temat narzΩdzi programistycznych mo┐na uzyskaµ korzystaj╣c z │╣cza do biblioteki MSDN, dostΩpnego na stronie Web Resources, pod adresem http://windows.microsoft.com/windows2000/reskit/webresources.