Jak ograniczyć przebijanie dysku (stronicowanie)?


11

Mam 4 GB pamięci RAM, ale system Windows wciąż czasami miażdży dysk (szczególnie często, gdy aplikacja jest minimalizowana przez pewien czas, a następnie ponownie ją aktywuję). Całkowicie głupie, ponieważ Menedżer zadań pokazuje, że 2 GB pamięci RAM jest bezpłatne. Czy jest jakiś sposób, aby zapobiec wymianie pamięci programu przez system Windows?

Próbowałem ustawić opcję Superfetch, aby buforowała tylko pliki startowe (pomogło to trochę) i wyłączyć plik stronicowania (bardzo pomógł i działał dla mnie dobrze w systemie Windows XP; ale Windows Vista / Windows 7 nie pozwala na to - pokazuje „niski” często w pamięci ”, nawet jeśli mam 1 GB wolnej pamięci RAM).

Co możesz mi doradzić?


6
Nie chcesz wyłączać pobierania z 4 GB pamięci RAM, ale możesz wyłączyć indeksowanie. Pozostaw plik strony w spokoju, Windows wie o nim więcej niż ktokolwiek z nas. Jednak nie mogę pomóc w stronicowaniu.
Phoshi

2
Nie, na pewno chcę to wyłączyć. Cholerna rzecz jest zbyt źle zaprojektowana. Raz znalazłem, że ładuje wszystkie pliki jakiejkolwiek gry przy każdym rozruchu (grałem wieczorami), i to zjadło połowę mojej pamięci RAM, i to było ostatniego dnia Superfetch działał na moim komputerze z nieograniczonymi ustawieniami.
skevar7

1
Termin „thrashing” ogólnie odnosi się do sytuacji, w której pamięć fizyczna jest pełna lub prawie pełna i występują ciągłe zamiany stron. Nie odnosi się do normalnej aktywności zamiany stron. To, co widzisz, nie jest druzgocące, ale po prostu sposób zaprojektowania algorytmu zarządzania pamięcią. Zachowaj przestrzeń dostępną dla nowo spawnowanych procesów, zakładając, że proces, którego okno jest zminimalizowane, nie jest używany i powinien przenieść swoją pamięć na dysk i tym podobne.
spowers

2
To najgorsza decyzja, jaką można założyć, ponieważ ponieważ okno jest zminimalizowane, nie jest używane. Jeśli jest zminimalizowany, dzieje się tak dlatego, że nie ma na nim miejsca na ekranie podczas wielozadaniowości. Mam dość powrotu do komputera i pomimo tego, że mam niewiele programów, opóźnia się i zacina, aby przywrócić dane z pliku strony, gdy przywracam niektóre okna z zminimalizowanego stanu, pomimo GIG wolnej pamięci RAM. Plik strony NIGDY nie powinien być dotykany, chyba że zabraknie mi pamięci RAM. Jeśli system Windows chce przyjąć założenia dotyczące zminimalizowanych programów, zrób to, gdy w rzeczywistości nie ma wystarczającej ilości pamięci RAM.
Triynko

Odpowiedzi:


7

Mark Russianovich napisał dobry długi artykuł na temat pamięci wirtualnej,
przekraczając granice systemu Windows: pamięć wirtualna

Pamięć wirtualna oddziela widok pamięci programu od pamięci fizycznej systemu, więc system operacyjny decyduje, kiedy i czy przechowywać kod programu i dane w pamięci fizycznej, a kiedy przechowywać w pliku. Główną zaletą pamięci wirtualnej jest to, że pozwala ona na jednoczesne wykonywanie większej liczby procesów, niż mogłoby się zmieścić w pamięci fizycznej.

Podczas gdy pamięć wirtualna ma ograniczenia związane z limitami pamięci fizycznej, pamięć wirtualna ma ograniczenia, które pochodzą z różnych źródeł i są różne w zależności od konsumenta. Na przykład istnieją limity pamięci wirtualnej, które dotyczą poszczególnych procesów uruchamiających aplikacje, system operacyjny i cały system. Ważne jest, aby pamiętać podczas czytania, że ​​pamięć wirtualna, jak sama nazwa wskazuje, nie ma bezpośredniego połączenia z pamięcią fizyczną. System Windows przypisujący pamięci podręcznej plików pewną ilość pamięci wirtualnej nie określa, ile danych plików faktycznie buforuje w pamięci fizycznej; może to być dowolna kwota od zera do więcej niż kwota adresowalna za pośrednictwem pamięci wirtualnej.

To bardzo dobra lektura.

