Pamięć wirtualna i plik wymiany
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. Bardzo ciekawe rozwiązanie lokalizacji pliku stronicowania, eliminujące jednocześnie problem fragmentacji pliku nadesłał Luki. A oto Jego komentarz: "dla pliku wymiany zakładamy specjalną partycję o odpowiedniej wielkości (np. 1-2GB) jako następną partycję systemową na tym samym dysku lub ewentualnie jako pierwszą na kolejnym dysku pod warunkiem, że jest tak samo szybki. Partycję najlepiej sformatować jako FAT32. W ten sposób unikamy fragmentacji pliku wymiany oraz likwidujemy ryzyko ze zabraknie dla niego miejsca. Sposób ten jest powszechnie wykorzystywany w przypadku serwerów MS 2k/2k3. Aby dodatkowa partycja (tylko dla pliku stronicowania) nie mieszała się nam z innymi użytecznymi partycjami nadajemy jej np. literę Z, a dla odróżnienia od innych nazwę SWAP." Dodam od siebie, że warto zrobić jeszcze jeden krok i ustawić partycję SWAP jako pierwszą na dysku, a dopiero drugą systemową ustawić jako aktywną. Lepiej już chyba nie można. 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.