IPB

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
> Windows XP - optymalizacja pamięci wirtualnej - wprowadzenie
DawPi™
post 2.04.2007, 17:30
Post #1


valid cue to your things


Grupa: uzytkownik
Postów: 1173
Wiek: 27
Tematów: 521
Dołączył: 13-11 06
Skąd: Kraków
Nr użytkownika: 1



Czym jest pamięć wirtualna i jak działa?
Pamięć RAM w Windows XP

Brak elementarnej znajomości istoty jej funkcjonowania zrodził właśnie wiele sztuczek, które mają podnosić szybkość działania systemu, a w efekcie przynoszą skutek odwrotny do oczekiwań.
32-bitowa architektura naszych komputerów pozwala zaadresować do 4 GB pamięci operacyjnej. Niestety w rzeczywistości mają one znacznie mniej pamięci RAM i co gorsze o wiele mniej niż potrzebują. Brakująca pamięć RAM została zatem rozszerzona o dodatkową przestrzeń na dysku twardym, którą stanowi plik stronicowania lub jak kto woli - plik wymiany.
Oba te elementy - pamięć RAM i plik stronicowania (pagefile.sys) tworzą przestrzeń adresową nazywaną właśnie pamięcią wirtualną.
W systemie Windows XP tylko jądro systemu operuje bezpośrednio na pamięci RAM. Wszystkie inne procesy i aplikacje korzystają w mniejszym lub większym stopniu z pośrednictwa pamięci wirtualnej.
W pamięci RAM przechowywane są dane pozostające aktualnie w użyciu. Jeśli w pamięci RAM nie ma już miejsca, system przerzuca do pliku stronicowania wszystko to, co w danej chwili nie jest konieczne. Tworzy w ten sposób wolne miejsce dla danych bieżących. Jeżeli jakaś aplikacja potrzebuje informacji zawartej w pliku wymiany, jest ona z powrotem przenoszona do obszaru pamięci RAM.
Trzeba mieć świadomość, że plik wymiany znajduje się na tysiąc razy wolniejszym od modułów pamięci RAM dysku twardym. A zatem, przynajmniej teoretycznie, rezygnacja z pliku stronicowania i przeniesienie całej pamięci systemowej do pamięci RAM byłoby rozwiązaniem wielokrotnie przyspieszającym funkcjonowanie systemu. Są tacy, którzy mając tę świadomość, dążą do maksymalnego rozbudowania RAM instalując kolejne kości. Czy jednak rzeczywistość jest zgodna z teorią? - odpowiem nieco później.
Na razie zajmijmy się potrzebami przeciętnych użytkowników i spróbujmy odpowiedzieć na pytanie ile zasobów pamięci RAM minimum potrzebuje nasz komputer.
Wbrew pozorom udzielenie odpowiedzi na to pytanie wcale nie jest proste. Z pewnością wymagane zasoby RAM będą zależeć od "pamięciożerności" aplikacji z jakimi pracujemy, objętości dokumentów oraz liczby programów używanych jednocześnie. Do końca nie jest to jednak prawdą.
Windows XP pracuje w myśl zasady: "Wola pamięć RAM to zmarnowana pamięć". Dlatego niezależnie od zasobów będzie starał się ją maksymalnie wykorzystać, przechowując w jej obszarze zarówno dane aktualnie niezbędne, jak i te które w "jego ocenie" mogą się jeszcze przydać. Wynika z tego, że wysokie wykorzystanie pamięci RAM nie musi oznaczać od razu jej niedoboru.


