1
Opublikowano 17 marca 2012 w Portal komputerowy » Systemy Operacyjne » Windows XP » Przyspieszanie » Stronicowanie Windows NT (Windows XP, 2003)
 
 

Stronicowanie Windows NT (Windows XP, 2003)


Problem stronicowania w systemach z rodziny Windows NT, przez tak wiele osób był opisywany, jednak wnioski były na tyle różne, że nie wiadomo gdzie leży prawda. Ilu autorów, tyle pomysłów na to jak optymalizować pracę pliku wymiany.

Mały spis treści by lepiej się można było poruszać po artykule.

  1. Wstępne uwagi.
  2. Czym właściwie jest plik pagefile.sys? NTFS vs. FAT.
  3. Dwa sposoby stronicowania. Ogólne zasady.
  4. wielkość pliku pagefile.sys oraz jego położenie.
  5. Windows: 2000 vs. XP vs. 2003.
  6. Tuning obsługi pamięci wirtualnej.
  7. Obserwacja w menadżerze zadań pracy systemu.
  8. Kilka słów od autora.
  9. Podsumowanie.

1. Wstępne uwagi.

Stwierdźmy na początku kilka faktów:

  • nie da się wyłączyć stronicowania w Windows NT
  • system „dąży” do tego, aby mieć, co najmniej połowę pamięci fizycznej wolną (Windows XP, Windows 2000 ma ta granicę znacznie wyżej).
  • każdy proces ma swoje pewne „opóźnienie” – czas po upłynięciu, którego większa część programu znajdzie się w pliku stronicowania.
  • pamięć wirtualna jest widziana przez system jako kolejny fragment pamięci fizycznej
  • stronicowanie odbywa się nie tylko w pliku pagefile.sys

2. Czym właściwie jest plik pagefile.sys? NTFS vs. FAT.

Plik pagefile.sys jest fizycznym plikiem na dysku, który ma swoje atrybuty, pewną wielkość (w normalnych warunkach stałą), oraz maksymalnie możliwą do uzyskania ciągłość. Jest jednak kilka cech wyróżniających ten plik od innych:

  • możliwość zapisu w nim ma tylko system
  • nie działają na niego ograniczenia wynikające z wielkości klastra
  • pomimo tego, że plik pagefile.sys jest zdefragmentowany, to jego zawartość wcale nie musi

Problemem dla wielu jest pytanie, na jakim systemie plików go osadzić? Trzeba sobie uzmysłowić, w jaki sposób plik wymiany egzystuje na dysku, jego charakter oraz sposób zapisu/odczytu w nim.

Pagefile.sys nie jest zwykłym plikiem pod względem zapisu lub odczytu. W odróżnieniu od zwykłych plików, które mają charakter „balonu”, ten ma charakter worka na dane. Wytłumaczmy, na czym polegają różnice.

Balon puchnie wraz z większą ilością powietrza w nim zawartego, czyli plik zajmuje coraz to większą przestrzeń na dysku wraz z większym jego rozmiarem, jednak każdy jego wzrost jest realizowany … i właśnie tutaj pojawiają się różnice między NTFS a FAT(16/32)

NTFS – wzrost jest realizowany przez dopisanie tego nadmiarowego fragmentu jak najbliżej zbioru macierzystego, a jeśli się uda to dopisać bezpośrednio kolejne klastry obok tych już wcześniej zajętych. Dzięki temu uzyskujemy dużo mniejszą fragmentację danych

FAT – wzrost jest realizowany przez dopisanie tego nadmiarowego fragmentu w pierwszym wolnym klastrze. A co za tym idzie jeśli pierwotna część pliku była na fizycznym końcu dysku, to jej nowy fragment (o ile jest miejsce na fizycznym początku dysku) jest właśnie na początku dysku.

Worek na dane nie puchnie, nie zmienia swojej wielkości wraz ze wzrostem lub spadkiem zajętości danych zawartych w nich. Plik ten jest właśnie takim pudełkiem, do którego wrzucamy dane, ale sama objętość tego pudełka się nie zmienia, niezależnie od tego czy jest on pusty czy pełny. Innymi słowy, jeśli występuje jakakolwiek fragmentacja danych zawartych w tym pliku nie wynika ona z zastosowanego systemu pików, po prostu dla tablicy alokacji partycji, zbiór ten jest cały czas jednym wielkim plikiem, w którym z jego punktu widzenia nic się nie dzieje.

Kolejną kwestią konieczną do obalenia są prawa dostępu na systemie NTFS. Jednym z poważniejszych argumentów przemawiających przeciw trzymaniu pliku pagefile.sys na NTFS’ie była konieczność w czasie jakiejkolwiek operacji odczytu uprawnień do tego pliku. Śmiem powiedzieć jednak, że chyba jednak nikt nie przyglądnął się prawom dostępu do tego pliku. Po prostu ich nie ma! Nie jesteśmy stanie ustalić mu żadnych praw, ani bezpośrednio na tym pliku (zakładka nie jest w ogóle dostępna), ani poprzez dziedziczenie uprawnień na konkretnej partycji. Po prostu dostęp do tego pliku ma tylko system i on nie sprawdza czy ma do niego prawa piania czy nie, odbywa się to w taki sam sposób jak w FAT.

Rozmiar klastra nie ma wpływu na wydajność odczytu lub zapisu w pliku wymiany. Wielu się pewnie teraz oburzy, już tłumaczę. Zapis normalnego pliku na dysku wygląda w ten sposób, że system szuka wolny klaster i jeśli go znajduje, następuje zapis, w przypadku pliku większego od rozmiaru klastra, system znajduje możliwie najbardziej skupione miejsce wolnych klastrów, tak aby plik był maksymalnie zdefragmentowany. System nie może wsadzić dwóch plików w jeden klaster pomimo tego, iż by się zmieściły, jakikolwiek zapis w takim obszarze oznacza, że jest on już w 100% zajęty. W przypadku pliku pagefile.sys sytuacja wygląda nieco inaczej. System plików widzi tylko jeden plik, duży, ciągły (o ile nie jest pofragmentowany), jednak sam Windows traktuje go jako fragment pamięci operacyjnej i tak też w nim zapisuje, czyli na dobrą sprawę w 4-kilobajtowym klastrze może umieścić np. 3 pliki wielkości 1 KB każdy. Więc czy będziemy mieć partycje sformatowaną w 1 KB klastry czy 64 KB i tak wydajność się nie zmieni. Zmieni się jedynie tablica alokacji, która w przypadku małych klastrów, rośnie w dość duże rozmiary i niepotrzebnie zajmuje nam cenne miejsce na dysku. Należy też pamiętać, że system Windows do pliku wymiany przenosi paczki o wielkości 4 KB, nigdy więcej, nigdy mniej. Wyciągając z tego wnioski dochodzimy do stwierdzenia: najbardziej optymalnym rozwiązaniem jest umieścić plik wymiany na osobnej partycji sformatowanej w NTFS’ie ale z maksymalnie dużym klastrem. Jeśli jest na tej samej partycji co system operacyjny, nie ma się czym specjalnie przejmować wielkością tablicy alokacji, gdyż ta i tak będzie puchła.

