В чем опасность ручной настройки IncreaseUserVA?

49932
Charango

Я запускаю 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.

8
Если что-то пойдет не так, как я могу установить его обратно по умолчанию. Запустив эту команду bcedit / set IncreaseUserVA 2048 ?? Saravana Kumar 12 лет назад 0

3 ответа на вопрос

6
Mr Alpha

Windows делит доступное 4 ГБ адресного пространства на 32-битной системе пополам, так что ядро ​​получает 2 ГБ, а программа получает 2 ГБ (виртуализируется, поэтому каждая программа получает 2 ГБ). Команда "bcedit / set IncreaseUserVA 3072" изменяет разбиение так, что каждая программа получает 3 ГБ, а пространство ядра - только 1 ГБ. В основном это работает нормально, но, как вы заметили, у вас могут возникнуть проблемы. Обычно это какой-то драйвер, работающий в пространстве ядра, который жестко запрограммирован для предположения, что он имеет 2 ГБ доступного адресного пространства, что вызывает проблемы, когда он пытается использовать 2 ГБ адресного пространства, не пытаясь проверить, можно ли это сделать.

0
Anonymous Coward

Если у вас 8 ГБ ОЗУ и вам нужно больше адресного пространства пользователя, лучшим решением будет установка сервера Windows 2003. Никаких настроек не требуется, и ваши 32-битные приложения получают по 4 ГБ адресного пространства каждое. Есть некоторые драйверы, которым это не нравится, и поэтому MS не включает это в настольных ОС. Сбои, вызванные наличием драйвера, который не поддерживает это, непредсказуемы и трудно диагностируемы, и в основном возникают в драйверах, которые не используются в серверной среде.

Можно изменить ядро ​​Vista / Win7 и добавить его в качестве опции в меню загрузки, чтобы получить ту же память, которая доступна в 32-разрядных выпусках сервера:

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

Есть готовый патч, который делает это, но я не проверял его, и нет никакого источника для этого ...

Как уже упоминалось, патч называется patch2pae. Копия находится по адресу http://wj32.org/wp/2010/05/04/pae-patch-updated-for-windows-7/. Для чего она исправила загрузчик Windows и ядро, чтобы получить доступ к адресному пространству, превышающему 4 ГБ, через расширение PAE. g5thomas 10 лет назад 0
0
cleong

Иногда я устанавливал IncreaseUserVa на 3g, чтобы компилировать большой проект. Я заметил, что если система переходит в спящий режим, она становится очень нестабильной после пробуждения. Я думаю, что серверы обычно не спят.