Jak duży powinienem zrobić plik stronicowania?
Być może jednym z najczęściej zadawanych pytań związanych z pamięcią wirtualną jest, jak duży powinienem zrobić plik stronicowania? W sieci i czasopismach z gazetami o Windowsie nie ma końca śmiesznych porad, a nawet Microsoft opublikował mylące rekomendacje. Prawie wszystkie sugestie opierają się na pomnożeniu wielkości pamięci RAM przez pewien współczynnik, przy czym wspólne wartości to 1,2, 1,5 i 2. Teraz, gdy rozumiesz rolę, jaką odgrywa plik stronicowania w definiowaniu limitu zatwierdzeń w systemie i w jaki sposób procesy przyczyniają się do obciążenia zatwierdzeń, masz dobrą pozycję, aby zobaczyć, jak naprawdę bezużyteczne są takie formuły.


Wcześniejszy artykuł: Przekraczanie granic systemu Windows: pamięć fizyczna

Układ pamięci fizycznej można zobaczyć za pomocą narzędzia Meminfo Alexa Ionescu .


5
Nie ma dla mnie nic nowego. I to wcale nie jest odpowiedź na moje pytanie.
skevar7

2
@ skevar7: Być może nie jest to odpowiedź dla ciebie, ale dobre linki do wyjaśnień na temat całej sprawy dla kogoś, kto znalazłby ten temat i nie miałby takiej wiedzy jak ty.
Gnoupi,

1
reguła: nie wspominaj nawet o stronicowaniu, chyba że jest to absolutnie pewne związane z twoim problemem lub jeśli chcesz po prostu wywołać niekończącą się dyskusję na temat DO i NIE ... to samo dotyczy przeglądarek internetowych i oprogramowania antywirusowego: )

1
Jestem absolutnie pewien, że stronicowanie jest winne, bo perfmon pokazuje poważne błędy, gdy dysk jest wali. Z pewnością wiem, że wyłączenie pliku stronicowania znacznie poprawia wydajność. Jest to obiektywny fakt i można go zmierzyć. Jedynym problemem jest to, że Windows, ponieważ Vista nie chce już pracować w takiej konfiguracji.
skevar7

3
@ skevar7: A może, być może, w Microsoft są kompetentni ludzie, którzy pomyśleli i postanowili, że plik strony jest potrzebny. Nie zrobili tego, żeby ci przeszkadzać.
Gnoupi,

4

Po prostu pozostaw zarządzanie pamięcią wirtualną Windowsowi, to robi dobrą robotę. Przywoływanie (a co za tym idzie obrzęki Marka Russinovica w tej sprawie) są raczej nieistotne dla rażenia dysku (jeśli masz dużo pamięci systemowej), szukasz ulepszeń NTFS .

O'Reilly ma interesujący artykuł na temat hacków wydajności NTFS .

Po stronie sprzętowej: lepszy dysk twardy z wyższą prędkością wirowania i większą pamięcią podręczną również bardzo pomoże.

A oto jak zabić ostrzeżenie o niskim poziomie pamięci, przejąć na własność i nuke następujące klucze rejestru.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {5EE64AFB-398D-4edb-AF71-3B830219ABF7}]

i

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}]

Zapobiegnie to ładowaniu RADARU przez usługę diagnostyczną. Działa dla mnie w systemie Windows Vista, klucze są obecne w systemie Windows 7. Nie próbowałem tego jednak - po prostu wykonaj kopię zapasową tych kluczy przed ich usunięciem.


2

Jedynym sposobem, jaki znalazłem, było zwiększenie rozmiaru pamięci RAM do 8 GB i wyłączenie stronicowania przez ustawienie

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Management Memory \ DisablePagingExecutive = 1

(wymagany restart).

To zmniejszyło aktywność dysku do prawie zera.


Podejrzewam, że miałeś dziwny lub powolny dysk, żeby tego chcieć. Mam coś podobnego i wbrew temu, co większość tutaj zakłada, to, co zrobiłeś, byłoby dobrym rozwiązaniem. Zwiększenie pamięci RAM i stosowanie minimalnego stronicowania dysku lub jego brak może być bardziej inteligentnym (i ekonomicznym) rozwiązaniem niż zastępowanie wolnych nośników.
j riv

To ustawienie rejestru nie „wyłącza stronicowania”. Wyłącza stronicowanie tylko dla stron, które w innym przypadku byłyby stronicowane przez ntoskrnl.exe i pulę stronicowaną.
Jamie Hanrahan,

Nie wiem o Vista, ale w Windows 7 wyłączam stronicowanie i nie mam problemów i ostrzeżeń. Ma to 8 lub 16 GB pamięci RAM.
i486