3. Dwa sposoby stronicowania. Ogólne zasady.

W systemach z rodziny Windows NT wyróżniamy dwa sposoby stronicowania: jawne, oraz ukryte.

Stronicowanie jawne polega na fizycznym przenoszeniu danych z pamięci operacyjnej do pliku wymiany – przeadresowaniu. Dotyczy ono tylko danych, które od czasu załadowania do fizycznej pamięci uległy jakiejkolwiek zmianie. Innymi słowy, wszelkie pliki graficzne, muzyczne, czy dokumenty, na których pracujemy są przenoszone do pamięci wirtualnej w momencie, gdy nie są nam potrzebne – system stwierdzi, że długo już nad nimi nie pracowaliśmy, a może on potrzebować miejsca na inne rzeczy.

Stronicowanie ukryte polega na usuwaniu paczek danych z pamięci fizycznej i pozostawieniu tylko „znaczników”, że dany program, lub dana paczka danych powinna znajdować się w pamięci. No tak, ale co się z tym dzieje? Pliki w razie konieczności użycia, są po prostu ponownie ładowane z plików oryginalnych, jakimi są zbiory .exe ’.dll’ czy inne. Mechanizm jest wręcz rewelacyjnie pomyślany, program, który nie jest używany, a którego w czasie jego działania nie zmieniliśmy, jest po prostu usuwany. Przecież bezcelowym by było przenoszenie go do pliku wymiany, raz, że tym działaniem zajmujemy miejsce w pagefile.sys to jeszcze, zajmujemy cenny dla nas czas procesora, który musiałby zużyć na przeniesienie tych danych. Bardzo dobrze to widać na programach graficznych, które z reguły są zbudowane modułowo. Jest jeden główny moduł, który zawiera jakby jądro programu, a do tego są kolejne moduły odpowiadające za poszczególne efekty, maski, czy inne elementy dostępne z menu programu. Jeśli będziemy chcieli ich użyć, to system je doczyta, a nie będzie marnował miejsca w pamięci, która mogłaby być wykorzystana w dużo bardziej pożyteczny sposób – czyli przechowując plik, nad którym właśnie pracujemy.

Tutaj jest przykład stronicowania ukrytego:

 

stronicowanie, zużycie procesora

 

4. Wielkość pliku pagefile.sys oraz jego położenie.

Jaką wielkość powinien mieć mój pagefile.sys? Takie pytanie zadaje sobie, co bardziej zaawansowany użytkownik, który w miarę swoich możliwości poprawia, co tylko może w swoim systemie operacyjnym. Nie słuchajcie osób, które mówią, że plik powinien być wielkości 0 MB, albo, że powinien być półtora razy większy od wielkości pamięci operacyjnej, albo większy. Wielkość pliku wymiany jest liczbą charakterystyczną dla każdego zespołu: użytkownik – komputer. Oznacza to, że każdy użytkownik sam powinien ustalić wielkość tego pliku w zależności od swoich potrzeb. Powtarzam jeszcze raz – nie ma uniwersalnego sposobu, czy wzoru na obliczenie wielkości tego pliku. Przedstawię kilka standardowych konfiguracji Windows 2000.

  • 256 MB komputer do Internetu, czasami do prostych gier, lub jakaś edycja pliku graficznego, oglądanie filmów – powinno nam wystarczyć około 260 MB tego pliku, jeśli zauważamy, że praktycznie nigdy nie przekraczamy zajętości fizycznej pamięci, spokojnie można ustawić na 100 MB lub nawet mniej.
  • 512 MB (lub więcej) komputer do Internetu, czasami do prostych gier, lub jakaś edycja pliku graficznego, oglądanie filmów – jeśli robimy to co w poprzednim przykładzie, w większości przypadków, wyłączenie pliku wymiany, bądź jego znaczne ograniczenie nie powinno nam w niczym przeszkodzić.
  • 256 MB komputer głównie do prac graficznych, edycji dźwięku, czy innych bardziej zaawansowanych prac – plik w zależności od potrzeb duży, nigdy nie mniejszy niż 260 MB, nie zaszkodzi mieć nawet 600 MB czy więcej, ale to już zależy stricte od naszych potrzeb.
  • 512 MB (lub więcej) komputer głównie do prac graficznych, edycji dźwięku, czy innych bardziej zaawansowanych prac – tutaj mamy już więcej Ram-u, choć z wielkością pagefile.sys nie powinniśmy schodzić poniżej fizycznej wielkości pamięci operacyjnej, gdyż system zawsze musi mieć miejsce gdzie zrzucić, pliki nad którymi pracujemy.
  • 256 MB komputer głównie do gier – nie schodzimy poniżej 260 MB, chyba, że gramy powiedzmy w gry typu FarCry, to tam plik o wielkości 512 MB może być mały. Czyli w zależności od potrzeb.
  • 512 MB (lub więcej) komputer głównie do gier – podobnie jak w przypadku wielkości RAM dwa razy mniejszej, nie powinniśmy schodzić poniżej fizycznej wielkości pamięci operacyjnej.

A co się dzieje, gdy np. ktoś ma powiedzmy 2 GB pamięci RAM, czy należy wtedy wyłączyć plik stronicowania?

Jeśli ktoś pracuje często na aplikacjach graficznych, a te mu zajmują bardzo duże wartości w pamięci, plik pagefile.sys o wielkości 1 – 2 GB powinien (a nawet musi) wystarczyć. Natomiast, jeśli taki ktoś, pracuje głównie na Internecie, gra w gry, czy ogląda filmy, wyłączenie pliku wymiany jest wręcz wskazane, gdyż ograniczymy wtedy niepotrzebne stronicowanie jawne. Pamiętajmy jednak o jednej rzeczy, systemy z rodziny Windows NT, zresztą ograniczenie to wynika bezpośrednio z architektury naszych procesorów, potrafią wykorzystać maksymalnie 4 GB pamięci (łącznie z tą wirtualną), mało tego dla programów dostępne jest „jedynie” pierwsze 2 GB, pozostaje 2 GB potrafi wykorzystać tylko system operacyjny, dlatego też rozszerzać pamięć powyżej 2 GB na dzień dzisiejszy mija się z celem, a jeśli to wówczas pliku pagefile.sys po prostu nie potrzebujemy.

