Jakie są niebezpieczeństwa związane z ręcznym ustawianiem MaximumUserVA?

8

Pracuję w Visual Studio 2010 na systemie 32-bitowym i regularnie mam problemy z brakiem pamięci wirtualnej, więc nie mogę już robić takich rzeczy jak kopiowanie / wklejanie w VS.

Sprawdziłem kilka opcji i linia Microsoft na tym wskazała, że ​​działa przy mniejszej liczbie otwartych rozszerzeń, a jeśli to nie zadziała, użyj polecenia bcedit / set IncreaseUserVA 3072.

Wydawało się, że to łagodzi problem, jednak po około dniu użytkowania nagle system Windows zaczyna mówić mi, że brakuje mi miejsca na dysku - na dysku z dostępnym ponad 100 GB. Na przykład przestanie kopiować plik, mówiąc, że nie ma miejsca na jego skopiowanie. Jednak kliknięcie „spróbuj ponownie” się powiedzie. Wiele innych programów, które zapisywały rzeczy na dysku, regularnie się przewracało. (W tym Skype ... dlaczego cały czas piszesz na dysk, Skype ?!)

Uruchomiłem program chkdsk i wykonałem inne podstawowe kontrole przed stwierdzeniem, że moja zmiana konfiguracji musi być odpowiedzialna. Na szczęście przywrócenie ustawień domyślnych zadziałało i jestem teraz z powrotem w akcji.

Większość artykułów (z wyjątkiem Microsoft) na temat ZwiększUserVA mówi „Używaj na własne ryzyko”, i oczywiście zrobiłem to i przegrałem. Ale czy ktoś może wyjaśnić, dlaczego takie zachowanie zostało wykazane / co może pójść tak źle, co wydaje się być uzasadnioną zmianą konfiguracji systemu Windows 7?

Dla przypomnienia - maszyną był laptop Dell Vostro z dyskiem 260 Gb / 5400 rpm, 3,2 Gb (efektywną) pamięci RAM, z systemem Windows 7 ze wszystkimi aktualizacjami przed SP1.

Charango
źródło
Jeśli coś pójdzie nie tak, jak mogę przywrócić ustawienia domyślne. Uruchamiając to polecenie bcedit / set IncreaseUserVA 2048 ??
Saravana Kumar,

Odpowiedzi:

6

Windows dzieli na partycje dostępne 4 GB przestrzeni adresowej w systemie 32-bitowym na pół, dzięki czemu jądro otrzymuje 2 GB, a program 2 GB (jest zwirtualizowany, więc każdy program dostaje 2 GB). Polecenie „bcedit / set IncreaseUserVA 3072” zmienia partycjonowanie, tak aby każdy program otrzymał 3 GB, a miejsce w jądrze tylko 1 GB. Przeważnie działa to dobrze, ale jak zauważyłeś, możesz wpaść w kłopoty. Zwykle jest to jakiś sterownik działający w przestrzeni jądra, który został zakodowany na stałe, aby założyć, że ma 2 GB dostępnej przestrzeni adresowej, co powoduje problemy przy próbie użycia 2 GB przestrzeni adresowej bez zadawania sobie trudu, aby sprawdzić, czy można.

Pan Alpha
źródło
0

Jeśli masz 8 GB pamięci RAM i potrzebujesz większej przestrzeni adresowej użytkownika, najlepszym rozwiązaniem jest instalacja serwera Windows 2003. Nie są wymagane żadne poprawki, a Twoje 32-bitowe aplikacje otrzymują po 4 GB przestrzeni adresowej. Istnieje kilka sterowników, które tego nie lubią i dlatego MS nie włącza tego w systemie operacyjnym na pulpicie. Awarie spowodowane przez posiadanie sterownika, który nie obsługuje tego, są nieprzewidywalne i trudne do zdiagnozowania i dotyczą głównie sterowników, które nie są używane w środowisku serwerowym.

Możliwe jest zmodyfikowanie jądra Vista / Win7 i dodanie go jako opcji do menu rozruchu, aby uzyskać taką samą pamięć, jaka jest dostępna w 32-bitowych wersjach serwera:

www.geoffchappell.com/notes/windows/license/memory.htm

Jest gotowa łatka, która robi te rzeczy, ale nie przetestowałem jej i nie ma źródła ...

Anonimowy Tchórz
źródło
Jak wspomniano, łatka nazywa się patch2pae. Kopia znajduje się w wj32.org/wp/2010/05/04/pae-patch-updated-for-windows-7. Co to jest załatało moduł ładujący i jądro systemu Windows, aby uzyskać dostęp poza przestrzenią adresową 4 GB poprzez rozszerzenie PAE.
g5thomas
0

Czasami ustawiam MaximumUserVa na 3g, aby skompilować duży projekt. Zauważam, że jeśli system przejdzie w stan hibernacji, stanie się bardzo niestabilny po przebudzeniu. Wydaje mi się, że serwery zwykle nie hibernują.

Cleong
źródło