Wyraźnym sygnałem sugerującym, że pamięci może być za mało będzie natomiast wyraźne spowolnienie pracy systemu. Warto wtedy zajrzeć do Menadżera zadań, który dostarczy niezbędnych informacji o zasobach RAM i ich wykorzystaniu. Menadżera zadań możemy uruchomić kombinacją klawiszy Ctrl+Alt+Delete. Można także kliknąć prawym przyciskiem myszy w wolne miejsce na pasku zadań i wybrać "Menadżer zadań".
Na tym etapie poszukiwaną informację znajdziemy w polu "Pamięć zadeklarowana".
Jeżeli w polu "Razem", całkowita ilość pamięci będąca aktualnie w użyciu, systematycznie przewyższa zasoby zainstalowanej pamięci RAM to wskazane jest dodanie pamięci.
Z przytoczonych rozważań wynika jeszcze jeden istotny wniosek - system zarządzania pamięcią RAM przez Windows wyklucza stosowanie aplikacji odzyskujących RAM w rodzaju MemTurbo czy Ram Optimizer, a ich działanie będzie odwrotne do naszych oczekiwań. System będzie spowalniał pracę aktywnych aplikacji lub wręcz ją uniemożliwiał z chwilą uruchomienia narzędzia optymalizującego RAM, a po zakończeniu jego działania ponownie dążył do maksymalnego wykorzystania RAMu. Przyznacie sami, że takie mielenie danych pozbawione jest sensu. Niestety bardzo często zachęca się do stosowania takich narzędzi, a aplikacje odzyskujące RAM są coraz liczniejsze.
Czas na odpowiedź czy można całą pamięć wirtualną przenieść do obszaru RAM?
Wyeliminowanie pliku stronicowania, nawet przy największych zasobach RAM, nie wyłącza mechanizmu pamięci wirtualnej, a system nie przechodzi do adresowania wyłącznie w zakresie obszaru pamięci RAM. Tak naprawdę do końca nie wiadomo jak wobec takiego ustawienia system się zachowa. Pomimo naszych działań może stworzyć gdzieś plik wymiany, nad którym stracimy wszelką kontrolę. Jeśli nawet go nie stworzy, to prędzej czy później, mało wydajne zarządzanie pamięcią RAM, odbije się na wydajności. Innym problemem jaki może się pojawić jest fakt, że wiele aplikacji wobec braku pliku stronicowania po prostu się nie uruchomi.


Metody ograniczenia zużycia pamięci RAM
Skoro próby odzyskiwania pamięci RAM są nieracjonalne, nasze działania powinny pójść w kierunku ograniczenia jej zużycia. Można to osiągnąć poprzez optymalizację usług domyślnie oferowanych przez Windows XP oraz redukcję innych procesów pracujących w tle.

Konfiguracja usług
Windows XP domyślnie uruchamia w tle liczne usługi. Wśród ich znajdują się jednak i takie, które nigdy nie będą wykorzystane. Mimo to są uruchamiane, niepotrzebnie pochłaniają zasoby procesora i pamięci operacyjnej. Wyłączenie tych procesów może w znacznym stopniu poprawić dynamikę systemu. Powróćmy więc na chwilę do znanego już Menadżera zadań, tym razem na zakładkę Procesy. Spróbujmy obliczyć liczbę aktywnych procesów i pochłaniane zasoby pamięci RAM. Dobrze byłoby wykonać nawet zrzut ekranowy, aby po redukcji usług porównać dane.
Chociaż zamknięcie procesu z poziomu Menadżera zadań jest możliwe nie ma to sensu w odniesieniu do usług. Nawet jeśli zamkniemy proces, który nie ma znaczenia dla stabilnego funkcjonowania systemu to z pewnością pojawi się on ponownie po kolejnym uruchomieniu komputera. Po drugie - identyfikacja usługi na podstawie informacji zawartej w kolumnie "Nazwa obrazu" może prowadzić do poważnego błędu.


Aby skutecznie wyłączyć usługę musimy wejść przez Panel sterowania do Narzędzi administracyjnych, a stąd na Usługi.
Jeżeli uaktywnimy zakładkę Rozszerzony, to po kliknięciu na wybraną usługę otrzymamy dość szeroką informację o jej przeznaczeniu i ewentualnych skutkach wyłączenia.



Jeszcze większy zakres informacji jest dostępny po kliknięciu prawym przyciskiem myszy.
Zakładka Ogólne, poza wspomnianą informacją, pozwoli zlokalizować ścieżkę do pliku wykony- walnego, a zatem bardziej przybliży identyfikację procesu np. SVCHOST.EXE.


Z kolei na zakładce Zależności dowiemy się od jakich składników systemu usługa jest zależna oraz jaki ma wpływ na inne składniki. Wzajemne powiązania są bardzo ważne bowiem rezygnując z jednej usługi możemy stracić dostęp do innych. Jak widać w przypadku Posłańca jego wyłączenie nie pociągnie za sobą innych składników.


Zanim przystąpimy do analizy i redukowania nieprzydatnych usług musimy być świadomi, że system Windows XP nie oferuje funkcji przywracania domyślnych ustawień. Błąd może nas zatem drogo kosztować. Aby uchronić się przed ewentualnymi następstwami takiego zdarzenia namawiam bardzo do wyeksportowania odpowiedniego klucza Rejestru. Dzięki temu, w razie problemów, przywrócimy poprzednią konfigurację w kilka sekund.
Z menu Start wybieramy Uruchom, wpisujemy regedit i akceptujemy OK. Teraz otwieramy klucze:

i zaznaczamy


Z menu Plik Edytora rejestru wybieramy Eksportuj, zaznaczając na dole okna "Wybraną gałąź". Plik z rozszerzeniem .reg zapisujemy na dysku. W przypadku ewentualnego błędu klikamy na niego dwukrotnie i domyślne ustawienia zostają przywrócone.
Jak z pewnością zauważycie w odniesieniu do usług spotykamy trzy typy uruchomienia, za pomocą których można określić czy i kiedy dana usługa ma wystartować. Automatyczny - usługa startuje przy każdym uruchomieniu systemu niezależnie od tego czy jest potrzebna. Dla poprawnego funkcjonowania systemu szereg usług musi pracować w tym trybie.

Ręczny - usługa może być uruchamiana wyłącznie przez użytkownika, w sytuacji gdy będzie jej potrzebował. Niektóre usługi wbrew opinii Microsoft'u uruchamiają się jednak same gdy są potrzebne.

Wyłączony - usługa nie uruchomi się nawet wówczas gdy będzie potrzebna. W przypadku stuprocentowej pewności, że jest zbędna można wybrać ten tryb. W razie błędu mogą powstać problemy ze stabilnością systemu.


Lokalizacja pliku stronicowania i jego rozmiary
Zdecydowana większość komputerów domowych pracuje na platformie jednodyskowej.
W takiej sytuacji plik stronicowania powinien znajdować się na partycji systemowej, gdzie domyślnie jest zlokalizowany. Dzięki temu, najczęściej wykorzystywane pliki systemowe i plik wymiany znajdują się blisko siebie, a długość skoków głowicy ulega znacznemu skróceniu. Przyznając sens takiemu uzasadnieniu warto jednak zauważyć, że w przypadku częstego sięgania do pliku wymiany oraz danych, odczyt z dysku jest utrudniony, gdyż głowica musi bardzo często zmieniać położenie i przemieszczać się między różnymi obszarami.
Gdyby plik wymiany zlokalizować na innym dysku, to mielibyśmy do czynienia z równoległym dostępem do pliku wymiany i odczytem danych, a dzięki temu system pracowałby z większą prędkością. Kto jednak dysponuje pojedynczym dyskiem, musi się z tą minimalną stratą pogodzić.
Użytkownicy komputerów z więcej niż jednym dyskiem twardym mogą skorzystać ze swoich możliwości sprzętowych i rozłożyć operacje wejścia/wyjścia, generowane wymianą danych między plikiem stronicowania a pamięcią RAM, przez umieszczenie pliku stronicowania na drugim, a nawet na kilku dyskach. Podejmując taką decyzję trzeba jednak spełnić dwa warunki:

* plik stronicowania powinien być umieszczony na najszybszym urządzeniu, a zatem drugi dysk twardy (lub kolejne) nie mogą być wolniejsze od systemowego
* na dysku systemowym należy pozostawić plik stronicowania o rozmiarze minimalnym około 2 MB dla uniknięcia ewentualnych problemów ze stabilnością systemu

Warto przy tej okazji zasygnalizować, że wysoce niewskazane jest umieszczanie kilku plików stronicowania na jednym dysku twardym. Windows XP w zasadzie potrafi je obsłużyć ale brak w tym logiki.
Podobnie nielogiczny jest z kolei domyślny sposób określania wielkości pliku stronicowania przez system, oparty na schemacie 1,5 x RAM.
W ten sposób użytkownik, który dysponuje skromnymi zasobami RAMu i potrzebuje znacznego pliku wymiany dla zapewnienia optymalnej pamięci wirtualnej będzie miał mały plik stronicowania, a rekiny RAMu - cały ocean nieprzydatnej pamięci wirtualnej. Dobrze jest zatem, szczególnie w tych krańcowych przypadkach, samemu określić wielkość pliku stronicowania. Pomocnym narzędziem będzie Menadżer zadań, który pozwoli nam określić maksymalne zapotrzebowanie pamięci, z jakim mieliśmy do czynienia podczas testowej sesji. Zwiększając ją o 10 - 15% ustalamy wartość początkową. Wartość maksymalna powinna być w przybliżeniu nawet dwukrotnie większa.
Pomimo oczywistego błędu, informacja o zalecanej wielkości pliku stronicowania nie została jak dotąd zmodyfikowana i nadal można ją znaleźć w dziale pomocy technicznej.


