Optymalizacja pliku pamięci wirtualnej


Pamięć wirtualna to suma pliku wymiany (stronicowania) + zainstalowany fizycznie RAM. Plikiem wymiany jest pagefile.sys – ukryty i chroniony przez system, znajdujący się na dysku twardym, gdzie dane nie mieszczące się w pamięci RAM mogą być zapisane i pobierane w razie potrzeby. Dostęp do danych zapisanych w tym pliku jest znacznie wolniejszy niż z pamięci RAM. Dlatego w komputerach które intensywnie korzystają z tego pliku, jedynym sposobem poprawienia wydajności jest dołożenie fizycznej pamięci RAM.
Ustawienia pliku wymiany dokonujemy w:
Panel sterowania –> System (lub PPM na Mój Komputer –> Właściwości) –> Zaawansowane –> Wydajność –> Ustawienia –> Zaawansowane –> Pamięć wirtualna –> Zmień

Lokalizacja
najlepszą lokalizacją dla pliku wymiany jest zdefragmentowany, z pewną ilością wolnego miejsca i najszybszy dysk / partycja.
1 dysk – cały plik pozostawiamy domyślnie na partycji systemowej (nie dzielimy go na części na różnych partycjach tego samego dysku, co obniży wydajność)
2 dyski – lokalizujemy plik na dysku bez plików systemu, na pierwszej z kolei partycji o stosownym rozmiarze (pierwsza partycja jest zawsze najszybsza). Ale tutaj należy jednak pozostawić minimalny plik wielkości 2MB na dysku systemowym, ponieważ czasem system jest skłonny ignorować ustawienia, informując o braku pliku wymiany lub utworzy klon o niekontrolowanym rozmiarze właśnie na dysku systemowym.
Skutecznym rozwiązaniem jest także podział pliku na części znajdujące się na kilku dyskach (nie partycji na jednym dysku!) – dzielimy rozmiar początkowy przez ilość tworzonych plików wymiany.

Wielkość pliku
Plik wymiany może mieć rozmiar dynamiczny lub statyczny. Ustawienie statycznego rozmiaru o sztywnej wartości (rozmiar początkowy = rozmiar maksymalny) likwiduje problem fragmentacji, lecz w razie niewłaściwego doboru rozmiaru możemy narobić sobie kłopotów. Dlatego lepszym rozwiązaniem jest rozmiar dynamiczny. W tym przypadku rozmiar początkowy powinien być tak ustawiony, aby zaspokoił normalne potrzeby systemu, co ograniczy ciągłe zmiany wielkości i pozwoli ograniczyć fragmentację. Rozmiar maksymalny również powinien być o odpowiedniej wielkości na wypadek nieprzewidzianych okoliczności, jak nieoczekiwane otwarcie bardzo dużego pliku do edycji. W momencie większego zapotrzebowania system powiększy plik, który przy restarcie skurczy się.

System domyślnie ustawia rozmiar początkowy jako 1.5 x RAM a rozmiar maksymalny jako 3 x RAM. Jest to teoretyczna ogólna wartość, która w praktyce się nie sprawdza, ponieważ ci z małą ilością RAM uzyskają mniejszy plik niż ci z dużą ilością RAM, a powinno być odwrotnie. System z małą ilością RAM naturalnie będzie korzystał intensywnie z pliku wymiany, który przy tym sposobie liczenia jest za mały. Z kolei system posiadający dużą ilość pamięci RAM nie potrzebuje tak dużego pliku wymiany, ponieważ ładujące się aplikacje zmieszczą się w szybkiej pamięci RAM.

Ogólne zalecenia dla komputera do normalnej pracy – posiadając do 512 MB RAM na Windows XP / do 1 GB RAM na Vista/7 możemy zacząć ustalać rozmiar pliku wymiany na podstawie domyślnych ustawień. Jeśli mamy powyżej 512 MB RAM na XP / powyżej 1 GB na Vista/7 jako rozmiar początkowy możemy zacząć ustawiać jako połowę RAM przy pozostawieniu rozmiaru maksymalnego jako potrójność RAMu, tak na wszelki wypadek.
Zbyt niski rozmiar powoduje przy wyczerpaniu znaczące obniżenie wydajności – zacinanie, długie oczekiwanie na odpowiedź, a w ostatniej fazie pojawienie się komunikatu o zbyt małej ilości pamięci.

virtuallow.png

Po tym komunikacie sprawcza aplikacja powinna zostać automatycznie zamknięta. Jeżeli zapotrzebowanie na pamięć będzie duże i powyżej ustawionej wartości maksymalnej, system nie pozwoli uruchomić zadnej aplikacji.

virtualmemory1.jpg virtualmemory2.jpg

Przy dużej ilości pamięci RAM domyślne ustawienia są wygórowane i powodują marnotrawstwo miejsca na dysku, a przy ogromnym pliku także spowalnia system, ponieważ odczyt z dysku jest wolniejszy.

