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, запустите poolmon
(C:\Program Files (x86)\Windows Kits\10\Tools\x64\poolmon.exe
), отсортируйте данные через P после типа пула, чтобы не выгружаемый / следующий раз выгружаемый был сверху и через B после байтов, чтобы увидеть тег, который использует большую часть памяти.
Теперь посмотрите, какой пул тегов использует больше всего памяти, как показано здесь:
Теперь откройте командную строку и запустите команду findstr. Для этого откройте командную строку и введите «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
и попытайтесь воспроизвести рост использования.
Перетащите Pool Graph
на панель анализа, упорядочите столбцы: Type
, Pooltag
, Stack
.
Теперь перейдите к AIFO (расположен внутри, освобожден снаружи, так что это возможная утечка), найдите ваши 4 тега и разверните стек, чтобы увидеть, какие функции используют этот тег. На основании названий функций вы можете увидеть "причину". В моем деморолике, Thre
тег (Thread) используются AVKCl.exe из G-Data , потому что он начинает много потоков. Ищите обновления драйверов / программ, чтобы исправить это.