Odrębnym przypadkiem jest sytuacja użytkownika, który na co dzień powiedzmy korzysta z Internetu, ma 512 MB RAM, ale czasami jednak lubi pobawić się edycją grafiki.. Dla niego najlepszym rozwiązaniem byłoby ustalenie minimalnej wielkości pliku wymiany (w przypadku Windows 2000 PRO jest to 2 MB), ale rozmiar maksymalny ustalić np. na 520 MB. Czyli wtedy kiedy system będzie potrzebował więcej pamięci, po prostu sobie ją zwiększy. Ale wówczas pojawia się problem fragmentacji pliku wymiany, bądź zorganizowaniu na tyle dużego miejsca na dysku, by taki plik się zmieścił. I teraz właśnie dochodzimy do kolejnego problemu – czyli umiejscowienie pliku wymiany.

Najkorzystniejszym z punktu widzenia wydajności jest mieć dwa dyski, z czego jeden jest przeznaczony jedynie na swapa. Jak większość z was zauważyła jest to dość abstrakcyjne stwierdzenie, gdyż:

  • dyski wielkości 1 – 4 GB są w porównaniu do dysków dzisiejszych bardzo wolne i stosowanie takich na plik wymiany mijałoby się z celem
  • umiejscowienie natomiast pliku wymiany na dysku szybkim, ale jednocześnie dużym (przecież nikt nie będzie poświęcał szybkiego Raptora 36 GB tylko na plik wymiany), stwarza ryzyko, że w czasie korzystania z pagefile.sys dysk będzie musiał jednocześnie coś odczytać z innych obszarów tego dysku.

Z oczywistych względów drugie rozwiązanie jest znacznie lepsze, choć konieczna jest nieco poprawa tego sposobu.
Mając dwa dyski (nie jest w tym momencie istotna wielkość tych dysków) powiedzmy, że wydajnościowo takie same, na jednym instalujemy system, a na drugim tworzymy specjalną partycję, na której umieszczamy plik wymiany. Kilka wskazówek:

  • musimy z góry założyć jaką wielkość musi mieć taka partycja, niestety konieczne będzie przeznaczenie dość dużego obszaru na taką partycję, gdyż nigdy nie wiemy, czy aby kiedyś nie będzie nam potrzebne więcej obszaru na plik wymiany. 1 GB takiej partycji dla systemów do 1 GB RAM, 2 GB dla komputerów pamięcią operacyjną o wielkości większej niż 1 GB. Oczywiście nie jest to regułą, jednak moim zdaniem 1 GB takiej partycji to jest niezbędne minimum jakie powinniśmy przeznaczyć, najwyżej na dysku zmieści nam się jeden film mniej :). Sprawą, mam nadzieję oczywistą, jest umieszczenie takiej partycji na samym początku dysku – jako pierwszej, którą tworzymy.
  • Co zrobić jednak, gdy mamy tylko jeden fizyczny dysk? I tutaj pojawia się pewien problem, gdyż jak wiadomo partycje są wydzielonymi fizycznie obszarami na dysku twardym i przeskakiwanie głowicy między tymi obszarami jest stosunkowo czasochłonne. I w tym momencie mamy dwie możliwości:
    1. umiejscowienie pliku wymiany na partycji systemowej
    2. utworzenie podobnie jak przy konfiguracji dwu-dyskowej małej partycji na początku dysku i tam umiejscowienie pliku wymiany.

    Sposób nr 1

    Zalety: system w czasie pracy na plikach umieszczonych na partycji systemowej i jednocześnie wykorzystując plik wymiany jest najwydajniejszy.

    Wady: duża fragmentacja pliku, podczas pracy na partycjach innych niż systemowa, następuje „przeskakiwanie” głowicy dysku twardego pomiędzy poszczególnymi partycjami. Bardzo mała możliwość ewentualnego rozszerzenia wielkości pliku wymiany, ze względu na ewentualnie dużą zajętość dysku systemowego oraz niska efektywność takiego rozwiązania.
    Sposób nr 2

    Zalety: bezproblemowe manipulowanie wielkością pliku wymiany, praktycznie zerowa fragmentacja pliku, wysoka efektywność jego rozszerzenia.

    Wady: następuje „przeskakiwanie” głowicy podczas używania jakiejkolwiek innej partycji, nawet systemowej. Konieczność zastosowania takiej partycji jako podstawowej, a co za tym idzie system będzie trzymał na niej najważniejsze pliki uruchomieniowe.
    Sposób nr 1 vs. Sposób nr 2

    Musimy sobie wyobrazić naszą pracę codzienną. Proszę zauważyć, że korzystając ze sposobu nr 2 jest w większości przypadków i tak wydajniejsze niż 1 sposób. Przyczyna jest dość oczywista: partycja przeznaczona na swap file jest zasadniczo pomijalnie mała w stosunku do reszty dysku (przeciętny czytelnik tego artykułu ma dysk wielkości 60-80 GB). A co za tym idzie to przeskakiwanie będzie miało z pewnością mniejszy wpływ na wydajność, niż fragmentacja pliku podczas korzystania ze sposobu nr1. Należy też zauważyć, iż sytuacje, w których plik wymiany będzie wykorzystywany równocześnie z plikami na partycji systemowej są relatywnie rzadkie. Wyjątkiem jest tutaj stosowanie jednej wielkiej partycji na całym dysku, co oczywiście odradzam. Kolejną zaletą stosowania rozwiązania nr 2 w stosunku do pierwszego jest to, że możemy z powodzeniem stosować minimalny rozmiar pliku swapa i tylko w razie konieczności go rozszerzać, co w takim wypadku nie powoduje fragmentacji pliku.

    Co jednak zrobić z ww. plikami startowymi? Pliki te to m.in. boot.ini, ntdetect.com czy ntldr. Wielkość ich sumaryczna nie przekracza 256 KB, dlatego też z powodzeniem możemy zastosować bardzo duży klaster przy formatowaniu tejże partycji. Ale jak to zrobić z poziomu instalacji systemu. Niestety nie da się, musimy albo sformatować dysk na innym komputerze, albo już po zainstalowaniu sformatować dysk c: i zastosować konsolę odzyskiwania i tam odpowiednie komendy, za pomocą, których odzyskamy bootloader. Po takiej operacji normalnie uruchomimy system i z jego poziomu utworzymy na tej partycji pagefile o odpowiedniej wielkości. O zaletach dużego klastra już pisałem, ale dość ogólnikowo, teraz trochę rozszerzę. Im większy klaster tym tablica alokacji będzie mniejsza, a co za tym idzie mamy więcej miejsca na nasz plik wymiany oraz prawdopodobieństwo fragmentacji pagefile.sys spowodowanego, przez umieszczenie tablicy alokacji w środku partycji, spada.

    Jest jeszcze jedno rozwiązanie: mianowicie można ustalić pierwszą partycję systemową, a dopiero drugą przeznaczyć na stronicowanie, wykluczamy w ten sposób problem plików startowych na partycji z pagefile.sys oraz nie musimy uruchamiać konsoli odzyskiwania. Wadą tego rozwiązania (choć może dla niektórych jest to zaleta) jest to, że partycja systemowa musi być maksymalnie mała, aby partycja na plik wymiany była możliwie najbliżej początku dysku. Wymaga to od nas wielkiego rygoru w trzymaniu porządku na dysku, a przynajmniej na partycji systemowej, po prostu praktycznie każdy większy program trzeba trzymać na innej partycji, co swoją droga i tak polecam.