Czy można wyłączyć plik wymiany, gdy posiadamy dużo RAMu?
Całkowite wyłączenie pliku wymiany nie jest zalecane, ponieważ kilka składników systemu, a także niektóre programy, wręcz wymagają tego typu pamięci, nawet jak nie będzie aktywnie wykorzystywana. Dlatego zamiast całkowitego wyłączania ustawiamy mały plik o rozmiarze początkowym 2 MB (16 MB w Windows 7).

Jednak to wszystko teoria, a rozmiar pliku zależy od sposobu wykorzystania komputera i powinien być indywidualnie dobierany dla każdego komputera. Komputer do korzystania z internetu a komputer do edycji multimediów to przepaść w wykorzystywaniu pamięci. Ten drugi wymaga ustawienia większego pliku wymiany.
Aby realnie obliczyć potrzebny rozmiar pliku wymiany, konieczne jest monitorowanie jego zużycia podczas codziennego korzystania z komputera. Najprościej wykorzystać możemy Menedżer zadań –> zakładka Wydajność (wartości są w KB; aby przeliczyć na MB dzielimy przez 1024).
Do analizy przydatne są dwa wskaźniki:

  • Pamięć zadeklarowana
    – Razem: suma używanej pamięci fizycznej + wirtualnej przez system; jest to pierwsza liczba w prawym dolnym rogu Managera zadań. Jeśli wielkość jest powyżej zainstalowanego RAMu, polecane jest jej dołożenie.
    – Limit: maksymalny rozmiar dostępnej pamięci: fizycznej RAM + plik wirtualny; jest to druga liczba w prawym dolnym rogu Managera zadań
    – Szczyt: maksymalna ilość pamięci fizycznej i pliku wirtualnego używana w tej sesji od ostatniego resetu komputera. Jeśli wartość ta regularnie zbliża się do wartości Limit jest to znak że system potrzebuje więcej pamięci i wtedy należy powiększyć plik pagefile.sys lub dokupić RAM.

  • Pamięć fizyczna
    – Razem – Ilość fizycznej pamięci RAM zainstalowanej w komputerze
    – Dostępne – Ilość fizycznej pamięci RAM, która jest przeznaczona dla aplikacji zanim nastąpi przełączenie do pliku pamięci wirtualnej. Jeżeli aplikacja będzie mieć wyższe wymagania niż ustalony tutaj limit system przeniesie jej część do pliku stronicowania.
    – Bufor systemu – Ilość fizycznej pamięci RAM, którą system używa na przechowywanie danych ostatnio otwartych programów i dokumentów

Analizując te dwa wskaźniki można przewidzieć wielkość pliku wirtualnego

  • Zadeklarowana Szczyt jest poniżej Fizycznej to komputer działa komfortowo, nie wykorzystuje intensywnie pliku wymiany, którego rozmiar można obniżyć.

    virtualmemory3.jpg

  • Zadeklarowana Szczyt regularnie zbliża się do Fizycznej lub nieco ją przekracza – tutaj można zwiększyć rozmiar pliku
  • Zadeklarowana Szczyt oraz Zadeklarowana Razem systematycznie i znacznie przewyższa zasoby zainstalowanej pamięci Fizycznej RAM – komputer całkowicie zależny od pliku pamięci wirtualnej, który jest intensywnie wykorzystywany, spadek wydajności, niestabilność, zawieszki. Aby zwiększyć wydajność trzeba dołożyć RAM.

    virtualmemory4.jpg

Bardziej profesjonalną metodą i dla administratorów jest skorzystanie z konsoli mmc, gdzie możemy stworzyć indywidualną konsolę tylko do kontroli pliku wymiany.
Wybieramy: Start –>Uruchom –> mmc
Z menu Plik –> Dodaj/Usuń przystawkę –> klikamy button Dodaj –> Formant ActiveX –> Dodaj.

virtualmemory5.jpg

Uruchomi się kreator, w którym wybieramy Wszystkie kategorie, a w Typ formatu wybieramy System Monitor Control / Formant monitora systemu.

virtualmemory6.jpg

Dalej wybieramy nazwę dla naszej konsoli (np. monitor pliku wymiany), zamykamy okno dodawania przystawek i kończymy pracę kreatora klikając OK.
Otrzymamy nową pozycję w drzewie konsoli, którą podświetlamy i z prawokliku wybieramy opcję Dodaj liczniki co uruchomi okno z opcjami (lub klikamy znak plusa + na toolbarze). W sekcji Obiekt wydajności z rozwijalnej listy wskazujemy Paging file / Plik wymiany / Plik stronnicowania. Ustawiamy wszystkie możliwe liczniki poprzez wybranie opcji Wszystkie liczniki. Finalnie klikamy Dodaj i OK.

virtualmemory7.jpg

