Windows делит доступное 4 ГБ адресного пространства на 32-битной системе пополам, так что ядро получает 2 ГБ, а программа получает 2 ГБ (виртуализируется, поэтому каждая программа получает 2 ГБ). Команда "bcedit / set IncreaseUserVA 3072" изменяет разбиение так, что каждая программа получает 3 ГБ, а пространство ядра - только 1 ГБ. В основном это работает нормально, но, как вы заметили, у вас могут возникнуть проблемы. Обычно это какой-то драйвер, работающий в пространстве ядра, который жестко запрограммирован для предположения, что он имеет 2 ГБ доступного адресного пространства, что вызывает проблемы, когда он пытается использовать 2 ГБ адресного пространства, не пытаясь проверить, можно ли это сделать.
В чем опасность ручной настройки IncreaseUserVA?
Я запускаю Visual Studio 2010 в 32-битной системе и регулярно сталкиваюсь с проблемами из-за нехватки виртуальной памяти, поэтому я больше не могу делать такие вещи, как копирование / вставка в VS.
Я проверил несколько опций, и строка Microsoft указала на то, что она работает с меньшим количеством открытых расширений, и если это не сработало, используйте команду IncreaseUserVA 3072 bcedit / set.
Это, похоже, смягчило проблему, однако после примерно одного дня использования Windows неожиданно начинает сообщать мне, что у меня недостаточно места на диске - более 100 ГБ доступно. Например, он остановит копирование файла, заявив, что не было места для его копирования. Однако нажатие «повторить попытку» будет успешным. Многие другие программы, которые записывают данные на диск, будут регулярно падать. (Включая Skype ... почему ты все время пишешь на диск, Skype ?!)
Я запустил chkdsk и провел другие базовые проверки, прежде чем пришел к выводу, что изменение конфигурации должно быть причиной. К счастью, восстановление настроек по умолчанию сработало, и теперь я снова в действии.
Большинство статей (за исключением, в частности, Microsoft) на IncreaseUserVA гласят: «Используйте на свой страх и риск», и, очевидно, я это сделал и проиграл. Но может ли кто-нибудь объяснить, почему это поведение было продемонстрировано / что может пойти не так с тем, что кажется законным изменением конфигурации Windows 7?
Для справки: это был ноутбук Dell Vostro с дисководом 260 ГБ / 5400 об / мин, оперативной памятью 3,2 ГБ (эффективная), работающей под управлением Windows 7 со всеми обновлениями до SP1.
3 ответа на вопрос
Если у вас 8 ГБ ОЗУ и вам нужно больше адресного пространства пользователя, лучшим решением будет установка сервера Windows 2003. Никаких настроек не требуется, и ваши 32-битные приложения получают по 4 ГБ адресного пространства каждое. Есть некоторые драйверы, которым это не нравится, и поэтому MS не включает это в настольных ОС. Сбои, вызванные наличием драйвера, который не поддерживает это, непредсказуемы и трудно диагностируемы, и в основном возникают в драйверах, которые не используются в серверной среде.
Можно изменить ядро Vista / Win7 и добавить его в качестве опции в меню загрузки, чтобы получить ту же память, которая доступна в 32-разрядных выпусках сервера:
www.geoffchappell.com/notes/windows/license/memory.htm
Есть готовый патч, который делает это, но я не проверял его, и нет никакого источника для этого ...
Иногда я устанавливал IncreaseUserVa на 3g, чтобы компилировать большой проект. Я заметил, что если система переходит в спящий режим, она становится очень нестабильной после пробуждения. Я думаю, что серверы обычно не спят.
Похожие вопросы
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
4
Как заблокировать выровненные по правому краю панели инструментов в Windows 7, чтобы они не выглядел...
-
4
Функция Windows 7 «Aero Snap» в Ubuntu GNOME
-
-
3
Мой второй жесткий диск не виден в Windows 7
-
7
Как заменить Блокнот в Windows 7?
-
2
Как расположить значки панели задач Windows 7 в 2 ряда?
-
1
Проблемы во время сна на Windows 7
-
6
Как управлять функцией привязки Windows 7 с помощью двух мониторов?
-
10
Как мне обновить Windows 7 RC до Windows 7 RTM?
-
3
Какая защита от шпионского ПО доступна для Windows 7?