Plik Wymiany (pagefile.sys), a miejsce na dysku systemowym

Plik wymiany (pagefile.sys) domyślnie znajduje się na partycji systemowej i zwykle jest „względnie duży”.  W przypadku braku miejsca na dysku przykuwa on naszą uwagę i rodzi trzy zasadnicze pytania: Czy jest potrzebny? Jak duży powinien być? Gdzie powinien się znajdować? W tym artykule postaram się na te pytania odpowiedzieć.

 

Do czego służy pagefile.sys i czy jest nam potrzebny?

Plik Wymiany (pagefile.sys) jest elementem tzw. Pamięci Wirtualnej  i jest on wykorzystywany przez menadżera pamięci do zwalniania pamięci fizycznej  (RAM).  Dzieje się to najczęściej w sytuacji gdy pamięci fizycznej jest zbyt mało lub gdy jakiś program specjalnie „zmusza” system do zapisywania pamięci do pliku. Jest on również wykorzystywany do zapisu pamięci w momencie wystąpienia tzw Blue Screen’a. Choć Plik Wymiany da się wyłączyć i system będzie bez niego działał, to jest bardzo przydatny i zdecydowanie warto z niego korzystać.

 

Jak duży powinien być plik wymiany?  

Zacznijmy od tego, iż mamy dwie opcje: pagefile.sys może mieć wielkość ustawioną na sztywno lub zarządzaną przez system. Systemy 32-bitowe mogą efektywnie mapować około 3.2GB pamięci.  Jeżeli nasza maszyna ma 2GB RAMu, to  plik wymiany powyżej 1.2GB nie będzie efektywnie wykorzystywany.  Jeśli wielkością pliku zarządza System to plik pagefile.sys na co dzień nie przekroczy 1.2GB, ale może osiągnąć ponad 3GB w razie np. wystąpienia  „Blue Screena”.

Maszyny 64-bitowe mogą mapować więcej pamięci (aż do 16TB!), ale „tak na zdrowy rozum” im więcej mamy fizycznej pamięci, tym mniej pamięci wirtualnej potrzebujemy. Aby, to uporządkować posłużę się rekomendacjami Microsoftu:

Starsze systemy operacyjne Windows XP i Windows Server 2003, które miały poniżej 1GB fizycznej pamięci powinny mieć swapfile.sys  o wielkości od 1.5 x RAM  do  3 x RAM. Maksimum wynika z wspomnianego ograniczenia mapowania pamięci do 3,2GB. Dla tych samych systemów, z pamięcią RAM powyżej 1GB zalecany rozmiar swapfile.sys  wynosi od 1 x RAM  do  3 x RAM.

Dla nowszych systemów (Windows 7, Windows 8, Windows Server 2008 itd..) minimalna zalecana wielkość pliku swapfile.sys  to 1.5 x RAM, a maksymalna.. No właśnie nie do końca wiadomo 🙂   Tak naprawdę prawdziwe optymalne MIN/MAX zależy od naszego sprzętu, zainstalowanych programów i tego jak nasza maszyna jest obciążona. Można je  oszacować zbierając logi z monitora Wydajności i kalkulując przeróżne wzory. Wg mnie najlepszym rozwiązaniem, będzie zostawienie domyślnej opcji zarządzania wielkością pliku wymiany przez system i będzie to przeważnie 1.5 x RAM .

 

Gdzie powinien się znajdować Plik Wymiany?

Czy domyślna lokalizacja (dysk systemowy) to najbardziej optymalne rozwiązanie? Otóż, nie.  Oprócz tego, iż swapfile.sys po prostu konsumuje sporo miesca na dysku, to w przypadku problemów wydajnościowych naszej maszyny i  intensywnego zapisu (tzw.swap’owania) mocno obciąży dysk twardy prowadząc do jego szybszego zużycia i jeszcze większego spadku wydajności systemu. Najwięcej sensu miałby przeniesienie pliku wymiany na oddzielny dysk, a jeśli to nie możliwe, to na oddzielną partycję. Niegłupim pomysłem jest użycie partycji dedykowanej tylko i wyłącznie pod Plik Wymiany.

I tu kolejna uwaga: partycje FAT16 i FAT32 będą działać szybciej i lepiej nadawać się do przechowywania plików wymiany, ale mają znaczace  ograniczenia: wolumen FAT16 może mieć rozmiar do 2GB i obsłuży pliki o maksymalnej wielkości 2GB. Dla FAT32 maksymalny rozmiar wolumenu to 2TB, a pliku 4GB. Wynika z tego, iż dla plików wymiany powyżej 4GB pozostaje nam NTFS.

 

Jak zmienić lokalizację Pliku Wymiany?  

We wszystkich Windowsach wygląda to podobnie. Na przykładzie Windows Server 2008 R2: Klikamy prawym przyciskiem na  „Computer” , wybieramy kolejno

Properties -> Advanced -> Performance / Settings -> Advanced / Virtual Memory -> Change.

Wystarczy na dysku systemowym wybrać „no paging file”, a na innym dysku skonfigurować nowy plik wybierając „system managed size” lub podając  wartości ręcznie:

 

 

