Wersja TL; DR: Pozwól systemowi Windows zająć się ustawieniami pamięci / pliku strony. Ludzie ze stwardnienia rozsianego spędzili o wiele więcej godzin zastanawiając się nad tymi problemami niż większość z nas administratorów.
Wydaje się, że wiele osób zakłada, że system Windows wypycha dane do pliku strony na żądanie. EG: coś chce dużo pamięci i nie ma wystarczającej ilości pamięci RAM, aby zaspokoić tę potrzebę, więc system Windows zaczyna szalenie zapisywać dane z pamięci RAM na dysk w ostatniej chwili, aby mógł zwolnić pamięć RAM na nowe wymagania.
To jest niepoprawne. Pod maską dzieje się więcej. Ogólnie mówiąc, system Windows prowadzi magazyn kopii zapasowych , co oznacza, że chce zobaczyć wszystko, co jest w pamięci, także na dysku. Teraz, gdy coś pojawia się i wymaga dużej ilości pamięci, system Windows może bardzo szybko wyczyścić pamięć RAM, ponieważ te dane są już na dysku i są gotowe do przeniesienia z powrotem do pamięci RAM, jeśli jest to wymagane. Można więc powiedzieć, że wiele z tego, co znajduje się w pliku stronicowania, znajduje się również w pamięci RAM; dane zostały wstępnie umieszczone w pliku stronicowania, aby przyspieszyć nowe wymagania dotyczące alokacji pamięci.
Opisanie specyficznych mechanizmów zajmie wiele stron (patrz rozdział 7 wewnętrznych składników systemu Windows i zauważ, że wkrótce pojawi się nowe wydanie ), ale jest kilka fajnych rzeczy do odnotowania. Po pierwsze, większość tego, co jest w pamięci RAM, jest już wewnętrznie na dysku - na przykład kod programu pobrany z pliku wykonywalnego lub biblioteki DLL. Nie trzeba tego zapisywać w pliku stronicowania; Windows może po prostu śledzić, skąd bity zostały pierwotnie pobrane. Po drugie, system Windows śledzi, które dane w pamięci RAM są najczęściej używane, a zatem usuwa z pamięci RAM dane, które najdłużej przeszły bez dostępu.
Całkowite usunięcie pliku stronicowania może spowodować więcej awarii dysku. Wyobraź sobie prosty scenariusz, w którym niektóre aplikacje uruchamiają się i wymagają 80% istniejącej pamięci RAM. To wymusiłoby bieżący kod wykonywalny z pamięci RAM - być może nawet kod systemu operacyjnego. Teraz za każdym razem, gdy te inne aplikacje - lub sam system operacyjny (!!) potrzebują dostępu do tych danych, system operacyjny musi wysyłać je ze sklepu z kopiami zapasowymi na dysku, co prowadzi do znacznego wstrząsu. Ponieważ bez pliku stronicowania służącego jako magazyn kopii zapasowych dla danych przejściowych, jedyne elementy, które można stronicować, to pliki wykonywalne i biblioteki DLL, które na początku miały nieodłączne magazyny kopii zapasowych.
Istnieje oczywiście wiele scenariuszy dotyczących zasobów / wykorzystania. Nie jest niemożliwe, abyś miał jeden ze scenariuszy, w którym usunięcie pliku strony nie spowodowałoby żadnych negatywnych skutków, ale są to mniejszości. W większości przypadków usunięcie lub zmniejszenie pliku strony doprowadzi do zmniejszenia wydajności w scenariuszach szczytowego wykorzystania zasobów.
Niektóre referencje:
dmo odnotowało ostatni post Erica Lipperta, który pomaga w zrozumieniu pamięci wirtualnej (choć jest mniej związany z pytaniem). Kładę to tutaj, ponieważ podejrzewam, że niektórzy ludzie nie przewijają w dół do innych odpowiedzi - ale jeśli uznasz to za cenne, jesteś winien dmo głosowania, więc skorzystaj z linku, aby się tam dostać!
Eric Lippert napisał niedawno wpis na blogu opisujący sposób zarządzania pamięcią przez system Windows. Krótko mówiąc, model pamięci systemu Windows można uznać za magazyn dyskowy, w którym pamięć RAM działa jako pamięć podręczna zwiększająca wydajność.
źródło
Jak wynika z innych odpowiedzi, jestem jedynym, który wyłączył plik strony i nigdy go nie żałowałem. Wspaniały :-)
Zarówno w domu, jak i w pracy mam system Vista w wersji 64-bitowej z 8 GB pamięci RAM. Oba mają wyłączony plik strony. W pracy nie jest dla mnie niczym niezwykłym posiadanie kilku wystąpień Visual Studio 2008, Virtual PC z Windows XP, 2 wystąpień SQL Server i Internet Explorer 8 z wieloma kartami współpracującymi ze sobą. Rzadko osiągam 80% pamięci.
Używam również snu hybrydowego każdego dnia (hibernacji ze snem) bez żadnych problemów.
Zacząłem eksperymentować z tym, gdy miałem Windows XP z 2 GB pamięci RAM i naprawdę zauważyłem różnicę. Klasyczny przykład miał miejsce, gdy ikony w Panelu sterowania przestały się wyświetlać jeden po drugim, ale wszystkie naraz. Znacząco wydłużył się także czas uruchamiania Firefoksa / Thunderbirda. Wszystko zaczęło działać natychmiast po tym, jak coś kliknąłem. Niestety 2 GB było za małe na użycie moich aplikacji (Visual Studio 2008, Virtual PC i SQL Server), więc włączyłem je ponownie.
Ale teraz z 8 GB nigdy nie chcę wracać i włączać pliku strony.
Dla tych, którzy mówią o ekstremalnych przypadkach, weź to z moich czasów Windows XP.
Gdy próbujesz załadować dużą tabelę przestawną do Excela z zapytania SQL, Excel 2000 dość szybko zwiększa zużycie pamięci.
Gdy plik strony jest wyłączony - zaczekaj chwilę, a następnie program Excel wysadzi się w powietrze, a system wyczyści po nim całą pamięć.
Gdy masz włączony plik stronicowania - odczekaj chwilę, a gdy zauważysz, że coś jest nie tak, nie możesz zrobić prawie nic ze swoim systemem. Twój dysk twardy działa jak diabli i nawet jeśli w jakiś sposób uda Ci się uruchomić Menedżera zadań (po kilku minutach oczekiwania) i zabić
excel.exe
, musisz poczekać minutę, aż system załaduje wszystko z pliku strony.Jak zobaczyłem później, program Excel 2003 obsługuje tę samą tabelę przestawną bez żadnych problemów z wyłączonym plikiem strony - więc nie był to „zbyt duży problem z zestawem danych”.
Tak więc, moim zdaniem, wyłączony plik strony nawet czasami chroni cię przed źle napisanymi aplikacjami.
Krótko mówiąc: jeśli masz świadomość wykorzystania pamięci - możesz ją bezpiecznie wyłączyć.
Edycja: Chcę tylko dodać, że zainstalowałem system Windows Vista SP2 bez żadnych problemów.
źródło
Przed dokonaniem korekt pliku stron może być konieczne wykonanie pomiaru, aby zrozumieć, w jaki sposób twój system wykorzystuje pamięć. Lub (jeśli nadal chcesz dokonywać korekt), przed i po tych korektach.
Perfmon jest narzędziem do tego; nie menedżer zadań. Kluczowym licznikiem jest Pamięć - wprowadzanie stron / s . Będzie to specjalnie wykres twardych błędów stron, te, w których potrzebna jest do odczytu z dysku przed procesem może być kontynuowana. Błędy miękkiej strony (które są większością elementów wykreślonych w domyślnym liczniku błędów stron / s ; zalecam zignorowanie tego licznika!) Tak naprawdę nie stanowią problemu; po prostu pokazują elementy odczytywane normalnie z pamięci RAM.
Wykres Perfmon http://g.imagehost.org/0383/perfmon-paging.png
Powyżej znajduje się przykład systemu bez zmartwień, jeśli chodzi o pamięć. Bardzo rzadko dochodzi do gwałtownych awarii - nie można ich uniknąć, ponieważ dyski twarde są zawsze większe niż pamięć RAM. Ale wykres jest w dużej mierze równy zero. Tak więc system operacyjny bardzo rzadko korzysta ze stron z zaplecza.
Jeśli widzisz wykres Memory - Pages Input / sec, który jest znacznie ostrzejszy niż ten, właściwą odpowiedzią jest albo mniejsze zużycie pamięci (uruchamianie mniej programów), albo dodanie pamięci RAM. Zmiana ustawień pliku strony nie zmieni faktu, że system wymaga więcej pamięci niż faktycznie ma.
Dodatkowym przydatnym licznikiem do monitorowania jest PhysicalDisk - Śr. Długość kolejki (wszystkie wystąpienia). To pokaże, jak bardzo twoje zmiany wpływają na samo użycie dysku. Dobrze zachowujący się system pokaże ten licznik uśredniając na 4 lub mniej na wrzeciono .
źródło
Od 8 lat korzystam z mojego systemu Vista x64 o pojemności 8 GB bez pliku stronicowania, bez żadnych problemów.
Problemy pojawiły się, gdy naprawdę wykorzystałem swoją pamięć!
Trzy tygodnie temu zacząłem edytować naprawdę duże pliki obrazów (~ 2 GB) w Photoshopie. Jedna sesja edytorska pochłonęła całą moją pamięć. Problem: Nie mogłem zapisać swojej pracy, ponieważ Photoshop potrzebuje więcej pamięci, aby zapisać plik!
A ponieważ to sam Photoshop zjadał całą pamięć, nie mogłem nawet zwolnić pamięci, zamykając programy (cóż, zrobiłem to, ale było to zbyt mało, aby pomóc).
Wszystko, co mogłem zrobić, to zeskrobać moją pracę, włączyć plik strony i ponownie wykonać całą moją pracę - straciłem z tego powodu dużo pracy i nie mogę zalecić wyłączenia pliku strony.
Tak, przez większość czasu będzie działać świetnie. Ale chwila pęknięcia może być bolesna.
źródło
Podczas gdy odpowiedzi tutaj dość dobrze obejmowały ten temat, nadal polecam ten artykuł:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
Prawie na końcu mówi o rozmiarze PF:
Naprawdę lubię artykuły Marka.
źródło
Najlepszą odpowiedzią, jaką mogę wymyślić, jest to, że przy normalnym obciążeniu nie możesz zużyć 8 GB, ale to nieoczekiwane obciążenia powodują problemy.
W przypadku pliku strony system będzie co najmniej wolno działał, gdy zacznie uderzać w stronę. Ale jeśli usuniesz plik strony, po prostu umrze (z tego co wiem).
Ponadto 8 GB wydaje się teraz dużo, ale kilka lat później można uznać to za minimalną ilość pamięci dla wielu programów.
Tak czy inaczej - zaleciłbym przechowywanie co najmniej małego pliku strony; ale inni, proszę, poprawcie mnie, jeśli będę poza bazą.
źródło
Nie wspomniałeś, czy jest to 64-bitowa wersja systemu Windows, ale chyba tak.
Plik strony służy wielu rzeczom, w tym generowaniu zrzutu pamięci w przypadku BSoD (Blue Screen of Death).
Jeśli nie masz pliku stronicowania, system Windows nie będzie mógł wysłać strony na dysk, jeśli nie ma wystarczającej ilości pamięci. Możesz myśleć, że przy 8 GB nie osiągniesz tego limitu. Ale możesz mieć złe programy przeciekające z czasem.
Myślę, że nie pozwoli ci przejść w stan hibernacji / czuwania bez pliku strony (ale nie próbowałem jeszcze).
Windows 7/2008 / Vista nie zmienia użycia pliku strony.
Zobaczyłem jedno wyjaśnienie Marka Russinowicza (Microsoft Fellow) wyjaśniające, że Windows może działać wolniej bez pliku strony niż z plikiem strony (nawet z dużą ilością pamięci RAM). Ale nie mogę znaleźć przyczyny.
Czy brakuje Ci miejsca na dysku? Zachowałbym minimum 1 GB, aby móc zrzucić jądro w przypadku BSoD.
źródło
Wyłączyłem plik strony (8 GB na laptopie x86) i miałem dwa problemy nawet przy 2500 MB wolnego:
Błąd ASP.NET podczas próby aktywacji usługi WCF : Sprawdzanie bramek pamięci nie powiodło się, ponieważ wolna pamięć (399,5566,608 bajtów) jest mniejsza niż 5% całkowitej pamięci. W rezultacie usługa nie będzie dostępna dla przychodzących żądań. Aby rozwiązać ten problem, zmniejsz obciążenie komputera lub dostosuj wartość minFreeMemoryPercentageToActivateService w elemencie konfiguracji serviceHostingEnvironment.
Zupełnie jak 3,7 GB to mniej niż 5% z 8 GB Nigdy się nie dowiem !!
Uzyskiwanie Zamknij programy, aby zapobiec utracie informacji : Gdy 75% mojej pamięci RAM jest używane, pojawia się okno dialogowe z informacją o zamknięciu programów. Możesz to wyłączyć, modyfikując rejestr (lub ewentualnie wyłączając „usługę zasad diagnostyki”).
W końcu zdecydowałem się ponownie włączyć. System Windows po prostu prosty i prosty nigdy nie został zaprojektowany do użycia bez pliku strony. Jest zoptymalizowany do pracy ze stronicowaniem, nie bez. Jeśli planujesz używać więcej niż 75% pamięci i nie chcesz zadzierać z rejestrem - może to nie być dla Ciebie.
źródło
Jedyną osobą, która może ci powiedzieć, czy twoje serwery lub stacje robocze „potrzebują” pliku stronicowania, jesteś Ty , przy ostrożnym korzystaniu z monitora wydajności lub jak to się obecnie nazywa. Jakie aplikacje używasz, jakie są ich zastosowania i jakie jest największe możliwe użycie pamięci, jakie możesz potencjalnie zobaczyć?
Czy stabilność może być zagrożona ze względu na oszczędność niewielkiej ilości pieniędzy na mniejszych dyskach twardych?
Co się stanie, gdy pobierzesz bardzo dużą łatkę, powiedzmy dodatek service pack. Jeśli usługa instalatora zdecyduje, że potrzebuje więcej pamięci, niż się spodziewałeś, aby rozpakować łatkę, co wtedy? Jeśli twój skaner antywirusowy (słusznie) zdecyduje się przeskanować ten bardzo duży pakiet, jakiego rodzaju użycia pamięci będzie potrzebował podczas rozpakowywania i skanowania tego pliku łatki - mam nadzieję, że plik archiwum łatek nie zawiera żadnych archiwów, ponieważ to absolutnie dane dotyczące wykorzystania pamięci o morderstwie .
Co mi może powiedzieć, że usuwając plik strony ma znacznie większe prawdopodobieństwo zranienia niż pomaga. Nie widzę powodu, dla którego byś go nie miał - jestem pewien, że może być kilka specjalistycznych przypadków, w których się mylę, ale to zupełnie inna dziedzina.
źródło
Całkowita dostępna pamięć to plik strony + rzeczywista pamięć.
Kluczowym pytaniem jest, czy przewidywane całkowite zużycie pamięci dla wszystkich aplikacji i wykorzystanie systemu operacyjnego osiągnie 8 GB. Jeśli średnie użycie pamięci wynosi 2 GB, a maksymalne zużycie pamięci to tylko 4 GB, to plik stronicowania jest bezcelowy. Jeśli twoje maksymalne użycie pamięci jest bliższe 6-7 Gb lub więcej, dobrym pomysłem jest mieć plik stronicowania.
PS: Nie zapomnij pozwolić na rozwój w przyszłości!
źródło
Wydaje się, że wiele poważnie ograniczonych osób ma opinie na ten temat, ale tak naprawdę nigdy nie próbowało uruchomić swojego komputera bez pliku strony.
Niewielu, jeśli prawie żaden, próbowało. Jeszcze mniej wydaje się wiedzieć, jak Windows traktuje plik strony. Nie „wypełnia się” tylko, gdy zabraknie fizycznej pamięci RAM. Założę się, że większość z was nawet nie wiedziała, że „wolna” pamięć RAM jest używana jako pamięć podręczna plików!
Możesz uzyskać znaczną poprawę wydajności, wyłączając plik strony. Twój system będzie bardziej podatny na błędy braku pamięci (i czy wiesz, jak aplikacje reagują w tym scenariuszu - w większości przypadków system operacyjny po prostu kończy działanie aplikacji). Czasy rozruchu z trybu gotowości lub długich okresów bezczynności będą znacznie szybsze.
Jeśli Microsoft rzeczywiście zezwolił ci na ustawienie opcji, dzięki której plik strony zostanie wykorzystany TYLKO wtedy, gdy nie ma fizycznej pamięci RAM (a wszystkie bufory plików zostały odrzucone), to sądzę, że nie można było wiele zyskać na wyłączeniu pliku strony.
źródło
Jest to antidotum, ale uruchamiamy Serwer terminali Windows Server 2003 dla około 20 użytkowników, z 10-15 zalogowanymi jednocześnie i ma 8 GB pamięci RAM. Nie uruchamiamy pliku strony, a nasz serwer działa szybciej niż wcześniej. To oczywiście nie jest rozwiązanie wszystkiego, ale działamy w ten sposób od dwóch lat i nie mieliśmy problemów, o których jestem świadomy.
źródło