Появление сообщения об ошибке "Недостаточно памяти" при запуске большого количества программ

Переводы статьи Переводы статьи
Код статьи: 126962 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

Если запущено большое количество программ Windows, то при попытке открыть новые программы или использовать уже запущенные появляется сообщение "Недостаточно памяти". При этом в системе по-прежнему имеется значительный объем физической памяти и файл подкачки достаточного размера.

Причина

Подобное поведение может наблюдаться при истощении кучи рабочего стола в подсистеме WIN32.

Примечание. Эта проблема чаще всего возникает в системе Windows NT 3.5, поскольку в ней размер кучи рабочего стола по умолчанию составляет 512 КБ. В системе Windows NT 3.1 он равен 3072 КБ. Размер кучи по умолчанию был уменьшен с целью повышения производительности.

Решение

Важно! В этот раздел, метод или задачу включены действия, содержащие указания по изменению реестра. Однако его неправильное изменение может привести к возникновению серьезных проблем, поэтому такие действия необходимо выполнять очень аккуратно. Для дополнительной безопасности создайте резервную копию реестра. Это позволит восстановить реестр при возникновении неполадок. Дополнительные сведения о создании резервной копии и восстановлении реестра см. в следующей статье базы знаний Майкрософт:
322756 Создание резервной копии и восстановление реестра Windows
Если для решения проблемы требуется помощь, перейдите к разделу Помощь в решении проблемы. Чтобы устранить проблему самостоятельно, перейдите к разделу Самостоятельное решение проблемы.

Помощь в решении проблемы



Чтобы устранить проблему в автоматическом режиме, нажмите кнопку Fix it или щелкните соответствующую ссылку. В диалоговом окне Загрузка файла нажмите кнопку Выполнить и следуйте инструкциям мастера устранения проблем.

Устранить проблему
Microsoft Fix it 50496

Примечания
  • Мастер может быть доступен только на английском языке. Однако функцию автоматического исправления можно использовать в версиях Windows на любых языках.
  • Можно загрузить решение на любой компьютер, а затем сохранить его на устройстве флэш-памяти или компакт-диске и запустить на нужном компьютере.
  • Если не удалось решить проблему с помощью указанных рекомендаций, увеличьте объем памяти на компьютере.

Перейдите к разделу Проблема устранена?



Самостоятельное решение проблемы

Чтобы устранить эту проблему, увеличьте размер кучи рабочего стола, выполнив указанные ниже действия.
  1. Запустите редактор реестра (Regedt32.exe).
  2. В поддереве
    HKEY_LOCAL_MACHINE
    перейдите к следующему разделу:
    \System\CurrentControlSet\Control\Session Manager\SubSystems
  3. Выберите параметр Windows.
  4. В меню Правка выберите пункт Строковый параметр.
  5. Увеличьте значение параметра SharedSection.

    В системе Windows NT
    Параметр SharedSection задает размер куч рабочего стола и системы с помощью указанного ниже формата.
    SharedSection=xxxx,yyyy
    Добавьте число 256 или 512 после значения yyyy.

    В системах Windows 2000, Windows XP и Windows Server 2003
    Параметр SharedSection задает размер куч рабочего стола и системы с помощью указанного ниже формата.
    SharedSection=xxxx,yyyy,zzzz
    В 32-разрядных операционных системах значение yyyy необходимо изменить на 12288.
    Для значения zzzz установите число 1024.
    В 64-разрядных операционных системах значение yyyy необходимо изменить на 20480.
    Для значения zzzz установите число 1024.

Дополнительная информация

В системе Windows NT для всех программ Windows, запускаемых на рабочем столе, используется специальная куча памяти. Куча рабочего стола используется для всех объектов (окна, меню, перья, значки и т. д.). При запуске большого количества программ Windows ей может не хватить памяти. Если для выполнения запроса на выделение недостаточно памяти, система, как правило, выводит сообщение об ошибке, чтобы предупредить пользователя о ее нехватке. Однако некоторые программы не совсем точно обрабатывают этот сбой, и поэтому в некоторых случаях для создания диалогового окна сообщения об ошибке может оказаться недостаточно памяти. В результате запрашиваемая операция завершается без вывода предупреждения.

В редакторе реестра раздел SharedSection представлен длинной строкой. Его значение по умолчанию приведено ниже.
   %SystemRoot%\system32\csrss.exe
   ObjectDirectory=\Windows
   SharedSection=1024,3072,512
   Windows=On
   SubSystemType=Windows
   ServerDll=basesrv,1
   ServerDll=winsrv:GdiServerDllInitialization,4
   ServerDll=winsrv:UserServerDllInitialization,3
   ServerDll=winsrv:ConServerDllInitialization,2
   ProfileControl=Off
   MaxRequestThreads=16
				


Первое значение (1024) определяет размер кучи для всех рабочих столов. К нему относятся таблица глобальных дескрипторов (дескрипторы Windows являются уникальными на уровне компьютера) и общие параметры системы (например, SystemMetrics). Обычно это значение изменять не требуется.

Второе значение (3072) управляет размером кучи рабочего стола, связанным с интерактивным оконным терминалом, который используется для объектов Windows. Статическое значение позволяет предотвратить чрезмерное использование ресурсов приложениями с неправильным поведением. Поскольку куча рабочего стола сопоставляется с адресным пространством каждого процесса, данное значение нельзя устанавливать на произвольно высокий уровень, так как это приведет к снижению производительности. Однако оно должно быть достаточным для работы всех приложений.

Третье значение (512) управляет размером кучи для каждого рабочего стола, который связан с неинтерактивным оконным терминалом. Если данное значение не указано, этот размер кучи рабочего стола будет таким же, как и для интерактивных оконных терминалов (второе значение SharedSection).
Дополнительные сведения о параметрах раздела SharedSection см. в следующей статье базы знаний Майкрософт:
184802 PRB: библиотека User32.dll или Kernel32.dll не инициализируется

Проблема устранена?

  • Проверьте, устранена ли проблема. Если это так, пропустите дальнейшие инструкции, приведенные в этом разделе. Если устранить проблему не удалось, обратитесь в службу поддержки.
  • Мы ценим ваши замечания. Чтобы оставить отзыв или сообщить о проблемах, связанных с этим решением, добавьте комментарий в блог Помощь в решении проблемы или отправьте нам сообщение по электронной почте.

Свойства

Код статьи: 126962 - Последний отзыв: 10 ноября 2010 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • операционная система Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • операционная система Microsoft Windows NT Workstation 3.5
  • операционная система Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • операционная система Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
Ключевые слова: 
kbenv kbmsifixme kbfixme KB126962

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com