home
CZYM JEST PAMIĘĆ WIRTUALNA




Jak ustalić wielkość SWAP? To najczęściej zadawane pytanie prze użytkowników komputerów. Bardzo znanym schematem było trzymanie się dosyć prostego i logicznego równania, gdzie początkowy rozmiar pliku wymiany równał się ilość posiadanej fizycznie pamięci RAM x 1,5, zaś rozmiar maksymalny pliku równał się ilość posiadanej fizycznie pamięci RAM x 3. Jest to dosyć duże uproszczenie, choć wciąż oficjalnie popierane przez Microsoft. Moim zdaniem schemat ten należy znacznie rozwinąć i nie jest to takie proste jakby mogło się wydawać. Wszystko bowiem zależy od tego, do jakich celów wykorzystujemy nasz komputer. I tak, ktoś kto używa komputera jako „maszyny” do prac biurowych, edytora tekstu, przeglądania Internetu, wszelkiego rodzaju komunikatorów, ma inne zapotrzebowania niż osoba która na co dzień używa swojego komputera do grania, obróbki plików multimedialnych, przetwarzania danych, projektów przestrzennych, itp., dodatkowo dochodzi jeszcze mnogość konfiguracji sprzętowej co w znacznym stopniu komplikuje cale zagadnienie. Wiadomo też, że komputer wyposażony w 256MB Ram’u praktycznie na każdym kroku potrzebuje dużego pliku wymiany, z kolei komputer wyposażony w 1GB Ram’u praktycznie nie korzysta z pliku wymiany. Nie jest to jednak żelazna reguła, bowiem zdarzają się sytuacje w których jest zgoła odwrotnie, co po raz kolejny świadczy o tym iż określenie rozmiaru Swap’a nie jest wcale takie proste. Co więc począć, czym się kierować w przypadku ustalania rozmiaru pliku wymiany? Otóż, zasada niby jest prosta, mianowicie im trudniejsze zadanie, tym większe zapotrzebowanie na pamięci. Podsystem zarządzania pamięcią Windows jest tak skonstruowany, że plik wymiany jest magazynem na dane, a wszystkie dane na których operuje procesor muszą znajdować się w pamięci fizycznej Ram. Zanim procesor przetworzy dane znajdujące się w pliku wymiany, system musi najpierw przenieść je do pamięci, co trwa dość długo. Ten magazyn choć bardzo przydatny jest niesamowicie powolny w porównaniu z fizycznym Ram’em. Podczas dużego obciążenia podsystemu pamięci systemu stara się jak najwięcej danych z Ram’u przenieść do Swap’a. Takie zachowanie jest doskonale widoczne, kiedy jakiś proces zajmuje kilkaset MB pamięci np. gra. Gdy już zabraknie miejsca w pamięci fizycznej, np. na skutek uruchomienia kolejnej aplikacji, system postara się przenieść jak najwięcej danych do pliku wymiany, a część zostanie po prostu usunięta (system pozostawi tylko odpowiednie znaczniki). Automatycznie przenoszone do Swap’a są dane, który w czasie działania aplikacji zostały zmodyfikowane, a potem przez pewien czas nie były używane. Nasuwa się tu kilka wniosków, system powinien mieć plik wymiany nie mniejszy niż wielkość Ram’u. Przynajmniej dla komputerów z pamięcią mniejszą niż 256 MB. Pozwoli to na w miarę swobodne korzystanie z dobrodziejstw pliku wymiany i nie "rozepchnie" zanadto Swap’a; ustawienie minimalnej wielkości pliku wymiany, jako wielokrotnie większą niż Ram mija się z celem, gdyż systemowi trudno będzie taki plik efektywnie wykorzystać. Różnice w szybkości odczytu danych są zbyt duże, aby można je było zignorować; wszystko zależy od tego, ile pamięci fizycznej posiada i do jakich celów wykorzystywany jest komputer. Nie ma sensu powiększać Swap’a do zbyt dużych rozmiarów, jeżeli nie grasz w wymagające gry lub nie pracujesz przez wiele godzin z wymagającymi aplikacjami. Fakty i mity Często spotykanym stwierdzeniem jest to iż plik wymiany jest niezbędny. To nieprawda, że system działa lepiej gdy ma dużo pamięci (powyżej 512 MB), a plik wymiany zostanie wyłączony. Osoby polecające taki sposób optymalizacji, twierdzą słusznie, że pozwala to uniknąć czasochłonnego przenoszenia dużej części danych do i z pliku wymiany, wszystkie dane znajdujące się w pamięci Ram są o wiele szybciej przetwarzane. Jednak zapominają o kilku ważnych sprawach. System, który nie ma pliku wymiany musi przechowywać o wiele więcej danych w pamięci operacyjnej. To co normalnie znalazłoby się w pliku wymiany musi znaleźć się albo w Ram’ie, albo zostać usunięte z podsystemu pamięci. W efekcie, łatwo uzyskać efekt odwrotny do zamierzonego i wydajność spadnie. Nowe aplikacje, nie będą miały miejsca w pamięci. System będzie musiał usunąć wiele danych potrzebnych do sprawnej pracy innych aplikacji, aby uruchomić kolejny proces. Powstanie niesamowite zamieszanie. Te dane, które normalnie byłyby cały czas pod ręką w pliku wymiany, teraz trzeba ciągle doczytywać z dysku. Jak już zostało powiedziane, plik wymiany ma kilka cech, które dają mu przewagę nad takim rozwiązaniem. Gdy obciążenie systemu znacznie wzrośnie, podsystem pamięci musi się nieźle napracować, żeby utrzymać stabilność i jako taką szybkość działania poszczególnych programów. Możliwa jest sytuacja, w której zabraknie wolnej pamięci, a na pewno do tego dojdzie, jeżeli nie masz min. 2-4 GB Ram’u. Wówczas system nie będzie miał dostępu do dodatkowej przestrzeni w postaci pliku wymiany, co w efekcie gwarantuje nam zatrzymanie całego systemu. Pamiętajmy o tym, że aplikacje mają coraz większe wymagania względem sprzętu. moment, w którym nasz system nie da sobie rady bez Swap’a, to tylko kwestia czasu. Duża grupa aplikacji została tak napisana, aby korzystać z dobrodziejstw pliku wymiany. Jego nieobecność może powodować zakłócenia w ich działaniu. Wiele programów rezerwuje sobie pewną przestrzeń adresową, której nigdy nie wykorzystuje. Z reguły jest to przestrzeń pliku wymiany. Jeżeli nie ma pliku wymiany obciążona zostaje pamięć. W normalnych zastosowaniach domowych nie ma co próbować nawet wyłączać pliku wymiany. Chyba, że posiadasz minimum 512 MB, a jedynymi aplikacjami jakie używasz są, przeglądarka internetowa, komunikator, edytor tekstu, i gry typu pasjans. Kolejnym stwierdzeniem często spotykanym jest to, że początkowy rozmiar pliku stronicowania nie powinien być równy jego maksymalnej wielkości, a to z obawy przed fragmentacją pliku wymiany. To nie do końca jest tak, otóż szczegół tkwi w tym, że w momencie, w którym zabraknie miejsca tak w pamięci Ram, jak i pliku wymiany, mamy „zwis” systemu, zatem rozmiar maksymalny stanowi w pewnym sensie zawór bezpieczeństwa i nawet, jeśli system nie wykorzystuje minimalnej wielkości pagefile.sys, warto pozostawić sobie to wyjście awaryjne.