Утечка памяти в Windows 10

1650
Shyy Guy

У меня проблема с утечкой памяти в Windows 10 уже около года, но я действительно хочу это исправить, поскольку она оказывает значительное влияние на мою работу.

Как видно из рисунка ниже, у меня 8 ГБ оперативной памяти. 92% из них используются, хотя приложения не превышают 1 ГБ.

В прошлом году я обновил 64-разрядную версию Windows 7 Pro до Windows 10.

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

подробности

2
Вы пробовали мои шаги, чтобы увидеть, что вызывает использование вашей памяти? magicandre1981 7 лет назад 0
Извините, пока нет. Мне пришлось ждать, пока я смогу загрузить необходимое программное обеспечение, так как мои данные ограничены. Я отмечу ваш как правильный ответ, так как я уверен, что он будет работать хорошо. Shyy Guy 7 лет назад 0
Возможная копия [утечки памяти в Windows 10] (http://superuser.com/questions/1150227/windows-10-memory-leaking) DanHolli 7 лет назад 0
I've updated my answer to trace the pool usage magicandre1981 7 лет назад 0
любое обновление? Вы расширили стек из 4 тегов? Вы видите что-нибудь полезное? если нет, заархивируйте ETL и поделитесь (ссылка на onedrive) zip magicandre1981 7 лет назад 0

1 ответ на вопрос

9
magicandre1981

1 большая часть вашего высокого использования памяти (2 ГБ) происходит из-за высокого использования таблицы страниц .

enter image description here

Чтобы увидеть, какие процессы используют его, установите, Windows Performance Toolkitкоторый является частью Windows 10 SDK, откройте командную строку от имени администратора и выполните эту команду:

wpr.exe -start ReferenceSet -filemode && timeout 5 && wpr.exe -stop C:\MemUsage.etl 

Откройте с MemUsage.etlпомощью Windows Performance Analyzer (WPA.exe), разверните запись в памяти

enter image description here

перетащите график ResidentSetиз списка слева на панель анализа:

enter image description here

Теперь переместите Page Categoryстолбец в левую сторону и разверните Page Tableзапись:

enter image description here

Здесь вы видите процессы, которые имеют высокий уровень использования таблиц. На правом сайте (после синей линии) вы видите использование памяти таблицей страниц в МБ для каждого процесса.

Также использование объединенного (не) выгружаемого пула составляет почти 2 ГБ.

Установите WDK, Run poolmon( C:\Program Files (x86)\Windows Kits\10\Tools\x64\poolmon.exe), сортируйте данные по Pтипу после пула, чтобы не выгружаемый / следующий раз выгружаемый был сверху, а через Bбайты после, чтобы увидеть тег, который использует больше всего памяти.

Теперь посмотрите, какой пул тегов использует больше всего памяти, как показано здесь:

enter image description here

Теперь откройте командную строку и запустите команду findstr. Для этого откройте командную строку cmd и введите «cd C: \ Windows \ System32 \ drivers» без кавычек. Затем введите «findstr / s __ . », Где __ - тег (самое левое имя в poolmon). Сделайте это, чтобы увидеть, какой драйвер использует этот тег:

enter image description here

Теперь перейдите в папку драйверов ( C:\Windows\System32\drivers) и щелкните правой кнопкой мыши нужный драйвер ( intmsd.sysв приведенном выше примере изображения). Нажмите Свойства, перейдите на detailsвкладку, чтобы найти название продукта. Ищите обновление для этого продукта.

Исправление обеих проблем может вернуть почти 4 ГБ.

На основе вашего скриншота на stackoverflow, 4 тега (VoSM, FILE, Ntfx и Proc), которые принадлежат функциям Windows.

Скопируйте / вставьте этот текст в новый текстовый файл и переименуйте его в PoolTagLeak.wprp

<?xml version="1.0" encoding="utf-8"?> <WindowsPerformanceRecorder Version="1.0" Author="MagicAndre1981" Copyright="MagicAndre1981" Company="MagicAndre1981"> <Profiles> <SystemCollector Id="SystemCollector" Name="NT Kernel Logger"> <BufferSize Value="1024" /> <Buffers Value="1024" /> </SystemCollector> <SystemProvider Id="SystemProvider"> <Keywords> <Keyword Value="Pool" /> </Keywords> <Stacks> <Stack Value="PoolAllocation" /> <Stack Value="PoolAllocationSession" /> </Stacks> <PoolTags> <PoolTag Value="VoSM"/> <PoolTag Value="File"/> <PoolTag Value="Ntfx"/> <PoolTag Value="Proc"/> </PoolTags> </SystemProvider> <Profile Id="PoolUsage.Verbose.File" Name="PoolUsage" Description="Pool usage Tag 'Leak' " LoggingMode="File" DetailLevel="Verbose"> <Collectors> <SystemCollectorId Value="SystemCollector"> <SystemProviderId Value="SystemProvider" /> </SystemCollectorId> </Collectors> </Profile> <Profile Id="PoolUsage.Verbose.Memory" Name="PoolUsage" Description="Pool usage Tag 'Leak'" Base="PoolUsage.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" /> </Profiles> </WindowsPerformanceRecorder> 

Теперь запустите wpr.exe -start C:\PoolTagLeak.wprp && timeout 600 && wpr.exe -stop C:\PoolusageUsage.etlи попробуйте воспроизвести рост использования.

Drag & Drop The Pool Graphдля анализа панели, заказать столбцы Type, Pooltag, Stack.

enter image description here

Теперь перейдите к AIFO (расположен внутри, освобожден снаружи, так что это возможная утечка), найдите ваши 4 тега и разверните стек, чтобы увидеть, какие функции используют этот тег. На основании названий функций вы можете увидеть «причину». В моей демонстрации Threтег (Thread) используется AVKCl.exe из G-Data, потому что он запускает много потоков. Ищите обновления драйверов / программ, чтобы исправить это.

@ShyyGuy в win10, ReferenceSet работает, вы использовали старую версию WPT magicandre1981 7 лет назад 0
@ magicandre1983, сделал это. Самые высокие значения: EtwB на 1023 МБ, Файл на 79 МБ, VoSm на 36 МБ, Proc на 12 МБ и т. Д. Для EtwB это дает мне N / A под столбцом стека. Я попытался найти его в папке драйверов, но безрезультатно. Shyy Guy 7 лет назад 0
игнорируйте этот ETWb, он используется для захвата трассировки wpr magicandre1981 7 лет назад 0
Моя таблица страниц теперь имеет размер 12 ГБ и в ResidentSet я вижу, что все это занято процессом "Неизвестно" (-1) `. Есть идеи, как определить реальный источник? «Poolmon» не нашел ничего большого. icl7126 7 лет назад 0
@ icl7126 сделайте несколько проб и ошибок, чтобы увидеть, какая программа вызывает это. Я знаю, что Lenovo "RapidBoot Shield" вызывает это. magicandre1981 7 лет назад 1
Исправлено, спасибо, это было одно из них: _Razer Synapse, менеджер жесткого диска Paragon, клиент Qualcomm Atheros, драйверы UNI Xonar, решение для подключения к ПК, драйвер Nokia, WinPcap, Nvidia PhysX, Logitech Webcam_ icl7126 7 лет назад 0
@ icl7126 вы можете проверить это больше, пока не увидите, какая из них вызывает. Я хотел бы знать, какой процесс в деталях вызывает его. magicandre1981 7 лет назад 0
Я не уверен, что это возможно. Каким-то образом в моей системе не создается точка восстановления (очень странно). И эти приложения были довольно старыми, некоторые из них я установил в свой Windows 8 много лет назад, а затем они сохранили обновления до 8.1, 10, 10-au. Но если вам действительно нужно знать, я попробую некоторые из тех, для которых у меня еще есть установщики. icl7126 7 лет назад 0
@ icl7126 было бы неплохо знать это, если у некоторых других пользователей возникнет та же проблема и они скажут: «Привет, я также использую инструмент xyz», чтобы они могли удалить его и исправить. magicandre1981 7 лет назад 0

Похожие вопросы