Попередження про низьку пам’ять Windows 10, коли у мене достатньо пам’яті


25

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

Я відкриваю диспетчер завдань і бачу, що зараз використовується лише близько 30% моєї пам'яті:

33% використання

Коли я відкриваю монітор ресурсів, щоб побачити, наскільки віддана пам'ять використовується певними програмами, я все ще бачу відносно низьке використання пам'яті:

Монітор ресурсів

Я мав цю проблему деякий час і намагався знайти рішення. Я досліджував такі причини, як витік драйверів, використовуючи poolmon, але ніколи в басейні нічого не бачив, що відповідало б тому, що інші описали як червоні прапори для витоку пам'яті драйвера. Що мене особливо бентежить, це те, чому Win10 пропонує мені закривати програми, коли я використовую лише 33% системної пам'яті.


3
Спробуйте перейти до менеджера завдань і перейти на вкладку продуктивності. Що показує скоєне поле пам’яті ?
DrZoo

Я не зберігав скріншот для цього, але моя віддана пам'ять була високим відсотком наявного, щось на зразок 17,5 Гб / 19 Гб.
Брендон

Відповіді:


15

Дикі здогадки тут.

Ви відключили свій файл swap, дотримуючись чиїхось випадкових "оптимізуючих" порад.

У вас є якийсь драйвер ОС, який хоче великий блок послідовної фізичної пам'яті. Але він не може його отримати, тому що вся фізична ОЗУ була роздроблена з часом. А оскільки файл swap відключений, він не може робити дефрагментацію RAM.

Увімкніть файл своп.

Як я вже казав, дика здогадка.


Ну, у мене встановлений розмір файлу сторінок не більше 3 Гб. Це ви маєте на увазі під swapfile чи це окремо керована річ у Windows 10? Це не неможливо, я б зробив щось подібне, у мене були вкрай погані проблеми з роботою, коли я вперше створив цю машину в 10/2015 і спробував декілька речей, як відключення основної парковки, щоб виправити її. У підсумку виникла схема управління енергією, яка знижувала мою потужність до 10% і голодувала над усіма компонентами, і тому у мене виникли системні проблеми з продуктивністю, але можливо, я, можливо, зробив щось подібне, як ви сказали під час цього епізоду.
Брендон

1
Змініть розмір файлу сторінки на "Керований системою", і ваші проблеми, ймовірно, зникнуть.
Скотт Чемберлен

Колись я керувала цією системою, і у мене все ще була така ж проблема, це проявило б більше часу. Коли я встановив його на системне управління, файл сторінок би максимум, я вважаю, 64 Гб, а тоді, коли довершене стало дуже високим, я все одно отримаю такі ж попередження про низьку пам'ять. Але я все одно бачу доступну фізичну пам’ять на 70%, і в Ресурсному моніторі немає жодних вказівок, що понад 60 + ГБ пам’яті в даний час задіяно будь-якому перерахованому процесу.
Брендон

Я повністю згоден із Заном та Скоттом, саме ця проблема викликає цю проблему (див. Windowsitpro.com/windows-10/… для іншого джерела, яке також говорить про це). Встановіть його на системне управління, і якщо проблема з’явиться знову, ТОЛЬКО почніть розслідування.
Ƭᴇcʜιᴇ007

Тому я думаю, що основний варіант відповіді тут був керованим файлом сторінок із системою. Здається, що встановити його на статичний 3 Гб просто не ідеально в середовищі Windows 10. Я реалізував це рішення пару тижнів тому і дозволив йому працювати в звичайному режимі, щоб побачити, що сталося, і, хоча я все ще бачу набагато більше відданої пам’яті, ніж це враховується в стовпці пам'яті, присвяченій монітору ресурсів, я не стикаюсь з недостатньою пам’яттю попередження чи проблеми зараз.
Брендон

14

Перегляньте свій останній Q - коротку версію: Повідомлення про помилку стосується "скоєного" віртуального адресного простору. Якщо ви подивитесь на графік зарахування коштів на другому екрані, ви побачите, що він дійсно на межі або дуже близький.

Обсяг оперативної пам’яті, який є "безкоштовним", "доступним" або "використовуваним", значення не має. Зокрема, дефіцит "доступної" оперативної пам'яті абсолютно не є причиною повідомлення "мало пам'яті" або "поза пам'яттю".

