После обновления до Windows 10 моя система потребляла слишком много оперативной памяти
Я немного читал и решил, что это, вероятно, утечка памяти в драйвере. Итак, я получил Windows Driver Kit и отслеживал использование памяти с помощью poolmon:
Однако я не знаю, как действовать дальше. Является ли элемент с пометкой «smNp» виновником этой проблемы? Как мне перейти от фактической идентификации водителя?
Я пробовал некоторые вещи, такие как "C: \ Windows \ System32 \ drivers> findstr / s smnp . ", Но он не дал результатов. Я также взглянул на файл pooltag.txt, и вот описание, которое я нашел для него:
Так что да, любая помощь будет оценена. Заранее спасибо.
windows
memory
drivers
windows-10
memory-leaks
Nayncore
источник
источник
Ответы:
Зайдя в
services.msc
(через Win+R) и отключив Superfetch полностью решаем это. Я не уверен, что Superfetch только что сломан, или это «по замыслу».Кроме того, очевидно, что избавление от файла подкачки будет иметь тот же эффект, но вышеприведенное решение является более безопасной ставкой.
источник
Я посмотрел на следы xperf нескольких пользователей, и здесь функция
ntoskrnl.exe!SmKmStoreHelperWorker
ядра начинает выделять память.(Нажмите на изображение, чтобы увеличить)
Я обнаружил это на sysinternals .
Я спросил Microsoft об этом, и ответ таков: это сделано специально. Это связано со сжатием системной памяти.
В анонсе Windows 10 Build 10525 Microsoft объяснила это немного :
Поэтому вместо записи данных памяти в файл подкачки он сжимает их. И эта сжатая память показывается в системном процессе.
Microsoft также разместила больше деталей во внутреннем центре. Winbeta создал статью, которая включает в себя больше деталей.
Microsoft также выпустила видео на канале 9, который объясняет эту функцию.
Сжатие памяти в Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM
В последних сборках TH2 Microsoft обновила описание в диспетчере задач и теперь также показывает, что процесс SYSTEM содержит
compressed memory
:чтобы избежать путаницы по поводу «высокого» использования.
В обновлении Window 10 Anniversary, которое было выпущено в августе 2016 года, Microsoft извлекла Compression, теперь показанную в псевдопроцессе, призванном
Memory Compression
больше не сбивать с толку пользователей, почему SYSTEM имеет такое большое использование памяти:Но похоже, что Taskmgr не показывает этот процесс, только ProcessExplorer / ProcessHacker могут показать его. Taskmgr показывает только объем сжатой памяти в обзоре:
Если вы наведите курсор мыши на график используемой памяти в Taskmgr, вы увидите всплывающую подсказку, которая показывает количество сжатых данных.
В этой демонстрации 388 МБ сжимаются до 122 МБ, поэтому 267 МБ сохраняются со сжатием.
источник
System Memory compression
Я обнаружил случай выброса, который вызывает высокое использование системной памяти, и хотел включить его на случай, если эта информация кому-нибудь пригодится.
Если вы интенсивно используете моментальные снимки Microsoft (снимок программного обеспечения, а не снимок аппаратного обеспечения), чем больше снимков вы сохраняете в сочетании с большими изменениями данных, то система будет потреблять больше оперативной памяти.
Обычно объем оперативной памяти, используемый для моментальных снимков тома, невелик и не будет заметен, если только у вас нет гигантского тома (т.е. 64 ТБ) с многотерабайтными дельтами между моментальными снимками. По умолчанию моментальные снимки будут просто удаляться, если число операций ввода-вывода слишком велико, но есть способы предотвратить это, позволяя вам достичь больших дельт.
Ниже приведен крайний случай, показывающий системный процесс сервера с использованием 13 ГБ ОЗУ. Этот сервер имеет только два тома моментальных снимков с интервалом в 15 дней, и между каждым снимком записывается около 10 ТБ данных.
Процесс System выше был ранее при 24 ГБ использования, и наблюдались следующие три поведения:
Я заподозрил моментальные снимки томов, поэтому попытался удалить самый старый снимок, который мгновенно уменьшил использование системной памяти с 24 до 13 ГБ.
В этих условиях это может быть нормальным поведением, хотя я не подтвердил это с Microsoft. А пока я добавлю 32 ГБ ОЗУ на этот сервер для обработки накладных расходов на снимок.
(Примечание: это сервер резервного копирования большого объема, работающий под управлением Windows 2016 с подключенным диском iSCSI с 64 ТБ SSD. Он поддерживает в среднем три тома моментальных снимков в любой момент времени, новый создается каждые 15 дней. Существует около 10 ТБ данные записываются между каждым снимком).
источник
Отключите prefetcher в ключе regedit: у
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
вас, вероятно, естьEnable Prefetcher
значение2
или3
около того, измените его на0
Далее нужно отключить
Superfetch
в сервисахПоиск для services.msc
superfetch
Нажмите кнопку « Найти»,properties
затем установитеdisabled
и остановите службу.Я делаю эти шаги, и когда я играю и обычно использую компьютер, и
system
процесс использует только 28kисточник