Відображається повідомлення про помилку "Бракує пам’яті", коли на комп’ютері запущено багато програм

Переклади статей Переклади статей
Номер статті: 126962 - Показ продуктів, яких стосується ця стаття.
Розгорнути все | Згорнути все

ОЗНАКИ

Коли на комп’ютері запущено багато програм для Windows, під час спроби запустити нові програми або скористатися відкритими відображаються повідомлення про помилку "Бракує пам’яті", хоча в системі досі доступний великий обсяг фізичної пам’яті та ресурси файлу довантаження.

ПРИЧИНА

Подібна поведінка може спостерігатися в разі вичерпання динамічної пам’яті робочого стола в підсистемі WIN32.

Примітка. Подібна проблема найчастіше виникає на комп’ютерах під керуванням Windows NT 3.5, оскільки за промовчанням динамічна пам’ять робочого стола в середовищі цієї операційної системи має обсяг 512 КБ. У Windows NT 3.1 це значення за промовчанням дорівнює 3072 КБ. Значення за промовчанням було зменшено для підвищення продуктивності.

РОЗВ'ЯЗАНН

Увага! Цей розділ, спосіб або завдання містить кроки, які описують зміни реєстру. Неправильне внесення змін до реєстру може спричинити серйозні проблеми. Тому будьте уважні, виконуючи ці кроки. Перш ніж вносити зміни, обов’язково створіть резервну копію реєстру. Якщо виникне проблема, ви зможете відновити його попередній стан. Для отримання додаткових відомостей про створення резервної копії та відновлення реєстру клацніть цей номер статті, щоб переглянути її в базі знань Майкрософт:
322756 Створення й відновлення реєстру у Windows
Щоб вирішити цю проблему автоматично, перейдіть до розділу Виправити автоматично. Щоб вирішити цю проблему самостійно, перейдіть до розділу Виправити вручну.

Виправити автоматично



Щоб вирішити цю проблему автоматично, натисніть кнопку Fix it або посилання під нею. Клацніть Виконати в діалоговому вікні Завантаження файлу та дотримуйтесь інструкцій майстра Fix it.

Вирішити проблему
Microsoft Fix it 50496

Примітки
  • Цей майстер може бути доступний лише англійською мовою. Проте автоматичне виправлення також працює для інших мовних версій Windows.
  • Якщо ви працюєте не за тим комп’ютером, на якому виявлено неполадку, рішення Fix it можна зберегти на флеш-пам’ять або компакт-диск, а потім запустити на потрібному комп’ютері.
  • Якщо проблему все одно не вдалося вирішити, збільште обсяг пам’яті на комп’ютері.

Після цього перейдіть до розділу Чи вирішено проблему?



Виправити вручну

Щоб вирішити проблему, збільште обсяг динамічної пам’яті робочого стола.
  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
				


Перше значення SharedSection (1024) визначає загальний розмір динамічної пам’яті для всіх робочих столів. Сюди входить глобальна таблиця дескрипторів (віконні дескриптори залежать від кожного окремого комп’ютера) і спільні настройки системи (наприклад, SystemMetrics). Навряд чи вам коли-небудь доведеться змінювати це значення.

Друге значення SharedSection (3072) регулює розмір динамічної пам’яті робочого стола, пов’язаної з інтерактивною віконною станцією (використовується для об’єктів Windows). Статичне значення використовується для запобігання використанню надмірного обсягу ресурсів програмами, які працюють неправильно. Оскільки динамічна пам’ять робочого стола використовує частину адресного простору кожного процесу, для її обсягу не можна вказати довільно високе значення (це негативно вплине на продуктивність). Обсяг потрібно збільшити лише до значення, яке буде достатнім для запуску потрібних програм.

Третє значення SharedSection (512) регулює обсяг динамічної пам’яті для кожного робочого стола, яка пов’язана з "неінтерактивною" віконною станцією. Якщо це значення не вказано, обсяг динамічної пам’яті робочого стола для неінтерактивних віконних станцій відповідатиме обсягу, визначеному для інтерактивних віконних станцій (друге значення SharedSection).
Для отримання додаткових відомостей про параметри розділу SharedSection клацніть цей номер статті, щоб переглянути її в базі знань Майкрософт:
184802 Проблема: не вдалось ініціалізувати бібліотеку User32.dll або Kernel32.dll

Чи вирішено проблему?

Властивості

Номер статті: 126962 - Востаннє переглянуто: 11 вересня 2011 р. - Редакція: 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 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • 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