Przystawkę należy zapisać Plik –> Zapisz jako –> wprowadzamy dowolną nazwę ale o rozszerzeniu *.msc, np.: pagefile.msc. Zapisując domyślnie w Narzędzia Administracyjne konsola będzie dostępna z Menu Start a jeśli w C:WINDOWSsystem32 możemy ją uruchamiać bezpośrednim poleceniem: Start–> Uruchom –> pagefile.msc
Aby dostać wiarygodny odczyt konsola powinna działać trochę czasu na wysokim obciążeniu. Wyniki można oglądać na trzy sposoby, przełączając widok przyciskami z toolbaru. Widok histogramu pokazuje wizualne wykorzystanie: czerwony Bieżące zużycie, a zielone Szczytowe zużycie. Jest to odpowiednik Pamięć zadeklarowana w Menedżer zadań. Przy intensywnym wykorzystywaniu pliku wymiany Szczytowe zużycie będzie wysokie. Tutaj im mniejsza wartość tym lepiej – przy niskim % wykorzystania możemy obniżyć rozmiar pliku wymiany. Wartość ta nie powinna jednak przekroczyć 50% – przy wyższym system zacznie mniej wydajniej pracować, a a osiągnięcie 90% to wykrzykniki, wszystko to kierujące na rozwiązania: podwyższyć rozmiar pliku pagefile.sys a raczej dokupić RAM.

virtualmemory8.jpg

Windows 7
tutaj również możemy skorzystać z Menedżera zadań. Jeśli wartość Wolna (ilość pamięci dostępna dla aplikacji) w sekcji Pamięć fizyczna zbliża się do zera, oznacza to że systemowi brakuje pamięci RAM. Wartość Buforowana (ilość pamięci RAM przeznaczona na przechowywanie używanych aplikacji) w sekcji Pamięć fizyczna jest mniejsza niż połowa wartości Razem – system nie jest w stanie zapisać w pamięci wystarczającej ilości danych, co skutkuje mniejszą efektywnością pracy. Musimy zwiększyć rozmiar pliku wymiany.
Bardziej profesjonalnie jest wykorzystać nowe narzędzie Monitor wydajności. Klikamy menu start, wpisujemy słowo „wydajności’, a w wynikach wybieramy Monitor wydajności. Teraz klikamy prawym przyciskiem myszy w dowolnym miejscu w oknie Monitora i wybieramy Dodaj liczniki. Możemy kliknąć także ikonę plusa. Wybieramy licznik „Plik stronicowania”.

Można również skorzystać ze skryptu (wkleić do notatnika i zapisać jako plik *.vbs)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")

Set colPageFiles = objWMIService.ExecQuery("Select * from Win32_PageFileUsage")

For Each objPageFile in colPageFiles
Wscript.Echo "Opis: " & objPageFile.Description
Wscript.Echo "Lokalizacja: " & objPageFile.Name
Wscript.Echo "Data instalacji: " & objPageFile.InstallDate
Wscript.Echo "Rozmiar początkowy: " & objPageFile.AllocatedBaseSize
Wscript.Echo "Aktualne wykorzystanie: " & objPageFile.CurrentUsage
Wscript.Echo "Najwyższe wykorzystanie: " & objPageFile.PeakUsage
Next

Uruchomiony skrypt zapoda nam kilka okienek, gdzie ważny Peak Usage (Najwyższe wykorzystanie). Interpretacja taka sama:
– Peak Usage o niskiej wartości może świadczyć o posiadaniu za dużego pliku pagefile.sys
– Peak Usage o wysokiej wartości równej lub większej rozmiarowi początkowemu pagefile.sys świadczy o intensywnym wykorzystaniu pliku pagefile.sys, który najprawdopodobniej jest za mały. Wówczas wskazana tutaj liczba powiększona o 10-15% stanowi punkt wyjściowy pod rozmiar początkowy pliku, zaś jego rozmiar końcowy przemnożony 2x.

Czyszczenie pliku wymiany”
Jest to zabieg pod kątem zabezpieczeń, ponieważ oczyszcza plik wymiany, który przechowuje pliki z którymi pracowaliśmy np. hasła. Oczyszczanie powoduje dłuższe zamykanie się systemu.

włączenie (wkleić do notatnika i zapisać jako plik z rozszerzeniem .reg)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management]
"ClearPageFileAtShutdown"=dword:00000001

wyłączenie

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management]
"ClearPageFileAtShutdown"=dword:00000000

Defragmentacja
dynamiczny rozmiar powoduje defragmentację pliku, co obniża wydajność. Aby zdeframentować plik możemy tymczasowo go wyłączyć wybierając opcję „Bez pliku stronnicowania” (w przypadku 1 dysku) lub przenieś go na inny dysk – ustawiamy ten plik na drugim a na pierwszym w obu polach jako rozmiar wpisujemy zero (gdy mamy kilka dysków). W obu przypadkach restartujemy komputer –> wykonujemy defragmentację partycji systemowej –> ponownie aktywujemy plik na oartycji systemowej –> restart kompa.
Innym sposobem jest defragmentacja z płyty BartPE z wtyczką defragmentatora JKDefrag lub skorzystanie z aplikacji, która ma możliwość pracy przed startem systemu.



Tags:
4 komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *