Windows 10, «Система», що займає велику кількість оперативної пам’яті


83

З моменту оновлення до Windows 10 моя система надмірно споживає оперативну пам’ять

введіть тут опис зображення

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

введіть тут опис зображення

Однак я не знаю, як діяти звідси. Чи є винуватцем цього випуску пункт із позначкою "smNp"? Як мені перейти звідти до фактичного визначення водія?

Я спробував такі речі, як "C: \ Windows \ System32 \ drivers> findstr / s smnp . ", Але результатів не було. Я також подивився файл pooltag.txt, і це опис, який я знайшов для нього:

введіть тут опис зображення

Так, будь-яка допомога буде вдячна. Заздалегідь спасибі.


1
добре, я додав інформацію, яку вдалося знайти. Перевір їх
magicandre1981

1
Це особливість системи, щоб фактично зберігати більше речей в оперативній пам’яті, використовуючи стиснення замість пейджингу на диск. @ magicandre1981 має правильну інформацію тут, яку слід сприймати як правильну відповідь.
Мані Гандхем

14 мегабайт, які показує poolmon, пов'язані з тегом smNp, є суто тривіальною сумою. Ви турбуєтесь про 1,3 ГБ в приватному робочому наборі системних процесів - навіщо орієнтуватися на 14 Мб непарного пулу (що взагалі немає в робочому наборі будь-якого процесу)?
Джеймі Ханрахан

Відповіді:


13

Вступивши services.msc(через Win+R) та відключивши Superfetch, це повністю вирішує. Я не впевнений, що Superfetch просто зламаний, як зараз, або це "задумом".

Крім того, мабуть, позбавлення від файлу підкачки матиме такий самий ефект, але наведене вище рішення є більш безпечним .


1
Це фактично спрацювало. Використання пам'яті для системи повертається до ~ 0,1 МБ навіть через години використання. Дякую!
Nayncore

26
Хоча зазвичай таке високе використання пам'яті є червоним прапором для витоку пам'яті, ця пам'ять законно використовується як ОСОБЛИВОСТІ Windows 10 (див. Відповідь магіяндра нижче).
Bigbio2002

7
це не помилка, і її не слід відключати
phuclv


6
Якщо ця функція викликає постійні попередження про мало пам'яті, вона не є хорошою. Тепер мій Surface Pro з 4 Гб оперативної пам’яті абсолютно непридатний для розвитку, і навіть на ноутбуці з 8 ГБ ОЗУ я постійно отримую ці попередження. Великий палець на рішення!
Олег Іванович

94

Я переглянув сліди xperf кількох користувачів і тут функція ntoskrnl.exe!SmKmStoreHelperWorkerKernel починає виділяти пам'ять.

Знімок екрана
(Клацніть зображення, щоб збільшити)

Я відкрив це на сисинтерналі .

Я запитав Microsoft про це, і відповідь полягає в тому, що це задумано. Це пов'язано зі стисненням системної пам'яті.

У анонсі Windows 10 Build 10525 Microsoft трохи пояснила це :

У Windows 10 ми додали в Менеджер пам'яті нову концепцію, яка називається сховищем стиснення, що є колекцією стиснених сторінок у пам'яті. Це означає, що коли Менеджер пам'яті відчуває тиск у пам'яті, він буде стискати невикористані сторінки замість того, щоб записувати їх на диск. Це зменшує обсяг пам’яті, що використовується в процесі, дозволяє Windows 10 підтримувати більше додатків у фізичній пам’яті одночасно. Це також допомагає забезпечити кращу реакцію в Windows 10. Магазин стиснення працює в робочому наборі системного процесу.Оскільки системний процес зберігає сховище в пам'яті, його робочий набір збільшується саме тоді, коли пам’ять стає доступною для інших процесів. Це видно в диспетчері завдань, і причина системного процесу, як видається, займає більше пам'яті, ніж попередні випуски.

Тому замість запису даних пам'яті у файл сторінки вони стискають їх. І ця стисла пам'ять відображається в системному процесі.

Майкрософт також розмістив більше деталей у внутрішньому центрі. Вінбета створив статтю, яка містить більше деталей.

