FAQ Użytkownicy Grupy Album Chat Download Szukaj



Odpowiedz do tematu
Poprzedni temat :: Następny temat
Plik wymiany, czyli o co tak naprawdę chodzi
Autor Wiadomość
Krzychu 
ALLMASTER



Dołączył: 03 Mar 2006
Posty: 2265
Skąd: Rawa Maz
Poziom: 38
HP: 130/4353
 3%
MP: 2078/2078
 100%
EXP: 117/153
 76%
Wysłany: 2008-09-04, 08:31   Plik wymiany, czyli o co tak naprawdę chodzi

Pojęcie

Plik wymiany - pagefile.sys lub potocznie mówiąc Swap, działa jako wspomaganie pamięci fizycznej RAM’u. Gdy brakuje miejsca w pamięci operacyjnej komputera, system zaczyna przechowywać coraz więcej danych na dysku właśnie w tym pliku. Jest to specjalny typ pliku do którego użytkownik nie ma swobodnego dostępu. Wynika to z tego, iż pagefile.sys jest cały czas bardzo intensywnie wykorzystywany przez system, co uniemożliwia nam manipulowanie jego parametrami czy defragmentowanie. Zmiany jakichkolwiek ustawień zobaczymy dopiero po ponownym uruchomieniu komputera, a defragmentacja tego pliku możliwa jest wyłącznie w trybie offline.

By przybliżyć sobie i niejako zrozumieć pojęcie pliku wymiany musimy wiedzieć o tym, że plik ten posiada dwa rodzaje fragmentacji. Pierwsza z nich nosi nazwę „Zewnętrznej” gdzie plik ten - Swap, jest widziany przez użytkownika jako jeden plik. Druga z nich nosi nazwę „Wewnętrznej” gdzie Swap ulega podziałowi na 4 KB strony. Podsystem pamięci może swobodnie operować stronami tak jak użytkownik normalnymi plikami, niezależnie od tego czy Swap jest zewnętrznie jednym plikiem, czy kilkoma wewnętrznie w postaci zbiorowiska tysięcy stron. Nie muszą one być zdefragmentowane, często panuje tam nieład. Natomiast niezależnie od tego czy system używa jednej strony, czy wszystkich zewnętrznie, plik ma zawsze ten sam rozmiar, który powiększy się dopiero, gdy zabraknie wolnych stron.

Plik wymiany określany jest przez trzy parametry, lokalizacja - czyli fizyczne umiejscowienie pliku, rozmiar początkowy - określa ile MB system zarezerwuje podczas startu dla pliku wymiany, rozmiar maksymalny - określa do jakiego rozmiaru może urosnąć plik wymiany. Aby dostać się do interesujących nas ustawień klikamy kolejno:
Menu Start -> Panel Sterowania -> System -> zakładka „Zaawansowane” -> okienko "Wydajność” -> Ustawienia -> zakładka „Zaawansowane” -> Pamięć Wirtualna -> Zmień.

W większości wypadków znajdziemy go na partycji systemowej.


Jak to działa?

System Windows przed każdym startem systemu tworzy plik wymiany od podstaw i szuka „ciągłej przestrzeni”, gdzie mógłby go umiejscowić w całości. Jeżeli jej nie znajdzie wówczas plik wymiany jest dzielony na kilka części. Dopóki nie zmieniamy parametrów Swap’a nie ma ryzyka, że zostanie podzielony na części. Zmieniając rozmiary pliku wymiany pamiętaj, aby „Rozmiar początkowy” był adekwatny do potrzeb twojego komputera. Jeśli dla przykładu potrzebujesz 320MB a parametr początkowy ustawiony masz na 280MB wówczas podczas korzystania z aplikacji, kolejne fragmenty pliku wymiany zostaną zapisane w różnych miejscach, co spowoduje iż cały plik będzie pofragmentowany. Sytuacja ta wpłynie dość niekorzystnie na całą wydajność systemu, ponieważ nadmiar danych będzie każdorazowo pofragmentowany, co z kolei uniemożliwia nam bezpośrednią defragmentację pagefile.sys.

Lepszym rozwiązaniem jest określenie z góry, ile MB potrzebuje nasz komputer, i ustawienie „Rozmiaru początkowego”' o kilkadziesiąt MB wyżej. Tym oto sposobem, nawet jeżeli system nie znajdzie początkowo wystarczającej ilości miejsca na dysku, wystarczy raz zdefragmentować plik wymiany i możemy zapomnieć o problemie fragmentacji.