Jeżeli korzystamy z funkcji szybkiego przełączania użytkowników trzeba to uwzględnić. System musi mieć odpowiednio dużo pamięci aby zapisać ustawienia pierwszego i stworzyć miejsce dla drugiego. W takiej sytuacji początkowy rozmiar pliku stronicowania może pozostać bez zmian, ale rozmiar maksymalny powinien być zwiększony.

Czy plik stronicowania może mieć sztywną wartość?
Jako dobrą radę na poprawę szybkości działania systemu podaje się często, że najlepiej jest określić wielkość pliku stronicowania tak, aby jego wartości minimalna i maksymalna były identyczne. Zalecenie takie uzasadnia się ograniczeniem fragmentacji pliku stronicowania. Analizując zjawisko dokładniej, takie ustawienie nie wydaje się jednak uzasadnione.


Plik stronicowania rzeczywiście może ulec fragmentacji podczas rozszerzania jego wielkości na potrzeby systemu. Widać to dobrze na rysunku powyżej, gdzie obszar pliku stronicowania jest oznaczony kolorem żółtym. Trzeba jednak wiedzieć, że system szuka dla pliku stronicowania jak największych bloków wolnej przestrzeni na dysku, a zatem faktyczna fragmentacja nie stanowi poważnego problemu. Zapobieżenie stosunkowo niskiej fragmentacji jest niewielkim zyskiem w porównaniu do zagrożenia, jakim może być utrata stabilności systemu.
Jeżeli minimalna i maksymalna wielkość pliku stronicowania będą takie same, a system będzie potrzebował większego pliku, to w chwili gdy wykorzysta 90% dostępnej pamięci wyśle ostrzeżenie, a gdy rezerwa okaże się za mała - zakończy pracę niebieskim ekranem.

Uzupełnienie
Na ile jednak problem fragmentacji pliku stronicowania jest poważny skoro się go sygnalizuje?
Zabierając się do zbadania tej kwestii dokonałam totalnego zamieszania na partycji systemowej, po którym stopień fragmentacji plików spowalniał ich odczyt o ponad 40%, a mój Diskeeper wysłał komunikat ostrzegawczy.


kutkiem totalnego bałaga nu była także fragmentacja pliku stronicowania, gdyż system nie dysponował odpowiednio dużymi i wol- nymi przestrzeniami na dysku.
Z przerażeniem stwierdzi- łam, że został on podzielony aż na 275 fragmentów. Restart systemu, po którym plik wymiany powi-
nien zostać zregenerowany dał bardzo niewiele.
Z pewnością nie wszyscy wiedzą, że plik stronicowania jest takim specyficznym tworem, którego praktycznie nie da się scalić systemowym narzędziem do defragmentacji. Nie podołał temu także Diskeeper pracujący pod systemem Windows.
W konsekwencji tych zabiegów, pomimo zdefragmentowania partycji systemowej, mój plik stronicowania nadal pozostał w rozsypce.


System File Defragmenter - bo o nim mowa, po rozpakowaniu i uruchomieniu wyświetla informację o aktualnym stopniu fragmentacji plików systemowych. Wybierając opcję "Defragmentuj przy następnym uruchomieniu" restartujemu komputer. Aplikacja przystępuje do pracy przed załadowaniem składników systemu i wykonuje defragmentację. Po zakończeniu jej działania system uruchamia się automatycznie. Proces trwa około 2 minut i zdecydowania warto je poświęcić. Odradzam natomiast zaznaczanie opcji "Defragmentuj przy każdym starcie" bo w końcu wiele zabiegów, które wykonujemy ma przyspieszać rozpoczęcie pracy. Od czasu do czasu warto jednak sprawdzić co dzieje się na dysku, a przede wszystkim nie dopuszczać do takiego totalnego zamieszania. Z działaniem aplikacji może wiązać się jeden problem, który grozi pojawieniem się "niebieskiego ekranu". Nastąpi to wówczas, gdy ilość dostępnego miejsca na dysku jest zbyt mała aby przenieść i scalić plik stronicowania. Mam jednak nadzieję, że zdecydowana większości do tego nie dopuści.
Zdaje sobie sprawę, że tym doświadczeniem sporo namieszałam, bo przecież wszystko wydawało się takie oczywiste. Spróbujmy zatem to uporządkować:
- z podzielonym plikiem wymiany swobodnie da się pracować, a spowolnienie działania aplikacji praktycznie będzie niezauważalne
- zdecydowanie odradzam tworzenie sztywnego pliku wymiany chyba, że taka zmiana zakończy się jakimś wyraźnie odczuwalnym sukcesem, a wielkość utworzonego pliku nie spowoduje załamania systemu
- przy intensywnej pracy z wieloma aplikacjami warto częściej sięgać do defragmentacji i od czasu do czasu pomóc w tym także plikowi stronicowania.