5. Windows: 2000 vs. XP vs. 2003.

  • Windows NT 4.0 – Windows NT 4.0
  • Windows 2000 – Windows NT 5.0
  • Windows XP – Windows NT 5.1
  • Windows 2003 – Windows NT 5.2

Jak widać dużym krokiem w rozwoju systemów Windows z rodziny NT był Windows 2000, późniejsze systemy wprowadzały zauważalne zmiany, choć ogólna zasada działania systemu, czy samo jądro pozostało praktycznie to samo. Jak się jednak okazuje są pewne różnice w zarządzaniu pamięcią w wymienionych wyżej systemach. Pomijamy tutaj kwestię Windows NT 4.0 z kilku powodów: bardzo małe moje doświadczenie z tym systemem oraz praktycznie znikoma jego popularność na rynku użytkowników domowych. Windows 2003 operuje pamięcią wirtualną praktycznie tak samo jak Windows XP, jedynie „dwutysiączka” wyłamuje się.
Jak wynika z moich doświadczeń (dwa lata na Windows 2000, oraz 1 rok na Windows XP, w tym pół roku na XP SP1) oraz obserwacji, Windows 2000 ma dużo mniejszą „ochotę” na korzystanie z pliku wymiany w porównaniu z nowszymi jego odmianami. Może pokaże to na przykładzie:

  • Mamy 256 MB RAM, system tuningowany (wyłączona większość usług, sam system po uruchomieniu zajmuje jakieś 65 MB (Windows 2000) lub 70 MB (Windows XP/2003)), po załadowaniu Winampa, Total Commandera, menadżera zadań oraz Word’a zajętość pamięci wynosi 110 MB w przypadku Windows 2000 lub 115 w przypadku Windowsa XP/2003.Po kilkugodzinnym pisaniu w Wordzie, Windows 2000 można powiedzieć, że nie używa pagefile.sys, niezależnie kiedy chcę się przerzucić na inną aplikację, czy to jest winamp czy Total Commander i tak system cały czas trzyma te programy w pamięci operacyjnej. Windows XP natomiast już po około 30 minutach pisania w Wordzie przeniósłby Total Commandera do pliku wymiany, oraz część winampa, która nie byłaby potrzebna do odtwarzania muzyki.

Wniosek z tego płynący jest jeden – Windows XP jest systemem, który w dużo większym stopniu stronicuje, niż Windows 2000. Jak jednak można łatwo to zaobserwować algorytmy zarządzające stronicowaniem w Windows 2000 są znacznie lepsze, niż te z Windows XP. Windows 2000 stronicuje (jawnie) dopiero wtedy, gdy faktycznie potrzebna jest mu pamięć, Windows XP natomiast stronicuje już wtedy, gdy jakiś program przekroczy swój próg czasu egzystowania w pamięci bez aktywności. Przy odpowiednio dużym pliku wymiany oraz dużej ilości pamięci operacyjnej stronicowanie niejawne jest takie samo w oby systemach, jednak jawne jest dużo większe w przypadku Windowsa XP. Jeśli natomiast mamy nawet dużo pamięci, a zużywamy jej jedynie powiedzmy 20-30% oraz mamy duży plik wymiany, to Windows XP i tak z niego będzie korzystał ograniczając tym stronicowanie niejawne, Windows 2000 natomiast będzie korzystał z pamięci fizycznej dotąd dopóki mu jej wystarczy.
Jest jeszcze jedna możliwa sytuacja: dużo pamięci, ale mały plik wymiany: Windows 2000 korzysta tak samo jakby miał duży plik wymiany, natomiast Windows XP stronicowanie jawne zmniejszy kosztem stronicowania niejawnego. Innymi słowy XP’k będzie wówczas wyrzucał z pamięci programy, które jego zdaniem są już niepotrzebne, tylko dlatego by dane, które od uruchomienia uległy zmianie pozostały w niej, gdyż nie ma na to miejsca w pagefile. Co oczywiście powoduje, że po dłuższym nie używaniu danego programu, system w momencie przywrócenia go z paska zadań sczyta go ponownie z oryginalnego źródła.
Zalety stosowania stronicowania użytego w Windows XP.

Podczas ładowania do pamięci dużego pliku lub programu, który teoretycznie może przekroczyć obecny obszar wolnej pamięci, Windows XP szybciej załaduje taki program, gdyż on już te dane, ma przeniesione do pliku stronicowania, natomiast Windows 2000 musi je dopiero przenieść.
Dlaczego tak się dzieje? XP jest systemem bardziej przewidującym (co nie znaczy, że robi to dobrze) od swojego poprzednika. XP wychodzi z założenia, że w każdym momencie może nam braknąć pamięci, więc co tylko jest nam mniej potrzebne przenosi do pliku pagefile.sys. Dwutysiączka zaś wychodzi z założenia, że wyżej opisane sytuacje będą rzadkością, więc ewentualnie niepotrzebne dane przeniesie do pliku wymiany w momencie kiedy będzie potrzebny wolny obszar pamięci. Zasadniczo obydwa mają pewien czas po którym programy znajdują się w pliku wymiany, jednak Windows 2000 przy małym zużyciu pamięci powijalnie mało przenosi do pagefile, można powiedzieć, że nie przenosi w ogóle, dopiero w momencie, kiedy jest na realnie potrzebna ta pamięć, system stara się organizować wolne miejsce poprzez stronicowanie jawne oraz niejawne. Choć proszę się nie martwić, że robi to długo, system używa swpafile dopiero po zajęciu 80% (później pokażę gdzie ten parametr możemy zmieniać) i w związku z tym nigdy nie dojdzie do sytuacji, że nie mamy miejsca w pamięci na uruchomienie danego procesu, system wówczas zacznie pierwsze wykorzystywać te 20% a dopiero później przenosić dane do swapfile. Później już w tle w miarę możliwości zrobi sobie te wolne 20%.
Który lepszy? Nie ulega wątpliwości, że znów zależy to od osobistych preferencji. Chcąc jednak przedstawić choć częściowe kryteria wyboru systemu musimy określić:

  1. W jakim stopniu (procentowo) nasza pamięć jest standardowo zajęta?
  2. Czy plik wymiany mamy na osobnym dysku, innym niż uruchamiane programy, które teoretycznie mogą przekroczyć pojemność pamięci?

