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ć!