Własna wielkość pliku stronicowania
Aby określić własną wielkość pliku stronicowania należy z menu "Mój komputer" wybrać - "Właściwości".


Na zakładce "Zaawansowane" - wybrać "Wydajność" i kliknąć na "Ustawienia", a następnie przejść na zakładkę "Zaawansowane" i w obszarze "Pamięć wirtualna" kliknąć na "Zmień".
Teraz wystarczy wpisać prawidłowo dobrane wartości i zaakceptować je klikając na "Ustaw".
Problem ewentualnej rezygnacji z pliku stronicowania omówiłam na poprzedniej stronie.


Inne ustawienia pamięci wirtualnej i pliku stronicowania

W domyślnych ustawieniach parametry pamięci wirtualnej, poza przypadkami omówionymi wyżej, są dobrane w miarę optymalnie. Opcje ustawień pozwalają jednak na dokonanie pewnych modyfikacji, a zatem wypadałoby odpowiedzieć na pytanie - czy warto?

Przydzielanie zasobów
Na zakładce "Zaawansowane" w polu "Użycie pamięci" można zdefiniować, w jaki sposób system ma przydzielić zasoby pamięci operacyjnej.


Zmiana domyślnych ustawień bardzo często pojawia się jako porada na zwiększenie szybkości działania syste mu. Niestety w warunkach domowych zmiana tej wartości wywołuje bardzo niekorzystny efekt. Należy pamiętać, że nasz komputer pracuje wtedy jako stacja robocza. Przy zaznaczeniu opcji "Bufor systemu" zostanie przy-
dzielone procesom systemowym aż 80% pamięci operacyjnej, natomiast aplikacje z którymi pracujemy dostana tylko 20%. Trudno w takim przypadku mówić o zwiększeniu szybkości pracy, a ustawienie to ma sens tylko wówczas gdy nasz komputer pracuje jako serwer.

Czyszczenie pliku stronicowania przy zamykaniu systemu
To kolejny element, któremu czasami mylnie przypisuje się zwiększenie wydajności systemu. Być może wynika to z nieświadomości faktu, że przy każdym uruchomieniu tworzony jest zupełnie nowy plik stronicowania. Włączenie tej opcji zdecydowania wydłuża czas zamknięcia systemu, który zmuszony jest wykonać o tę jedną operację więcej. Po co więc ja przewidziano?
Czyszczenie pliku stronicowania może mieć znaczenie dla bezpieczeństwa gdyż wymazanie pliku wymiany nie pozwoli odczytać nikomu danych, jakie były w nim przechowywane podczas ostatniej sesji. Komu zatem zależy na takim rozwiązaniu może uaktywnić tę funkcję zmieniając domyślne ustawienia. Tym razem trzeba będzie niestety zajrzeć do Rejestru.
Rozwijamy gałąź:

po czym w prawym oknie poddajemy edycji wartość:

Aby włączyć czyszczenie pliku stronicowania wartości DWORD przypisujemy liczbę 1.

Wyłączenie stronicowania plików wykonywalnych
Elementy jądra systemu oraz sterowników urządzeń dzielą się na takie, które bezwzględnie muszą być przechowywane w obszarze pamięci RAM oraz na takie, które mogą być przechowywane w pliku wymiany. Niewielkie przyspieszenie systemu można uzyskać wymuszając ich lokalizację tylko w pamięci RAM.
Niestety komputery nie dysponujące odpowiednimi zasobami RAM - minimum 512 MB - mogą okazać się niestabilne. Próby takiego rozwiązania nie może zatem ryzykować każdy.
Aby ja podjąć musimy ponownie skorzystać z Rejestru i rozwinąć dokładnie tę samą gałąź jak przedstawiona powyżej. Tym razem edycji musimy poddać wartość:

przypisując wartości DWORD liczbę 1.

autor: nieznany


--------------------
www.IPSlink.pl - profesjonalne rozwiązania Invision Power Board, support IPB, PL ACP
www.supportIPB.com - support for opartych na IPB

kontakt:
GG: 7129
e-mail: biuro@ipslink.pl | ipb@ipbsupport.org | ipb@supportipb.com

założyciel webMe.pl - tatuś ;)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



- Wersja Lo-Fi Aktualny czas: 22.05.2012 - 6:11

Polecane strony:

mapa forum