Kwestia wyłączenia pliku stronicowania systemu Windows była już dość dyskutowana, na przykład tutaj i tutaj i tutaj . Ludzie nadal oceniają odpowiedzi, które mówią „ nie powinieneś wyłączać pliku strony, nawet jeśli masz dużo pamięci RAM ”, ale nie widziałem jeszcze żadnych konkretnych, możliwych do zweryfikowania powodów dla tej porady. O ile widzę, jeśli nigdy nie musisz czytać z pliku strony (ponieważ masz wystarczającą ilość pamięci RAM), wówczas wydajność może być tylko gorsza z włączoną funkcją ze względu na wcześniejsze zapisywanie w systemie Windows. W najlepszym razie wydajność byłaby taka sama. Nie widzę, jak można to poprawić, zapisując dane, których nigdy nie musisz czytać.
Więc moje pytanie brzmi:
Zakładając, że mam wystarczającą ilość fizycznej pamięci RAM na wszystko, co robię, czy jest jakiś powód, dla którego nie powinienem wyłączać pliku strony?
Załóżmy, że wersja systemu Windows to Windows XP x64 SP2 lub Windows Server 2003 x64 SP2 (to samo). Jeśli jest inaczej w Windows Server 2008 x64, chciałbym również usłyszeć odpowiedź na to pytanie. Szukam konkretnych, obiektywnych powodów z dobrych źródeł, nie tylko opinii. Coś w stylu „tutaj są testy porównawcze wykonane z plikiem strony i bez niego, a wyniki były lepsze z plikiem strony, nawet z wystarczającą ilością pamięci RAM” lub „zgodnie z tym artykułem MS KB problem X pojawia się po wyłączeniu pliku strony”.
Do tej pory jedynymi powodami, o których widziałem, są:
- Nawet jeśli uważasz, że masz wystarczającą ilość pamięci RAM, możesz skończyć. OK, ale na potrzeby tego pytania, weźmy to za pewnik, że mam dość. Może kiedykolwiek czytam tylko e-maila i mam 16 GB pamięci RAM. Lub 128 GB. Lub 1 TB. Lub cokolwiek - ale to wystarczy na 100% tego, co robię, przez 100% czasu. Innym sposobem, aby o tym pomyśleć jest: jeśli mam x MB fizycznej pamięci RAM i plik MB strony y i nigdy nie zabraknie mi pamięci RAM w tej konfiguracji, czy nie byłoby lepiej, jeśli chodzi o wydajność, z x + y MB fizycznej pamięci RAM i plik strony?
- Windows jest „przyzwyczajony” do posiadania pliku stronicowania i może nie działać tak niezawodnie (od zrozumienia wpływu pamięci RAM na ogólną wydajność systemu. Jest to raczej niejasne i trudno mi w to uwierzyć, biorąc pod uwagę, że MS zapewniło opcję wyłączenia pliku strony .
- Windows wie, co robi lepiej niż ty. Nie - nie wie, że nie będę uruchamiać więcej programów ani ładować więcej danych, ale robię to.
Odpowiedzi:
To jest mikrooptymalizacja. Chodzi o to, że nie ma powodu, aby to robić, w czymkolwiek przypominającym normalne działanie. Może łatwo zranić cię, jeśli zmieni się twój schemat użytkowania.
W wyspecjalizowanych przypadkach może to mieć sens, na przykład jeśli nie ma lokalnego dysku z możliwością zapisu.
źródło
Istnieje wiele powodów, aby zachować plik strony, nawet jeśli wszystko zmieści się w pamięci RAM.
Odpowiedź na SF ma 125 pozytywnych opinii i łączy wiele wiarygodnych artykułów. Sprawdź to:
https://serverfault.com/questions/23621/any-benefit-or-detriment-from-removing-a-pagefile-on-an-8gb-ram-machine/23684#23684
źródło
Z tego linku:
Oto link do poglądu Jeffa Atwooda .
źródło
Od ponad roku korzystam z 32-bitowego laptopa z systemem Windows XP SP3 Professional z 4 GB pamięci RAM (Windows „oficjalnie” rozpoznaje tylko 3 GB) bez pliku stronicowania. Ludzie w moich kręgach próbowali mnie przestraszyć, że nie powinienem był tego robić.
Korzystam z aplikacji bardzo obciążających pamięć - w danym momencie mam co najmniej dwie maszyny wirtualne (vmware), na których skonfigurowano działanie w 100% w pamięci RAM, mam co najmniej jedno wystąpienie programu Visual Studio (który ma wiele zainstalowanych dodatków), SQL Server i kilka „małych” aplikacji, takich jak e-mail, komunikatory internetowe, IE itp.
Oprócz tego wszystkiego mam też stały ramdysk o pojemności 256 MB. Od czasu do czasu korzystam z Adobe Photoshop PODCZAS reszty aplikacji. Gram też w kilka gier, w tym Quake3, Neverwinter Nights, Oblivion.
I NIE mam ŻADNYCH problemów.
Uwaga do BlueNovember: nasz przyjaciel bardzo uprzejmie poprosił o obiektywne powody. Tak więc stwierdzenia takie jak „Podejrzewam ...” są nieuzasadnione. Dowiedz się przed opublikowaniem! Hibernacja nie ma nic wspólnego ze stronicowaniem. Używa osobnego pliku o nazwie hiberfil.sys i można hibernować bez pliku stronicowania.
PS: Przepraszam, odmawiam powrotu do „normalnej” konfiguracji, abym mógł faktycznie sprawdzić, jak szybka jest ta konfiguracja, ale samo zobaczenie o wiele mniejszej ilości migotania dysku twardego jest bardzo pocieszające. Wyłączę plik strony tylko z tego powodu, ponieważ nic więcej, bo przynajmniej twój komputer „czuje się” szybciej, gdy dioda LED dysku twardego nie miga stale.
JEDYNYM powodem, aby nie wyłączać pliku strony, jest użycie Monitora wydajności (PerfMon), ponieważ zależy to od pliku strony i wymaga co najmniej 2 MB pliku strony, inaczej liczniki będą brakować dla następujących obiektów: pamięci podręcznej, pamięci, obiektów, procesora i system.
źródło
Uważam, że jeśli nie masz pliku stronicowania, to w przypadku BSOD Windows nie będzie mógł napisać mini-zrzutu. Oznacza to, że nie będziesz w stanie przeanalizować problemu za pomocą odpowiednich narzędzi.
Może to nie przeszkadzać, jeśli nie występują BSOD, i z pewnością możesz szybko odtworzyć plik strony, ale dlaczego nie być przygotowanym?
źródło
Najlepszym powodem, jaki znalazłem, jest to, że plik stronicowania pozwala systemowi Windows na użycie większej ilości fizycznej pamięci RAM dla pamięci podręcznej dysku, co może być lepszym rozwiązaniem dla niego niż rzadko używane strony pamięci. Mark Russinovich ma świetny artykuł na ten temat, przekraczając granice systemu Windows: pamięć wirtualna , który mówi:
źródło
Korzystam z systemu Windows XP z 4 GB (3,5 GB użytecznej) pamięci RAM. Muszę uruchomić program Visual Studio 2008, który wymaga dużo pamięci. Często mam otwarte 3 do 4 instancji, z których każda zajmuje 500 MB lub więcej pamięci.
Bardzo mnie to zirytowało, ponieważ za każdym razem, gdy potrzebowałem szybko zamknąć wszystkie wystąpienia programu Visual Studio, system Windows zabrałby wieczność do zamknięcia wystąpień. Zajęło to 3 minuty lub więcej. Zrozumiałem, że dzieje się tak, że instancje Visual Studio były stronicowane poza RAM i do pliku strony, nawet jeśli było dużo pamięci. Podczas zamykania aplikacji ładuje wszystkie dane stronicowane z powrotem do pamięci RAM, a następnie zamyka. Zasadniczo skopiowałby 2 GB danych z dysku do pamięci przed zamknięciem instancji.
Po wyłączeniu stronicowania zauważyłem OGROMNY wzrost wydajności podczas zamykania wielu instancji Visual Studio. Zajmie to 100% procesora przez kilka sekund, a następnie zniknie. Zamykanie systemu Windows jest teraz możliwe znacznie poniżej minuty, a nie wielu minut.
Jednak nie zauważyłem żadnego wzrostu wydajności podczas uruchamiania aplikacji, co ma sens, ponieważ dane nadal muszą być odczytywane z dysku podczas uruchamiania. Poza tym uważam, że przy generowanym wyłączaniu stronicowania sprawy są znacznie szybsze.
Poza tym wpadałem na awarie programów tylko z powodu niewystarczającej ilości pamięci tylko kilka razy w roku. Zwykle, jeśli otworzę zbyt wiele programów lub program oszaleje i zacznie przydzielać pamięć jak szalony.
Podsumowując, jestem bardzo zadowolony z wyłączenia stronicowania. Zarządzanie pamięcią w systemie Windows jest dość okropne. Dla tych, którzy nie mają nic przeciwko majstrowaniu przy ustawieniach pamięci i są świadomi możliwych problemów, polecam to zrobić.
źródło
Wbrew powszechnej opinii plik strony nie jest po prostu tanią, ale wolną alternatywą dla pamięci fizycznej. Został zaprojektowany, aby umożliwić optymalne wykorzystanie posiadanej pamięci RAM.
Nawet z 4 GB pamięci RAM prawdopodobnie nie masz wystarczająco dużo, aby utrzymać wszystko w pamięci. Nic w Menedżerze zadań tego nie ujawni. Wiedząc o tym, projektanci Windows stworzyli system, w którym kod wykonywalny był wprowadzany do pamięci tylko w razie potrzeby, a następnie przechowywany tak długo, jak to możliwe. Jeśli system znajdzie lepsze wykorzystanie tak wykorzystanej pamięci, zostanie ona ponownie przypisana. System ten jest używany przez Microsoft od NT3.1, wydanego w 1993 roku. Od lat 60. jest regularnie używany w dużych systemach.
Ten system działa dobrze w przypadku większości form kodu wykonywalnego. Ale zmodyfikowane dane muszą być gdzieś zapisane, plik stronicowania, zanim wykorzystana pamięć będzie mogła zostać ponownie przypisana. Plik strony nie jest zwykle używany do przechowywania kodu, tylko dane. Możliwość stronicowania zarówno kodu, jak i danych daje systemowi elastyczność w zakresie tego, co powinno być stronicowane w razie potrzeby. Wyłączenie pliku strony oznacza, że tylko pamięć używana do przechowywania kodu może zostać przypisana ponownie. Wszystkie zmodyfikowane dane, nawet te, do których nie uzyskiwano dostępu przez długi czas i które mogą nie być ponownie potrzebne, muszą pozostać na zawsze w pamięci RAM. Ale stronicowanie kodu będzie kontynuowane jak poprzednio. Brak pliku strony lub posiadanie zbyt małego pliku powoduje niezrównoważenie systemu i zmusza system Windows do stronowania w sposób nieoptymalny. Zwykle obniża to wydajność.
źródło
Jeśli twój ram zmaksymalizuje jeden lub więcej programów, które zażądały pamięci, najprawdopodobniej nagle się zawiesi.
Ryzyko to przeważy nad ewentualnym wzrostem wydajności.
źródło
Moje sugestie to zachować plik strony, ale ręcznie napraw go do małego rozmiaru, na przykład 128 MB, na dysku systemowym.
Powód jest praktyczny: system Windows naprawdę oczekuje, że będzie plik wymiany i najczęściej utworzy tymczasowy plik zarządzany automatycznie, jeśli nie zostanie znaleziony, co spowoduje utratę wygody w jego wyłączeniu.
Ponadto w niektórych operacjach, takich jak BSODing, liczniki wydajności, zawieszanie / wznawianie / hibernacja, po cichu zawiedzie lub źle zachowa, i w jakiś sposób pogorszy się stabilność systemu. Wszystko to oparte na moich doświadczeniach, a wszystko to zniknęło z niewielkim plikiem stronicowania.
Zauważ, że plik wymiany najprawdopodobniej zostanie wypełniony w pierwszych kilku minutach wykonania, w większości przypadków nie będzie ponownie dotykany, więc nie będziesz ponosić zwykłego pliku wymiany kary dostępu do dysku. MOŻESZ otrzymać komunikat „kończy Ci się pamięć” wkrótce w sesji, który możesz bezpiecznie zignorować (tak, zamiana jest pełna, więc co?)
(Bardzo też nie lubię super pobierania i raczej zostawiam wolną pamięć dla efektów buforowania)
źródło
Jedną z odpowiedzi, o której nie wspomniano, jest to, że system Windows używa pliku strony do przechowywania zrzutów awaryjnych. Funkcja niebieskiego ekranu komputera zapisuje zrzut awaryjny bezpośrednio w sektorach na dysku, który zawiera plik stronicowania (pomijając sterownik systemu plików, któremu Windows obecnie nie może zaufać).
Bez pliku strony nie można uzyskać informacji zrzutu awaryjnego. Ponadto plik strony nie zaszkodzi, jeśli go nie użyjesz, więc poza bardzo ograniczonym zestawem scenariuszy nie ma powodu, aby go wyłączać.
źródło
Pomyśl o ładowaniu pozostałej pamięci przez pamięć podręczną przez SuperFetch , a wtedy stanie się jasne, dlaczego nie powinniśmy wyłączać pliku strony. Zadania seryjne (ponieważ wielozadaniowość jest zła) i uruchamianie aplikacji w pamięci podręcznej są naprawdę przydatne, więc fajnie jest mieć funkcję SuperFetch kosztem stronicowania.
źródło
Jeśli twoje pytanie brzmiało:
i powiedziałeś tak, to byłoby OK.
Środowiska osadzone są prawdopodobnie tam, gdzie miałoby to największe szanse na zastosowanie, np. Instalacja systemu kasowego.
źródło
Prosta odpowiedź brzmi: okna stają się okropne, jeśli zabraknie pamięci.
Rzeczy stają się bolesnie powolne.
Wiele pakietów oprogramowania ma wycieki pamięci, które powoli pochłaniają dostępną pamięć RAM.
Ponadto system Windows wykorzystuje część pamięci RAM jako pamięć podręczną dysków twardych.
Chyba że naprawdę masz dużo więcej pamięci RAM, której potrzebujesz, w końcu będzie problemem.
źródło
Plik strony
Korzystam z 32-bitowego XP z pamięcią 4 GB (wiem, XP widzi tylko 3 GB, ale jest przeplatane i bardzo szybkie) i chciałbym zrobić dwa punkty:
XP widzi tylko 3 GB pamięci. Kiedy mój komputer już to ma, jaki jest sens pliku stronicowania? Rezerwuje pamięć dyskową, do której nigdy nie może uzyskać dostępu. Chyba że wyłącza trochę pamięci RAM. Więc spędziłeś ciężko zarobioną, górną pamięć dolara, tylko po to, by przekonać się, że XP to dysk randkowy.
Jeśli używasz XP w wersji 32-bitowej i masz 4 GB pamięci, spróbuj tego eksperymentu: Wyłącz plik stronicowania. Uruchom ponownie XP. Usuń plik stronicowania. Uruchom kilka programów, Word, Excel, Chrome, IE Ex, obejrzyj film, streamuj muzykę lub telewizję. Wszystko powinno działać dobrze. Ponownie włącz plik strony, tym razem z naprawdę małym rozmiarem, powiedzmy 25 MB. Uruchom ponownie XP. Uruchom kilka programów, Word, Excel, Chrome, IE Ex, obejrzyj film, streamuj muzykę lub telewizję. Wkrótce otrzymasz wiadomość, że kończy Ci się pamięć wirtualna. Dowodzi to, że XP używa pliku stronicowania, nawet gdy nie jest to konieczne. Sprawdź kartę wydajności menedżera zadań (alt ctrl del). Szczyt będzie znacznie poniżej całkowitej pamięci fizycznej, więc dlaczego XP używa pliku stronicowania? I dlaczego XP myśli, że kończy Ci się pamięć?
Plik strony to anachronizm z czasów DOS i Windows 98. Jeśli masz wystarczającą ilość pamięci, pozbądź się jej.
źródło