Po zamknięciu systemu Windows w „pewnym sensie” zapomina, że miał plik wymiany i podczas kolejnego startu odtwarza go od podstaw. Wówczas poprzednia lokalizacja jest przydzielana nowemu plikowi. Ze względów bezpieczeństwa i z uwagi na samą wydajność systemu zalecałbym raczej stosowanie funkcji „Czyszczenia pliku wymiany przy zamykaniu systemu”. Dzięki takiej operacji, za każdym razem nasz plik wymiany będzie czysty i wolny od jakichkolwiek informacji, a co najważniejsze w jednej całości. Jedynym minusem tej operacji jest dłuższe zamykanie się samego systemu, warto jednak poczekać te kilkanaście sekund dłużej, by po ponownym rozruchu „cieszyć się” naprawdę odczuwalnym wzrostem pracy systemu. Aby tego dokonać należy znaleźć w rejestrze systemowym pozycję „ClearPageFileAtShutdown”, mieści się ona pod tym ciągiem: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management


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.


Położenie SWAP a partycja systemu plików

Często można spotkać się z opinią że partycja z systemem plików NTFS jest gorsza niż z FAT jako miejsce na plik wymiany. To nie do końca jest tak, a czasami bywa wręcz odwrotnie.

Niektórzy twierdzą, że konieczność sprawdzania możliwości nadpisywania plików zgromadzonych w pliku wymiany ogranicza jego wydajność. Błąd, plik wymiany może nadpisać tylko system i nie musi w tym celu niczego sprawdzać, nawet administrator systemu nie prawa w nim grzebać, plik wymiany nie podlega zasadzie 1 klaster = 1 plik. Jest to rozszerzenie pamięci Ram, zatem dzielony jest na 4 KB strony, a nie klastry. Podsystem kontrolujący operacje dyskowe nie ma żadnych praw, aby kontrolować Swap’a, który "rządzi się swoimi prawami".

Poza tym mamy do czynienia jeszcze z faktem gdzie w pliku wymiany, w systemie FAT 16/32 nowe dane w pliku wymiany są dopisywane w pierwsze wolne miejsce, natomiast w systemie NTFS nowe dane są nadpisywane jak najbliżej danych z którymi są powiązane. Zapobiega to wewnętrznej fragmentacji pagefile.sys, który jest tak naprawdę wielkim magazynem na strony, a jeden plik jest widziany tylko przez użytkownika. System NTFS jest nawet lepszy do pełnienia roli pagefile.sys niż FAT16/32, ale ta przewaga jest wyraźnie widoczna tylko, jeżeli plik wymiany znajduje się na oddzielnej partycji na innym dysku. Na domyślnych ustawieniach NTFS jest nieco wolniejszy niż FAT16/32 - w operacjach zapisu, w operacjach odczytu NTFS jest szybszy. Jeżeli plik wymiany znajduje się na partycji systemowej sformatowanej w systemie NTFS, jego przewaga jest niwelowana przez ogółem niższą wydajność operacji zapisu. Mimo to NTFS jest nadal lepszy i zachowuje przewagę w szybkości odczytu.

Zarówno NTFS jak i FAT mają swoich zwolenników jak i przeciwników, ale dla nas najistotniejszy jest fakt, że maksymalną wydajność otrzymamy umieszczając plik wymiany na oddzielnej partycji z system NTFS. Z drugiej strony nie można tego w ten sposób generalizować.


Co zatem?

Reasumując, polecam wszystkim by plik wymiany trzymali na początku dysku systemowego, na specjalnie utworzonej do tego partycji w systemie plików FAT – ja osobiście używam systemu plików FAT32. Wielkość tej partycji szacował bym w zależności od fizycznie posiadanej pamięć RAM. Rozmiar początkowy/minimalny pliku wymiany ustawiłbym na taki sam jak rozmiar końcowy/maksymalny pliku, czyli nadałbym mu wartość „sztywną”. Dodatkowo oczywiście zachęcam do skorzystania z opcji „Czyszczenia pliku wymiany przy zamykaniu systemu” o czym była już mowa. Powstałej partycji przypisujemy jakąś końcową literę dysku i możemy nadać jej etykietę SWAP lub Pagefile. Dodatkowo by zwiększyć wydajność naszego systemu, przenosimy również na w/w partycję zawartość katalogów „Temp”, unikniemy w ten sposób znacznej fragmentacji naszej partycji systemowej. Dokonać tego możemy poprzez edycję wpisu w „Zmiennych środowiskowych”: Menu Start -> Panel Sterowania -> System -> zakładka „Zaawansowane” -> „Zmienne środowiskowe”.
Do wyboru mamy „Zmienne użytkownika” i „Zmienne systemowe”. Edytujemy wpisy dla „TEMP” i „TMP” podając im nową lokalizację. Warto przedtem stworzyć odpowiednie katalogi zachowując strukturę użytkowników.

Sposób przedstawiony tu przez moją osobę jest powszechnie wykorzystywany w przypadku serwerów MS 2k/2k3, ale z powodzeniem można zaimplementować to rozwiązanie dla WindowsaXP, co daje naprawdę odczuwalne skutki w szybkości pracy systemu nie mówiąc już o samym komforcie pracy.
_________________

 
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group Creative Commons License Twilight Theme by joli