Мабуть, причиною цього було те, що Microsoft вирішила зупинити програми UWP, коли вони не були на передньому плані, дуже схожі на деякі управління ОС смартфонів. Користувачі Windows 8 розуміли (можливо, ні), що якщо додатків не було на екрані, вони не працюватимуть, поки користувач не повернеться до них. Підхід "все або нічого" оновлюється в Windows 10, вводячи шар між файлом сторінки та звичайною активністю підкачки. Тепер, зіткнувшись із проблемами тиску пам’яті, ММ визначить, які сторінки слід перемістити до модифікованого списку в процесі, який називається обрізанням.Змінений список є вторинним списком файлів сторінок, що створює резервну копію списку резервних файлів сторінок у режимі очікування. Список резервних копій зберігається у випадку, якщо пам'ять вилучена зі списку очікування іншим процесом, і початковий процес шукає свою сторінку. Замість всього або нічого Windows 10 MM буде стискати невикористані сторінки, а не записувати їх на диск. При меншій кількості записів в результаті має бути менше операцій на диску - завдяки стисненню - і тепер більше пам'яті може зберігатися в пам'яті.

введіть тут опис зображення

За словами команди Windows, " На практиці стисла пам'ять займає близько 40% нестисненого розміру, і в результаті типового пристрою, що працює з типовим навантаженням, Windows 10 записує сторінки на диск лише на 50% так часто, як і попередні версії ОС. "Якщо все піде за планом, користувачі Windows можуть відчувати скорочення часу очікування для всіх пристроїв, а також збільшений термін служби в системах, що мають жорсткі диски на основі флеш-пам'яті .

Декомпресія - це теж те, що Windows 10 покликаний робити добре. Windows 10 використовує комбінацію паралельності та послідовного зчитування для створення сторінок у пам'яті, щойно викликаються. Нова декомпресія повинна призвести до більш швидкого досвіду, оскільки Windows 10 одночасно декомпресує дані та паралельно читає їх за допомогою декількох процесорів. Старіші версії Windows, можливо, відчували себе мляво через швидкість передачі між диском.

Microsoft також випустила відео на каналі9, в якому пояснюється особливість.

Стиснення пам'яті в Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

У цьому відео Мехмет Іїйгун витратив деякий час на обговорення того, чому системний процес у Windows 10 займає трохи більше пам’яті та чому це добре. Процес, що займає більше пам’яті, звучить як погано - тобто доки я не зрозумів більше про управління пам’яттю, підкачки та помилки жорсткої / м’якої сторінки. Виявляється, що ОС робить деякі розумні оптимізації, які дозволяють вашим процесам обрізати частину пам’яті, але не обов’язково розміщувати її на диску. Пам'ять збережена не тільки в оперативній пам’яті, але й стискається - робить неполадки жорсткої сторінки більш рідкісним явищем. Результати повинні зробити досвід швидким.

В останніх TH2-побудовах Microsoft оновив опис у диспетчері завдань і тепер також показує, що процес SYSTEM розміщує compressed memory:

введіть тут опис зображення

щоб уникнути плутанини щодо "високого" використання.

У оновленому в серпні 2016 року вікні "10-річчя оновлення" Microsoft витягнула "Компресію" в теперішній час, показаний у псевдопроцесі, закликаного Memory Compressionбільше не плутати користувачів, чому система SYSTEM має таке велике використання пам'яті:

введіть тут опис зображення

Але схоже, що Taskmgr не показує цей процес, лише ProcessExplorer / ProcessHacker здатні його показати. Taskmgr показує лише обсяг стисненої пам'яті в огляді:

введіть тут опис зображення

Якщо навести курсор миші на графік пам'яті, що використовується у Taskmgr, ви побачите підказку, яка показує кількість стислих даних.

введіть тут опис зображення

У цій демонстрації 388 МБ стискається до 122 МБ, тому 267 МБ зберігаються при стисненні.


9
@Zaibis: Я думаю, ідея полягає в тому, що ви не "скидаєте 1 ГБ". 1 Гб зарезервовано Windows і буде використовуватися для розподілу. Ви не втратили пам'ять.
Гонки легкості по орбіті

12
"Невикористана пам'ять витрачається на пам'ять" давно стала мантрою OS X. Схоже, Windows також потрапив на борт.
грудня

1
@ magicandre1981 Що ти маєш на увазі під користувачемSystem Memory compression
user2284570,

2
Я не можу відповісти на це детально. Я отримав лише інформацію про те, що це задум, має щось спільне зі стисненням пам’яті, і це буде пояснено в блозі. Коли я отримаю нову інформацію, я оновлю свою посаду.
magicandre1981

2
@JosiahKeller Діалогове вікно "низької пам'яті" стосується низької віртуальної пам'яті. Це майже не має нічого спільного з використанням або доступністю фізичної пам'яті (ОЗП). Вони обліковуються окремо всіма сучасними настільними ОС.
Девід Шварц

0

Я знайшов випадковий випадок, який викликає високе використання системної пам'яті, і хотів включити його, якщо ця інформація комусь приносить користь.

Якщо ви активно використовуєте об'ємні знімки Microsoft (знімок програмного забезпечення, а не апаратний знімок), тим більше знімків ви будете поєднувати з великими змінами даних, тоді система буде споживати більше оперативної пам’яті.

Зазвичай об'єм оперативної пам’яті, що використовується для об'ємних знімків, невеликий і його не помітять, якщо у вас не буде гігантський об'єм (тобто 64 ТБ) з багатотерапевтичними дельтами між знімками. За замовчуванням знімки просто видалять себе, якщо запис IO стає занадто високим, але є способи запобігти цьому, що дозволяє досягти масивних дельт.

Нижче наводиться крайній випадок, що показує системний процес сервера з використанням 13 Гб оперативної пам’яті. На цьому сервері є лише два об’ємні знімки, зроблені за 15 днів між собою, з приблизно 10 ТБ даних, записаних між кожним знімком.

Використання системної пам'яті в 13 Гб

Раніше системний процес раніше використовувався на рівні 24 ГБ, і спостерігалися три поведінки:

  1. Після перезавантаження та входу в систему система буде певний час висіти на порожньому екрані, поки не з'явиться робочий стіл.
  2. Під час цього зависання, підтягуючи диспетчер завдань (CTRL-SHIFT-ESC), показав зростаюче використання системної пам'яті.
  3. Під час цього зависання диск із знімками гучності здійснив читання, які не відображалися в Моніторі продуктивності. Хоча, оскільки диск використовував iSCSI, мережева карта показала постійний потік читання близько 200 Мбіт / с.

Я запідозрив об'ємні знімки, тому спробував видалити найстаріший знімок, який миттєво знизив об'єм пам'яті системи з 24 ГБ до 13 ГБ.

За цих обставин це може бути нормальна поведінка, хоча я не підтвердив це в Microsoft. Тим часом я додаю додаткові 32 ГБ оперативної пам’яті на цей сервер для обробки накладних знімків.

(Примітка. Це сервер резервного копіювання великого обсягу під керуванням Windows 2016 з приєднаним накопичувачем SSD iSCSI на 64 ТБ. Він підтримує в середньому три знімки об'єму в будь-який момент часу, при цьому новий створюється кожні 15 днів. Є близько 10 ТБ дані, записані між кожним знімком).


-1

Відключити prefetcher в ключі regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParametersви, ймовірно, маєте Enable Prefetcherзначення 2або 3так змінити його на0

Далі вам потрібно відключити Superfetchпослуги

  1. Пошук послуг.msc

  2. Знайдіть superfetchклацання, propertiesа потім встановіть його disabledта припиніть службу.

Я роблю ці кроки, і коли я граю і звичайно використовую ПК, а systemпроцес використовує лише 28 к


12
Це жахлива ідея. Prefetch / superfetch використовується з причини. Якщо ви думаєте, що можете керувати пам'яттю краще, ніж ваша ОС, ви сумно помиляєтесь.
b1nary.atr0phy

Відключення попереднього вибору (або "очищення папки попереднього вибору") - це справді дуже дурна ідея. Prefetch не змушує систему більше використовувати оперативну пам'ять. Це прискорює завантаження файлів exe та dll, як тільки ви їх запускаєте , і лише потім. Щодо SuperFetch, Microsoft відключає SuperFetch за замовчуванням у системах із SSD для накопичувача Windows; вони відчувають, що користь не варта. Особисто я підтримую це, оскільки у мене є інші накопичувачі, не-SSD, які я хочу, щоб SF все ще працював.
Джеймі Ханрахан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.