W punkcie pierwszym im ta procentowa zajętość jest większa lepszym rozwiązaniem będzie Windows XP, po prostu system będzie lepiej pilnował by nie zabrakło nam Ram-u na aktualnie uruchamiany program, jeśli ta wartość schodzi już poniżej powiedzmy 60% to Windows 2000 będzie lepiej zarządzał naszą pamięcią. Jeśli natomiast plik pagefile.sys mamy na osobnej partycji wówczas stosowanie algorytmów zawartych w Windows XP praktycznie mija się z celem, gdyż system podczas ewentualnego ładowania dużego programu, będzie mógł równocześnie zapisywać w pliku wymiany, jak wiadomo szybkość pamięci RAM jest nieporównywalnie większa niż szybkość odczytu czy zapisu dysku twardego.

W punkcie 4 podawałem proponowaną wielkość pagefile.sys. Tyczyła się ona systemu Windows 2000. Jak się okazuje Windows XP musi mieć swapafile wielkości co najmniej ilości zamontowanej pamięci fizycznej, niestety ale nie jest zalecane zmniejszanie jego wielkości poniżej tej wartości. I tak:

  • 256 MB; komputer do Internetu, czasami do prostych gier, lub jakaś edycja pliku graficznego, oglądanie filmów – powinno nam wystarczyć około 380 MB tego pliku, jeśli zauważamy, że praktycznie nigdy nie przekraczamy zajętości fizycznej pamięci, spokojnie można ustawić na 280 MB lub nawet mniej.
  • 512 MB (lub więcej); komputer do Internetu, czasami do prostych gier, lub jakaś edycja pliku graficznego, oglądanie filmów – jeśli robimy to co w poprzednim przykładzie, w większości przypadków, ustawienie na 520 MB powinno wystarczyć.
  • 256 MB; komputer głównie do prac graficznych, edycji dźwięku, czy innych bardziej zaawansowanych prac – plik w zależności od potrzeb duży, nigdy nie mniejszy niż 380 MB, nie zaszkodzi mieć nawet 700 MB czy więcej, ale to już zależy stricte od naszych potrzeb.
  • 512 MB (lub więcej); komputer głównie do prac graficznych, edycji dźwięku, czy innych bardziej zaawansowanych prac – tutaj mamy już więcej Ram-u, choć z wielkością pagefile.sys nie powinniśmy schodzić poniżej fizycznej wielkości pamięci operacyjnej, gdyż system zawsze musi mieć miejsce gdzie zrzucić, pliki nad którymi pracujemy.
  • 256 MB; komputer głównie do gier – nie schodzimy poniżej 380 MB, chyba, że gramy powiedzmy w gry typu FarCry, to tam plik o wielkości 600 MB może być mały. Czyli w zależności od potrzeb.
  • 512 MB (lub więcej); komputer głównie do gier – podobnie jak w przypadku wielkości RAM dwa razy mniejszej, nie powinniśmy schodzić poniżej fizycznej wielkości pamięci operacyjnej.
  • 1 GB i więcej; niezależnie od zastosowań – ile Ram-u tyle swapfile, albo i więcej.

Dla przypomnienia Windows 2003 zarządza pamięcią w praktycznie taki sam sposób jak Windows XP.

6. Tuning obsługi pamięci wirtualnej.

Możemy w pewien sposób wpłynąć na to, w jaki sposób oraz kiedy system będzie stronicował. Wszystkie te ustawienia są zawarte w rejestrze w kluczu:

[HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager\ Memory Management]

I tam znajdziemy kilka interesująco wyglądających kluczy (jeśli któregokolwiek by nie było należy go utworzyć – wartość DWORD):

  • ClearPageFileAtShutdown – jeśli damy na 1 system podczas zamykania będzie czyścił nam pagefile.sys. pagefile.sys Z własnego doświadczenia polecam, choć wiem, że system zamykający się 2 minuty może być uciążliwy, lecz jeśli nie robimy tego za często polecam. Po prostu po ponownym uruchomieniu dostajemy plik, który jest idealnie „czysty”, niesfragmentowany i bezpieczny. W przypadku kiedy ustawienie damy na 0, wówczas system podczas zamykania nie będzie czyścił pliku. Głównie chodzi tutaj o kwestię ewentualnego odczytu danych przez osoby niepowołane.
  • DisablePagingExecutive – domyślnie system może przenosić do pliku wymiany część jądra systemu i sterowników. Druga część nie może zostać przeniesiona. Zmieniając wartość na 1 zmusimy system, aby całe jądro i sterowniki znalazły się pamięci operacyjnej na stałe, co gwarantuje maksymalną wydajność. Komplikuje to jednak zadanie menadżerowi pamięci i może powodować pewne kłopoty, dlatego posiadacze mniejszej ilości pamięci [do 384 MB] powinni się dwa razy zastanowić zanim dokonają przeróbki. [punkt poprawiony przez mkk270 na podstawie wskazówek autora]
  • LargeSystemCache – ustawiamy na 1 choćby nie wiem co 🙂 dzięki temu system z nieużywanego obszaru pamięci będzie robił bufor dysku (coś jak Linux), dzięki czemu częściej używane dane będziemy mieć od razu w pamięci, coś jak cache’owanie plików internetowych.
  • NonPagedPoolSize – chyba najbardziej nas interesujące ustawienie, a szczególnie osób posiadających Windowsa 2000. Tutaj wpisujemy ilość kilobajtów, po przekroczeniu, których system ma zacząć używać swapa. Standardowa wartość 0 oznacza, że system będzie używał pliku stronicowania po przekroczeniu 80% zajętości pamięci i w rzeczywistości tak będzie, pozostałe 20% praktycznie nigdy nie będzie wykorzystywane! Jak to powinno być ustawione? Osoby, które rzadko przekraczają zajętość pamięci, albo przekraczają, ale i tak mają pagefile.sys na osobnym dysku, polecam ustawić na prawie 100% zajętości pamięci (pamiętajmy wpisujemy dziesiętnie ilość pamięci w Kilobajtach). Osoby, które dość często przekraczają zajętość pamięci i mają swapa na tym samym dysku co system, polecam na pozostawienie tego parametru w standardowej wartości, lub nie przekraczanie 90% wartości pojemności pamięci. Znów niestety ustawienie to ma mniejszy wpływ na Windowsa XP niż na Windowsa 2000, choć i tak polecam modyfikację.
    Pamiętajmy jeszcze o jednym – nie wolno wpisywać wartości większej niż fizyczna wielkość naszej pamięci operacyjnej, wówczas po przekroczeniu takiej wielkości system się zawiesi.

Jeszcze słowo na temat Windowsa 2003. Jak się okazuje pomimo tego, że system jest zbudowany na bazie XP (w jądrze praktycznie nie pozostało nic zmienione) jednak system jest dość elastyczny ze względu na możliwości ustawienia mu powyższych kluczy. Mają one mniej więcej taki sam wpływ jak na W2K. System po takim tuningu zachowuje się praktycznie jak dwutysiączka. Różnic dokładnych niestety podać nie jestem w stanie, gdyż moja styczność tym systemem jest dość krótkotrwała. Zarządzanie pamięcią ma lepsze, dużo lepsze niż XP, ale jednak W2K to jeszcze nie jest, ale niewiele mu do tego brakuje. Polecam.

7. Obserwacja w menadżerze zadań pracy systemu.

Menadżer zadań jest głównym źródłem wiedzy o pracy naszego systemu, naprawdę dużo rzeczy można się z niego dowiedzieć, a najbardziej interesującym jest zarządzanie pamięcią.

 

Stronicowanie

Na załączonym screenie (zrobiłem go w momencie pisania tego artykułu) widać dość rozbudowaną ilość kolumn oferowanych przez ten program. Które nas interesują?

CPU Time – im wartość tam zapisana jest większa, tym dany program jest aktywniejszy w systemie, warto wiedzieć, które są takie programy. Na załączonym obrazku widać, że Winami pomimo kilka razy dłuższego czasu pracy od włączenia ma porównywalne zapotrzebowanie na procesor co pracujący przez kilka godzin Word.

Memory Usage (użycie pamięci) – podaje nam ile dany proces aktualnie zajmuje w pamięci.

Peak Memoru usage – Szczytowe użycie pamięci, parametr przydatny, choć nie najważniejszy.

Page faults (błędy stron) – chyba najbardziej ważny parametr ze wszystkich, jako wartość podaje liczbę błędów stron, nie są to bynajmniej błędy w sensie jak większość z was sobie to wyobraża, kolumna ta podaje nam ile razy system musiał się odwołać do pamięci wirtualnej (tyczy się to również oryginalnego pliku, gdyż dla systemu jest to niejako „plik wymiany:” tego programu), jedynymi programami, na które nie ma co patrzeć są wszelkie odtwarzacze plików mp3 bądź filmów, gdyż one cały czas doczytują. Generalna zasada jest taka: jeśli jakiś proces ma więcej niż 7-8 błędów na sekundę, mamy za mało pamięci. Wartość tą widzimy właśnie w kolumnie PF Delta czyli zmiana błędów stron.

VM Size (wielkość pamięci wirtualnej) – kolumna informuje nas ile kilobajtów dany program sobie zaalokował. Jest to obszar, który nie może być wykorzystywany przez inne aplikacje.

Obserwując uważnie pracę naszego systemu, będziemy w stanie stwierdzić, jakiej wielkości powinien być nasz pagefile.sys oraz czy warto inwestować w większą ilość pamięci RAM.

UPDATE

Stronicowanie jednak nadal nie daje spokoju 🙂

Wczoraj dostałem dość ciekawego maila, który dał mi dużo do myślenia. Publikować oczywiście nie będę, ale zacytuję fragment wypowiedzi nadawcy dotyczący definicji VM Size – kolumny w menadżerze zadań:
„A definicja brzmi:
Private Bytes is the current number of bytes this process has allocated that cannot be shared with other processes.”

Tak wiec ten licznik zawiera to co jest w pamieci RAM. Nie mozna rozdzielać „Mem usage” i „VM Size”. Po przetłumaczeniu na język polski mamy:

VM Size jest to ilość wyrażona w bajtach, którą dany proces sobie alokuje i ten obszar nie jest dostępny dla innych procesów.
Zabrałem się więc za testy.

System Windows 2000 SP3 był już włączony 38 godzin. Byłem po kilku wizytach w Internecie, więc w tym czasie miałem uruchomione różne aplikacje, m. in.:

  • wpkontakt
  • putty
  • Internet explorer

W czasie normalnej pracy na komputerze, czyli powiedzmy pisanie czegoś w Wordzie czy praca przy stronie internetowej oprócz samego systemu są włączone takie oto aplikacje:

  • Winamp
  • Total Commander
  • MS Word
  • Agent MS (Pomocnik)
  • Internet Explorer
  • Notatnik
  • Menadżer zadań

Zajętość w czasie takiej pracy oscyluje w granicach 120 MB do 150 MB, mowa tutaj oczywiście o liczbie, jaką pokazuje Menadżer zadań w pasku statusu.
Wyjaśnię pierwsze pewną terminologię, która będzie używana w czasie tego artykułu:

Kliknij aby powiększyć, stronicowanie

To co jest na zrzucie ekranu oznaczone jako nr 1 to jest kolumna nazywana Mem Usage. Poszczególne wartości tam podane mówią nam ile dana aplikacja zajmuje w pamięci operacyjnej.

Nr 2 to jest kolumna VM Size – czyli to co właśnie będziemy próbowali określić.

Nr 3 to jest tzw. zajętość pamięci, choć niestety mylnie oznaczana przez sam Menadżer zadań jako Mem Usage, gdyż kolumna oznaczona nr 1 ma taką samą nazwę a bynajmniej te dwie wartości nie są takie same.
Dla przypomnienia mój komputer oferuje 256 MB pamięci a ustawienia w rejestrze są następujące:

  • DisablePagingExecutive – 1
  • IoPageLockLimit – 32768
  • LargeSystemCache – 1
  • NonPagedPoolSize – 256 000
  • PagingFiles – H:\pagefile.sys 1085 1085