1

Sprawdź Panel sterowania \ System i zabezpieczenia \ System> Zaawansowane ustawienia systemu> [Zaawansowane]> Wydajność: Ustawienia> [Zaawansowane]

Planowanie procesora ma związek z problemem, podobnie jak możliwość wyłączenia pliku stronicowania, czego nie powinieneś robić. (Potrzebujesz tego)


0

Wygląda na to, że zainstalowałeś pamięć podręczną / urządzenie do czyszczenia pamięci. Przenoszą aplikacje, aby zamieniać je, gdy są minimalizowane, zamiast pozostawiać je w pamięci.

Czy system działa powoli, czy używasz słowa „thrash”, ponieważ widzisz migające światło HD?


Bez środków czyszczących. Czasami wykonanie prostej operacji (5–10 sekund) zajmuje dużo więcej czasu niż zwykle, a dysk pada. Zdarza się to zazwyczaj po pewnym czasie bezczynności aplikacji. Bardzo proste omperacje - otwórz nową kartę w Operze, utwórz nowy plik w Visual Studio itp. Podejrzewam, że algorytm stronicowania Windows jest daleki od ideału. Całkowite wyłączenie pliku stronicowania działało dla mnie dobrze w WinXP, ale niestety Vista i Win7 na to nie pozwalają.
skevar7

W przeciwieństwie do wielu systemów operacyjnych, Windows znosi sporo problemów sprzętowych bez awarii i może się zdarzyć, że w tle odbywa się pewne odzyskiwanie, które powoduje opóźnienie. Wiem, że jest do bani, ale uruchom test HD, aby upewnić się, że nie jest podłączony, ponieważ to naprawdę brzmi jak problem z I / O, ponieważ problem zniknie, gdy nie pozwolisz systemowi na zamianę. Sprawdź aktualizacje BIOS-u związane z I / O, kontrolerem HD itp., Ponieważ może to być znany problem. Czy system potrzebuje FOREVER na uruchomienie (XP, Vista lub 7)? Jeśli tak, to z pewnością problem We / Wy.
UnderLoK,

* Powinienem powiedzieć: „Windows
znosi sporo

0

Przejdź na Linuksa, to nie robi tego.

Ludzie mówią, że system Windows jest mądrzejszy od ciebie i nie powinieneś majstrować przy ustawieniach plików stronicowania i mają rację. Ale ten system jest w większości dostrojony, aby niemal natychmiast przydzielić nową pamięć dla procesu i robi to dobrze. Jednym z efektów ubocznych jest to, że cały czas przenosi wszystko, co masz w pamięci, na dysk, więc kiedy potrzebuje nowej części pamięci, może po prostu usunąć tę część pamięci i dać ją od razu, jeśli oczywiście się nie zmieniła. Uważam, że kiedy pozostawisz uruchomione aplikacje, wszystkie dane zostaną zapisane na dysku, a następnie w pewnym momencie inne aplikacje lub system buforowania zaczną korzystać z tej pamięci. Tak więc aplikacja pozostawia minimum fizycznej ilości danych w fizycznej pamięci RAM, a kiedy ponownie zaczniesz z niej korzystać, musi odzyskać wszystko z dysku.

To powiedziawszy, nie sądzę, że możesz zrobić z tym wszystko, to tylko jedna z głównych właściwości systemu. Możesz tylko pogorszyć sytuację, wyłączając stronę lub wykonując inne strojenie systemu. Nie możesz sprawić, by działało tak, jak chcesz, ponieważ nie zostało to napisane z myślą o tym.


2
I jeszcze raz odpowiedź „moje okna to robią, jak mogę ...? -> Przenieś do systemu Linux”. Jednak reszta odpowiedzi jest prawidłowa, ale mógłbyś zrobić bez pierwszego zdania.
Gnoupi,

OK, ale kiedy masz 8 GB pamięci RAM i rzeczywiście potrzebujesz 3 GB - dlaczego konieczne jest dokonywanie wymiany na dysk? Z drugiej strony wyobraź sobie, że masz 2 GB fizycznej pamięci RAM + 2 GB pliku wymiany - jak działa ten system bez „eksplozji”? 4 GB wystarcza na wszystko, ale przy 8 GB fizycznej pamięci RAM + zamiana 0 „możliwe” jest posiadanie niewystarczającej ilości pamięci. W jaki sposób? Myślę, że algorytm pamięci wirtualnej jest nieprawidłowy w systemie Windows 95 razy i nie został zmieniony w systemie Windows 10.
i486
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.