1 большая часть вашего высокого использования памяти (2 ГБ) происходит из-за высокого использования таблицы страниц .
Чтобы увидеть, какие процессы используют его, установите, 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), разверните запись в памяти
перетащите график ResidentSet
из списка слева на панель анализа:
Теперь переместите Page Category
столбец в левую сторону и разверните Page Table
запись:
Здесь вы видите процессы, которые имеют высокий уровень использования таблиц. На правом сайте (после синей линии) вы видите использование памяти таблицей страниц в МБ для каждого процесса.
Также использование объединенного (не) выгружаемого пула составляет почти 2 ГБ.
Установите WDK, Run poolmon
( C:\Program Files (x86)\Windows Kits\10\Tools\x64\poolmon.exe
), сортируйте данные по Pтипу после пула, чтобы не выгружаемый / следующий раз выгружаемый был сверху, а через Bбайты после, чтобы увидеть тег, который использует больше всего памяти.
Теперь посмотрите, какой пул тегов использует больше всего памяти, как показано здесь:
Теперь откройте командную строку и запустите команду findstr. Для этого откройте командную строку cmd и введите «cd C: \ Windows \ System32 \ drivers» без кавычек. Затем введите «findstr / s __ . », Где __ - тег (самое левое имя в poolmon). Сделайте это, чтобы увидеть, какой драйвер использует этот тег:
Теперь перейдите в папку драйверов ( 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
.
Теперь перейдите к AIFO (расположен внутри, освобожден снаружи, так что это возможная утечка), найдите ваши 4 тега и разверните стек, чтобы увидеть, какие функции используют этот тег. На основании названий функций вы можете увидеть «причину». В моей демонстрации Thre
тег (Thread) используется AVKCl.exe из G-Data, потому что он запускает много потоков. Ищите обновления драйверов / программ, чтобы исправить это.