W ten sposób nasza maszyna odzyska nieco miejsca na dysku systemowym oraz potencjalnie zacznie działać troszkę lepiej.

Dodam jeszcze, że plik wymiany naturalnie ulega fragmentacji, a będąc w ciągłym użyciu nie pozwoli sie poprawnie zdefragmentować  Windows’owemu Disk Defragmenter’owi. Problem ten rozwiązuje narzędzie PageDefrag ze strony SysInternals.

Jeśli macie jakieś uwagi, piszcie.

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

16 komentarzy

  1. Jacek napisał(a):

    Co to znaczy najbardziej optymalne ?

    • Łukasz Skalikow napisał(a):

      Cześć. Pytasz o zdanie „Czy domyślna lokalizacja (dysk systemowy) to najbardziej optymalne rozwiązanie?”. W tym wypadku optymalne rozwiązanie to takie, w którym stosunek wydajności do skomplikowania jest korzystny;) Jak widzisz, niżej zasugerowałem przeniesienie pliku na osobną partycję, co wymaga pewnego nakładu pracy (stworzenie partycji, wybranie odpowiedniego formatu), ale odpłaca znacznym wzrostem wydajności. Nie posługuję się wynikami badań w dokładnych liczbach, bo tych w internecie jest sporo 🙂 Swoje sugestie nazwałbym „dobrymi praktykami”.

  2. Ecne napisał(a):

    ciekawe :/ bo mam 16gb ramu… tzn ze mam sobie ustawic plik wymiany na 24GB ?!

    • Piotr Berent napisał(a):

      Musisz monitorować zużycie RAM, jeśli dochodzi do maximum, wtedy możesz experymentować z rozmiarem pagefile. Generalnie zasada 1,5x RAM odnosi się do starszych maszyn, gdzie RAMu było jak na lekarstwo 😉

  3. domel45 napisał(a):

    Czy można wykorzystac nadmiar pamięci RAM np. w przypadku 8GB i systemu 32 bitowego na wykorzystanie go przez pagefile?

    • Dariusz Góra napisał(a):

      Oczywiście, to dobry sposób na ominięcie limitu pamięci w systemach 32bitowych. Wystarczy stworzyć RAM disk z nieadresowalnej pamięci RAM. Dodatkowo jest to idealne miejsce do tymczasowego przechowywania wrażliwych danych – pamięć RAM czyszczona jest po każdym restarcie. Sam używałem takiego rozwiązania i spisywało się znakomicie.
      Nie będę tu opisywał całego procesu, do przeszłego tygodnia przygotuję artykuł z instrukcją.

  4. Mirek napisał(a):

    U mnie jest „Kontrolowany przez system”
    Dostępne miejsce: 49804 MB
    Czy będzie ok jak ustawię tak jak jest w poradzie?
    Czy po zastosowaniu zmian, system poprosi mnie o ponowne uruchomienie go?

    • Łukasz Skalikow napisał(a):

      Mirek, nie napisałeś ile masz fizycznej pamięci RAM, ale masz sporo miejsca na dysku i jeśli nie przeszkadza Ci obecny rozmiar pliku pagefile.sys, to zostaw jak jest. Restart byłby wymagany do wprowadzenia zmiany w życie, ale NIE byłby wymuszony natychmiast – tzn. można pracować dalej i zrestartować maszynę później, w dogodnym momencie.

  5. Mirek napisał(a):

    Ok, to zostawię, a pamięci RAM mam 8GB
    Dzięki

  6. Krzysiek napisał(a):

    Witam
    Mam nietypową konfigurację: dysk startowy SSD 64GB i drugi 2,0TB, ilość pamięci RAM 12MB. Na SSD zainstalowany system Windows 8, jest też pagefile.sys o wielkości 5,4GB oraz hiberfil.sys o wielkości 10,3GB i partycja odzyskiwania 24,4GB. Niewiele zostało na zainstalowanie programów na tym dysku (niecałe 3,2GB), więc się zastanawiam co z tego dysku SSD mogę wyrzucić lub przenieść na drugi dysk.
    Może macie jakiś pomysł?

    • Marcin napisał(a):

      Oj, sporo tego masz. Przede wszystkim jeśli nie korzystasz z hibernacji (hibernacja to coś innego, niż uśpienie) to możesz ją wyłączyć, a następnie usunąć hiberfil.sys. Hibernacja różni się od uśpienia tym, że dane zapisywane są na dysku a nie w pamięci RAM, więc nawet jak odcięty zostanie dopływ prądu do komputera podczas hibernacji, to komputer wybudzisz do tego samego stanu, w którym go zahibernowałeś (w przypadku uśpienia wszystko przechowywane jest w RAMie, a więc jak jest przerwa w prądzie lub wyłączysz kabel zasilający podczas uśpienia, to stracisz stan komputera i uruchomi się system normalnie). Korzystasz zatem z hibernacji? Jeśli nie, to wywalaj i jesteś 10GB do przodu. Pagefile, czyli plik wymiany możesz (a nawet powinieneś w przypadku SSD) przenieść na dysk HDD 2TB. Możesz jeszcze przenieść biblioteki dokumentów, obrazów, muzyki i wideo na inny dysk – to świetne rozwiązanie, bo nawet jak sformatujesz sobie SSD, to swoje dane będziesz miał na innym dysku, więc nie trzeba robić przed reinstalacją żadnych kopii itp. Polecam zapoznanie się z tym tekstem: http://www.download.net.pl/jak-zwolnic-miejsce-na-dysku-c-w-windowsie/n/4218/

      Znajdziesz tam opis, jak wyłączyć hibernację, jak przenieść lub wyłączyć plik wymiany, jak przenieść biblioteki na innym dysku, a także kilka mniejszych sposobów na zaoszczędzenie miejsca.

  7. Łukasz C. napisał(a):

    Czy jeżeli po tym jak ustawiłem na dysku systemowym opcję „Brak” mimo, że wcześniej właśnie na nim był plik stronicowania o wielkości ~8GB, to powinienem mieć wolne te 8GB?

  8. Pi napisał(a):

    Jeszcze raz dziekuję (przedtem za hiberfil.sys 😉

  9. Olamagato napisał(a):

    Jedynym sensownym zastosowaniem plików wymiany, to rozszerzenie ilości fizycznej pamięci RAM gdy ograniczeniem jest maksymalna ilość obsadzonej pamięci na płycie głównej (np. 8 GB w laptopie z systemem 64-bit) i to tylko pod warunkiem, że większość używanych programów nie wymaga ciągłej aktualizacji danych w pamięci operacyjnej w czasie rzeczywistym oraz nieustannego wykonywania całego kodu. W praktyce pamięć relokowalna aplikacji może być bezkarnie usuwana przez system z pamięci RAM i (w razie potrzeby wykonania) ponownie ładowana do uruchomienia z plików wykonywalnych – oznacza to, że pamięć swap jest do tego zupełnie zbędna. Poza tym ponieważ transfer do pamięci masowej jest stukrotnie wolniejszy od dostępny do fizycznej pamięci RAM, to w praktyce masowe wykorzystanie pamięci swap do aktualizacji kończy się nieakceptowalnym dla użytkownika spowolnieniem pracy całego systemu. Obecnie głównym zastosowaniem plików wymiany jest łatwe ukrycie przechwytywania i kopiowania wrażliwych danych przez system w celu późniejszego wysyłania ich do serwerów producenta systemu, a następnie amerykańskich służb informacyjnych. Jest to oczywiście maskowane potrzebą zrzutu pamięci w przypadku awarii systemu w celu późniejszej analizy (rzekomo dla dobra użytkownika). W praktyce w systemie produkcyjnym jakim jest lokalny system na maszynie użytkownika dzieje się to w ułamkach promili przypadków nieoczekiwanego resetu systemu w wersji BOX (nikt nigdy nie analizował i nigdy nie będzie analizował danych z systemu OEM). Wystarczającą informacją o problemie jest informacja na ekranie bluescreen pod warunkiem wyłączenia automatycznego restartu. W takim wypadku można również spokojnie wyłączyć jakikolwiek zrzut pamięci (nawet jądra – są to kompletne śmiecie dla 99,9% użytkowników przez 99,9% czasu), co oznacza, że system w ogóle nie będzie potrzebował pamięci pliku wymiany. Natomiast jednostkowe aplikacje, które wymuszają zapis do pliku wymiany robią to w sposób absolutnie nieuzasadniony żadnymi względami technicznymi, co najczęściej oznacza „nadęte oprogramowanie” producenta związanego z Microsoftem. Krótko mówiąc plik wymiany, to dla użytkowników technologia właściwie do wyłączenia i wtedy cieszenia się szybkim działaniem komputera. Zwykle jeżeli ktoś potrzebuje większej ilości programów uruchomionych jednocześnie lub znacznie bardziej pamięciożernych (co prędzej czy później zakończy się komunikatem o braku pamięci operacyjnej), to najlepszym rozwiązaniem jego rzeczywistych problemów jest po prostu dokupić i zamontować więcej pamięci RAM. Pamięć plików wymiany może być przydatna jedynie jako tymczasowe lub okazjonalne rozwiązanie tego problemu. I to tylko dla rozszerzenia pamięci fizycznej maksymalnie o 0,1..0,2 x RAM (sic!, 10..20% dla zachowania wydajności). Poza tym jest zbędna. Tak jak i ten artykuł. 🙂

    • starszy napisał(a):

      „Obecnie głównym zastosowaniem plików wymiany jest łatwe ukrycie przechwytywania i kopiowania wrażliwych danych przez system w celu późniejszego wysyłania ich do serwerów producenta systemu, a następnie amerykańskich służb informacyjnych.” – naoglądałeś się za dużo seriali i/lub filmów na YT o teoriach spiskowych. Naprawdę. jak się tak boisz o swoją prywatność, 1. odłącz kompa od netu albo 2. użyj głowy, firewalla i pliku hosts.

Dodaj komentarz