Ліміт фіксації дорівнює загальному RAM + розміру файлу сторінки. Коли виділена пам'ять виділяється, вона негайно стягується з "фіксації заряду", хоча вона фактично ще не використовується ... це означає, що жодна оперативна пам'ять або PF простір не використовується негайно. Фізичний простір (будь то в оперативній пам’яті чи у файлі сторінки) використовується лише тоді, коли фактично посилається на пам'ять. З цього моменту він повинен бути десь, доки програма не звільнить її або не закінчиться весь процес.

Приклад: Припустимо, у вас немає файлу сторінки, отже, ваш ліміт фіксації - 16 ГБ (ваш об'єм оперативної пам’яті). Тепер припустимо, що 8 процесів намагаються VirtualAlloc (MEM_COMMIT) 1 Гб. Результат: вартість комісії збільшується на 8 ГБ. Однак оперативної пам'яті немає негайного впливу! Це так, як ніби ви купували килимок паперу в магазині канцтоварів, але насправді жодного паперу ви не отримали. Щоразу, коли вам потрібен новий аркуш, однак, магічно з'являється один. Поки ви не використаєте весь майданчик (розмір виділеного регіону).

Тепер припустимо, що кожен із цих процесів фактично отримує доступ до 100 МБ із своїх 1 Гб. Використовувана оперативна пам'ять складе лише 800 МБ.

Але оскільки кожен з них може посилатись на всі свої 1 ГБ, ОС має забезпечити, щоб 8 ГБ ОЗУ + простір сторінок ... ну просто оперативна пам'ять у випадку відсутності файлу сторінки ... залишається доступною на випадок, якщо це станеться . Повертаючись до магазину канцтоварів, їм потрібно тримати достатньо паперу на складі, щоб всім давали стільки аркушів, скільки раніше купили.

Відповідно, ОС повинна припинити дозвіл VirtualAlloc (MEM_COMMIT) досягти успіху, коли поточна сума, досягнута, перевищує ліміт.

Чому? Оскільки очікується, що процес перевірить результат VirtualAlloc, щоб побачити, чи вдався він. Після того, як він це зробив і виявив, що алокація досягла успіху, процес має повне сподівання на те, що його подальше посилання на весь здійснений регіон буде успішним.

Якщо Windows дозволила платіж за фіксацію перевищити кількість наявного місця, щоб реалізувати цей простір, то це очікування не завжди може бути виконане.

Швидкий спосіб вирішити - збільшити розмір файлу сторінки за замовчуванням (= початковий). З вищенаведеного пояснення ви повинні зрозуміти, чому це дозволить уникнути повідомлення про помилку, навіть якщо у цей файл ніколи не може бути записано нічого . Знову ж таки, ОС забезпечує доступність місця для всіх платежів, коли це потрібно . Коли процеси виділяють присвячену пам’ять, вони просто говорять: «Ей, ОС, мені це може знадобитися». Це не означає, що вони фактично його використовуватимуть, і це, звичайно, не означає, що вони ще використовували його.

Детальніше дивіться мою відповідь тут .

Тепер .... чому ви використовуєте так багато фіксації, коли ваші процеси, здається, не доповнюють це - інше питання. Щоб почати дивитися на це, будь ласка, покажіть вкладку «Продуктивність диспетчера завдань», розділ «Пам'ять».


У мене немає слів, щоб описати таку ідеальну відповідь. Дякую.
Вініцій Таварес

-2

Інша можливість полягає в тому, що ви використовуєте Win10 32-розрядний, а не 64-бітний. Хоча у вас встановлено 16 Гб оперативної пам’яті, є 32-бітні обмеження ОС, які практично використовують вище 4 точкових. Крім того, ОС накладе жорсткі обмеження / за процес / на те, який об'єм оперативної пам’яті можна запросити, незалежно від фізичної оперативної пам’яті. Якщо це так, не дуже багато ви можете зробити, крім переходу на 64-бітну ОС або одночасного запуску меншої кількості програм.


2
Не вдасться запустити 32-розрядні програми Win10, а диспетчер завдань показуватиме 16 Гб, як це робиться в OQ. І btw, обмеження часу на процес, що позиції ОС знаходяться на віртуальній пам'яті, а не на ОЗУ. Ви не можете телефонувати в Windows для виділення оперативної пам'яті як такої . (Ну, AWE, але це вимагає привілеїв рівня адміністратора і майже нічого не використовує, крім деяких системних програм.) Ви виділяєте віртуальний адресний простір (скажімо, з VirtualAlloc), а потім використовуєте його; під час його використання ОС виділяє оперативну пам’ять вашому процесу ("вимагання підкачки"). Але, звичайно, не все це має бути реалізовано в ОЗУ за один раз.
Джеймі Ханрахан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.