Obserwowane procesy:

  1. MS Word (WINWORD.EXE) – edytowane trzy dokumenty, z czego jeden bardzo obszerny, liczył sobie około 150 stron i chyba przez to w tak znacznym stopniu wykorzystywał procesor, który swoją drogą wolny nie jest – Athlon 2200 MHz. Program działał zawsze w tle.
  2. Powłoka (explorer.exe) – zasadniczo nie używany, ale jako składnik systemu warty obserwacji.
  3. Internet Explorer (IEXPLORE.EXE) – program będący po części składnikiem systemu, przypuszczam, że pewnie sobie roboty dokładam, a wam czytania, ale zobaczymy co z tego wyjdzie.
  4. Task Manager (taskmgr.exe) – jako jedyny obserwowany program działający cały czas i cały czas używany oraz, również jako jedyny, działał na priorytecie wyższym niż reszta procesów.
  5. Total Commander (TOTALCMD.EXE) – program ten jednak czasami używałem, ale obserwacja jego zachowania myślę, że jest warta.
  6. Macromedia Fireworks (Fireworks.exe) – w tym programie zrzucałem screeny i dzięki tej aplikacji takbardzo mi spuchła zajętość pamięci.
  7. Corel Draw 9 (coreldrw.exe) – na początku używany by zapchać pamięć, później pozostawiony w stanie „spoczynku”.
  8. WP Kontakt (wpkontakt.exe) – programu ani razu nie przywracałem ze stanu minimalizacji, ale jako aplikacja pamięciożerna jest godna obserwacji.

Faza 1
Zaczynamy zapychać pamięć:

  • uruchamiamy Corel Draw i zaczynamy coś malować, byleby tylko zwiększyć zajętość pamięci
  • uruchamiamy przeglądarkę ACDSee w wersji 4 – program pozostawia jakby agenta egzystującego w pamięci, dzięki czemu nawet po wyjściu (jak się okazuje nie oznacza to zamknięcia aplikacji) z programu w momencie otwierania obrazka, takowy ładuje się błyskawicznie.
  • Sandra – program diagnostyczny, zainteresowanie tym programem skończyło się na jego odpaleniu.
  • Excel – sytuacja wygląda podobnie jak w przypadku Sandry
  • 3DMark03 – analogicznie jak wyżej
  • WPKontakt – to samo co wyżej.

Zrzut ekranu nr 1:

Kliknij aby powiększyć, stronicowanie

Zrzut ekranu przedstawiony na obrazku nr 1 zrobiłem poprzez ustawienie „Zawsze na wierzchu” dla menadżera zadań i jednocześnie w tym momencie robiłem pętle w Corelu.
Obserwacje:

Tabela nr 1:

Kolumna Memory Usage: 126 440 KB
Kolumna VM Size: 110 716 KB
Mem. Usage + VM Size: 237 156 KB
Zajętość pamięci: 184 312 KB

Tabela procesów nr 1:

Proces: Mem. Usage: VM Size:
MS Word: 17 900 KB 18 012 KB
explorer.exe: 2 376 KB 3 068 KB
Internet Explorer: 12 580 KB 10 124 KB
Task Manager: 1 852 KB 672 KB
Total Commander: 4 628 KB 5 868 KB
Corel Draw: 22 680 KB 11 692 KB
WP Kontakt: 12 252 KB 8 324 KB

Faza 2

Zapychamy pamięć dalej:

  • Uruchamiamy Macromedia Firewoks robimy screena z fazy pierwszej.
  • Uruchamiamy Kalkulator systemowy w celu przeliczania zajętości pamięci.

Zrzut ekranu nr 2:

Kliknij aby powiększyć

Zrzut ekranu Menadżera zadań, a co za tym idzie obrazujący dokładnie sytuację zaraz po eksportowaniu obrazu fazy pierwszej.
Obserwacje:

Tabela nr 2:

Kolumna Memory Usage: 185 112 KB
Kolumna VM Size: 154 332 KB
Mem. Usage + VM Size: 339 444 KB
Zajętość pamięci: 232 376 KB

Tabela procesów nr 2:

Proces: Mem. Usage: VM Size:
MS Word: 17 636 KB 17 740 KB
explorer.exe: 2 264 KB 3 056 KB
Internet Explorer: 12 456 KB 9 848 KB
Task Manager: 1 960 KB 672 KB
Total Commander: 4 684 KB 5 904 KB
Fireworks: 55 128 KB 43 564 KB
Corel Draw: 22 748 KB 11 740 KB
WP Kontakt: 12 304 KB 8 336 KB

Faza 3
Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 3:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 3:

Kolumna Memory Usage: 186 136 KB
Kolumna VM Size: 173 692 KB
Mem. Usage + VM Size: 359 828 KB
Zajętość pamięci: 251 828 KB

Tabela procesów nr 3:

Proces: Mem. Usage: VM Size:
MS Word: 17 768 KB 17 880 KB
explorer.exe: 2 792 KB 3 056 KB
Internet Explorer: 12 456 KB 9 848 KB
Task Manager: 1 984 KB 672 KB
Total Commander: 4 684 KB 5 904 KB
Fireworks: 68 044 KB 62 776 KB
Corel Draw: 14 828 KB 11 740 KB
WP Kontakt: 12 304 KB 8 336 KB

Faza 4

Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 4:

Kliknij aby powiększyć,  stronicowanie

Obserwacje:
Tabela nr 4:

Kolumna Memory Usage: 190 620 KB
Kolumna VM Size: 189 200 KB
Mem. Usage + VM Size: 379 820 KB
Zajętość pamięci: 267 448 KB

Tabela procesów nr 4:

Proces: Mem. Usage: VM Size:
MS Word: 17 768 KB 17 880 KB
explorer.exe: 2 832 KB 3 020 KB
Internet Explorer: 12 420 KB 9 804 KB
Task Manager: 2 024 KB 672 KB
Total Commander: 4 684 KB 5 904 KB
Fireworks: 76 944 KB 77 988 KB
Corel Draw: 13 360 KB 12 132 KB
WP Kontakt: 12 304 KB 8 336 KB

Faza 5

Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 5:

Kliknij aby powiększyć, stronicowanie

Obserwacje:

Tabela nr 5:

Kolumna Memory Usage: 178 980 KB
Kolumna VM Size: 204 420 KB
Mem. Usage + VM Size: 383 400 KB
Zajętość pamięci: 282 624 KB

Tabela procesów nr 5:

Proces: Mem. Usage: VM Size:
MS Word: 17 636 KB 17 740 KB
explorer.exe: 2 860 KB 3 020 KB
Internet Explorer: 7 180 KB 9 804 KB
Task Manager: 2 052 KB 672 KB
Total Commander: 2 636 KB 5 904 KB
Fireworks: 86 024 KB 93 416 KB
Corel Draw: 13 708 KB 12 140 KB
WP Kontakt: 7 728 KB 8324 KB

Faza 6
Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 6:

Kliknij aby powiększyć, stronicowanie

Obserwacje:

Tabela nr 6:

Kolumna Memory Usage: 183 528 KB
Kolumna VM Size: 218 744 KB
Mem. Usage + VM Size: 402 272 KB
Zajętość pamięci: 297 068 KB

Tabela procesów nr 6:

Proces: Mem. Usage: VM Size:
MS Word: 17 768 KB 17 880 KB
explorer.exe: 2 944 KB 3 020 KB
Internet Explorer: 7 180 KB 9 804 KB
Task Manager: 2 072 KB 672 KB
Total Commander: 2 636 KB 5 904 KB
Fireworks: 90 300 KB 107 564 KB
Corel Draw: 13 720 KB 12 152 KB
WP Kontakt: 7 736 KB 8 336 KB

Faza 7

Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 7:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 7:

Kolumna Memory Usage: 162 724 KB
Kolumna VM Size: 234 304 KB
Mem. Usage + VM Size: 397 028 KB
Zajętość pamięci: 312 740 KB

Tabela procesów nr 7:

Proces: Mem. Usage: VM Size:
MS Word: 10 992 KB 17 880 KB
explorer.exe: 2 960 KB 3 020 KB
Internet Explorer: 4 612 KB 9 804 KB
Task Manager: 2 096 KB 672 KB
Total Commander: 1 612 KB 5 904 KB
Fireworks: 89 780 KB 123 224 KB
Corel Draw: 12 272 KB 12 152 KB
WP Kontakt: 5 668 KB 8 336 KB

Faza 8
Zapychamy pamięć w dalszym stopniu:

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks.

Zrzut ekranu nr 8:

Kliknij aby powiększyć, stronicowanie

Obserwacje:

Tabela nr 8:

Kolumna Memory Usage: 100 960 KB
Kolumna VM Size: 264 148 KB
Mem. Usage + VM Size: 365 108 KB
Zajętość pamięci: 343 008 KB

Tabela procesów nr 8:

Proces: Mem. Usage: VM Size:
MS Word: 2 780 KB 17 880 KB
explorer.exe: 2 952 KB 3 036 KB
Internet Explorer: 848 KB 9 804 KB
Task Manager: 2 068 KB 672 KB
Total Commander: 464 KB 5 904 KB
Fireworks: 70 588 KB 153 052 KB
Corel Draw: 4 884 KB 12 152 KB
WP Kontakt: 2 184 KB 8 336 KB

Faza 9
Wyłączyliśmy aplikacje, które nam miały pozapychać pamięć.

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks, ale program został otwarty dopiero po zrobieniu zrzutu ekranu.
  • Przy zamykaniu Corela i Fireworksa niestety ale Word wskoczył na pierwszy plan i też konieczne było użycie Total Commandera.

Zrzut ekranu nr 9:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 9:

Kolumna Memory Usage: 25 472 KB
Kolumna VM Size: 74 448 KB
Mem. Usage + VM Size: 99 920 KB
Zajętość pamięci: 149 096 KB

Tabela procesów nr 9:

Proces: Mem. Usage: VM Size:
MS Word: 6 720 KB 17 588 KB
explorer.exe: 3 164 KB 3 004 KB
Internet Explorer: 752 KB 9 804 KB
Task Manager: 1 712 KB 656 KB
Total Commander: 1 992 KB 5 888 KB
Fireworks: Zamknięty.
Corel Draw: Zamknięty.
WP Kontakt: Zamknięty.

 

Faza 10
Włączyłem Excela, zamknąłem dokument Worda, który generował tak duże obciążenie procesora, poprzywracałem wszelkie aplikacje schowane w pasku zadań.

  • Robimy kolejne screeny i zapisujemy je za pomocą programu Macromedia Fireworks, ale program został otwarty dopiero po zrobieniu zrzutu ekranu.

Zrzut ekranu nr 10:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 10:

Kolumna Memory Usage: 65 592 KB
Kolumna VM Size: 80 836 KB
Mem. Usage + VM Size: 146 428 KB
Zajętość pamięci: 146 864 KB

Tabela procesów nr 10:

Proces: Mem. Usage: VM Size:
MS Word: 7 696 KB 17 584 KB
explorer.exe: 2 448 KB 3 008 KB
Internet Explorer: 9 520 KB 9 700 KB
Task Manager: 1 880 KB 668 KB
Total Commander: 3 124 KB 5 856 KB
Fireworks: Zamknięty.
Corel Draw: Zamknięty.
WP Kontakt: Zamknięty.

Faza 11
Kolejny krok polegał na ponownym włączeniu Corela i otworzeniu w nim kilku dużych map bitowych, otwarty też już jest Fireworks, który eksportował dwa zrzuty ekranu.

Co ciekawe otwarcie tych aplikacji wymagało długiego mielenia dysku, system jakby zapomniał, że co dopiero je miał otwarte, jednak odpalenie takiego samego programu po pół minuty praktycznie nie powoduje odczytu dysku.
Zrzut ekranu nr 11:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 11:

Kolumna Memory Usage: 127 252 KB
Kolumna VM Size: 242 260 KB
Mem. Usage + VM Size: 369 512 KB
Zajętość pamięci: 313 320 KB

Tabela procesów nr 11:

Proces: Mem. Usage: VM Size:
MS Word: 2 268 KB 17 584 KB
explorer.exe: 3 492 KB 3 096 KB
Internet Explorer: 1 660 KB 9 700 KB
Task Manager: 2 048 KB 668 KB
Total Commander: 2 952 KB 4 856 KB
Fireworks: 46 996 KB 48 636 KB
Corel Draw: 48 344 KB 114 824 KB
WP Kontakt: Zamknięty.

 

Faza 12
Jedyną tutaj zmianą jest zamknięcie Corela. Obserwujemy, co się dzieje, jak system zarządza pamięcią.
Zrzut ekranu nr 12:

Kliknij aby powiększyć, stronicowanie

Obserwacje:
Tabela nr 12:

Kolumna Memory Usage: 93 828 KB
Kolumna VM Size: 137 332 KB
Mem. Usage + VM Size: 231 160 KB
Zajętość pamięci: 206 924 KB

Tabela procesów nr 12:

Proces: Mem. Usage: VM Size:
MS Word: 2 844 KB 17 580 KB
explorer.exe: 3 724 KB 3 008 KB
Internet Explorer: 1 912 KB 9 700 KB
Task Manager: 2 096 KB 668 KB
Total Commander: 3 064 KB 5 856 KB
Fireworks: 59 688 KB 58 580 KB
Corel Draw: Zamknięty.
WP Kontakt: Zamknięty.

Stronicowanie [Windowsy z rodziny NT] part 2

Spis treści: Stronicowanie Windows NT (Windows XP, 2003)

Click to rate this post!
[Total: 1 Average: 2]

makensis
 
Od 2006 roku Redaktor Naczelny oraz Administrator Tweaks.pl Autor dwóch książek o systemach operacyjnych, szeregu publikacji i porad odnośnie użytkowania komputera. Absolwent Wydziału Elektroniki. Z zamiłowania informatyk, pozycjoner i podróżnik.