Форум программистов, компьютерный форум, киберфорум
Windows 7
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/335: Рейтинг темы: голосов - 335, средняя оценка - 4.96
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660

Диагностика утечек памяти, выявление сбойных драйверов

08.03.2016, 08:57. Показов 70569. Ответов 11

Студворк — интернет-сервис помощи студентам
Если вы заметили ошибку или не точность, у вас есть важное дополнение или замечание - просьба об этом сообщить.

Инструкция по выявлению драйверов вызывающих чрезмерное использование оперативной памяти.
WikipediaУте́чка па́мяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной или виртуальной памяти компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти.



0. Действительно ли происходит утечка памяти
1. Определение тегов расходующих память при помощи PoolMon
2. Поиск драйвера по тегу при помощи strings и sigcheck
3. Поиск тега системного драйвера в файле pooltag.txt
4. Общие рекомендации по устранению
5. Если самостоятельно определить причину не удалось
6. Необходимые программы и файлы

  • Данная инструкция предполагает, что очевидные причины излишнего потребления ОЗУ уже были исключены при помощи диспетчера задач и/или монитора ресурсов.


  • Чтобы убедиться, что проблема излишнего потребления оперативной памяти имеет отношение к драйверам и/или оборудованию
    и сам факт утечки памяти вообще имеет место быть нужно запустить программу RAMMap.exe и открыть на дефолтной вкладке Use Counts:


    Обращать внимание главным образом следует на Nonpaged Pool и Paged Pool
    Вот пример того, как может выглядеть утечка памяти:


  • Так же следует обратить внимание на Driver Locked
    Хотя утечкой это и не является, но такое "резервирование" ОЗУ далеко не всегда является нормой:


    Чаще всего причиной оказываются RAM диски или виртуальные машины.
    Описанный далее метод не подходит для выявления драйвера заблокировавшего таким способом участок памяти.

Если все прочие причины перерасхода ОЗУ исключены можно приступать к диагностике.

  1. Запустите PoolMon.exe от имени администратора (для x86 систем нужно запускать версию x86, для x64 желательно x64)
    И нажмите клавишу b, чтобы сортировка тегов производилась по использованию байтов от большего к меньшему (сверху вниз).
    В результате должна получиться вот такая картина:


    В данном конкретном случае утечек памяти нет, но больше всех остальных расходуют память области с тегами NVRM и ViMm.
    Они и оказались в самом верху списка после сортировки:


  2. Чтобы выяснить какому драйверу принадлежит тег создайте батник, который выполнит поиск потенциального виновника по тегу при помощи программы strings.exe среди всех загруженных в данный момент драйверов, и покажет краткую информацию о каждом найденном при помощи sigcheck:
    Windows Batch file
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    @echo off
     
    set TAG=????
     
    for /f "delims=" %%a in ('wmic sysdriver get PathName /value') do (
        for /f "tokens=2,* delims==?" %%i in ("%%a") do (
            strings -q "%%i\%%j" | findstr /i "%TAG%">nul && (
            sigcheck -q "%%i\%%j"&echo.
    )))
    pause
    Где вместо ???? нужно вписать интересующий нас тег.

    Например один из тегов, который был получен в предыдущем пункте:
    Windows Batch file
    set TAG=NVRM
    Файлы strings.exe и sigcheck положите в папку с батником или скопируйте в C:\Windows, без них поиск выполняться не будет.

    В итоге должен получиться вот такой батник (пример: strings.exe и sigcheck находятся в той же папке):


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


    Выяснилось, что тег NVRM относится к драйверу nvlddmkm.sys


  3. Принадлежность тега ViMm тем же способом выяснить не удалось:


    Но на помощь приходит файл pooltag.txt.
    Файл pooltag.txt содержит описание тегов пулов системных драйверов (поставляемых в составе ОС) и не содержит описания тегов сторонних драйверов.

    Произведите поиск тега ViMm в файле pooltag.txt


    dxgkrnl.sys - это еще один графический компонент, но на этот раз системный.


  4. Рекомендации по устранению:

    • nvlddmkm.sys - NVIDIA Windows Kernel Mode Driver

      Если сбойный драйвер оказался драйвером стороннего производителя, то нужно произвести обновление этого драйвера или откат к более ранней версии.
      Перед установкой нового драйвера настоятельно рекомендуется удалить старый драйвер и перезагрузиться.


      Не вдаваясь в подробности, если этого не сделать, то, в некоторых случаях, система продолжает использовать старый драйвер даже после установки нового.
      Проверяйте и сравнивайте версию драйвера до и после обновления/отката.
      Если драйвер продолжает "течь" и после обновления/отката, то это может указывать на аппаратные проблемы.

    • dxgkrnl.sys - DirectX Graphics Kernel

      Если диагностика указывает на системный драйвер, скорее всего настоящей причиной является не он.
      В этом случае рекомендуется обновить ОС и проверить актуальность драйверов сторонних производителей.
      Может косвенно указывать на аппаратные проблемы.

  5. Если самостоятельно определить причину не удалось:

    • Создайте свою отдельную тему в разделе соответствующем вашей ОС
    • Подробно опишите при каких обстоятельствах наблюдается проблема
    • Предоставьте скриншот программы RAMMap с открытой вкладкой Use Counts
    • Предоставьте скриншот программы PoolMon с сортировкой по bytes (кнопка b )
    • Подготовьте отчет AIDA 64:
      Запускаете программу, жмете на кнопку "Отчет" --> выбираете профиль отчета "Все разделы" --> Формат отчета "html" --> Готово
      Файл Report.htm запаковываете в архив и выкладываете в своей теме

      Файлы и изображения загружайте на форум


Ссылки на актуальные версии программ: RAMMap, Sigcheck, Strings.
PoolMon.exe и pooltag.txt входят в состав Windows Driver Kit (WDK) 10

Файлы в архиве: BadPool.bat, poolmon.exe, pooltag.exe, RAMMap.exe, sigcheck.exe, strings.exe
Вложения
Тип файла: zip Files.zip (584.9 Кб, 640 просмотров)
18
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2016, 08:57
Ответы с готовыми решениями:

Обсуждение (Диагностика утечек памяти, выявление сбойных драйверов)
Обсуждение инструкции https://www.cyberforum.ru/windows7/thread1679703.html

Обнаружение утечек памяти
Существуют ли какие-нибудь средства позволяющие отлаживать ошибки, вызванные утечками памяти? Добавлено через 27 минут Как я понял...

Тема утечек памяти
Всем привет. Прошу проконсультировать по поводу утечек памяти, а именно, когда утекает Активити. У меня есть Активность, презентер, и...

11
4248 / 1746 / 250
Регистрация: 01.05.2013
Сообщений: 7,810
02.01.2017, 18:56
vavun, можно ещё добавить инструкции о том,что делать если утечка происходит в Page Table.
Как по мне,тут всё хорошо расписано How to find source of memory leak in Windows 7?.
0
 Аватар для vavun
10593 / 5556 / 865
Регистрация: 07.04.2013
Сообщений: 15,660
13.01.2017, 10:43  [ТС]
Turok123, я пока что "в отпуске" и на форуме появляюсь крайне редко и времени на это, к сожалению, нет.
Если хотите можете сами красиво оформить инструкцию прямо тут следующим сообщением или отдельной темой по желанию.
0
4248 / 1746 / 250
Регистрация: 01.05.2013
Сообщений: 7,810
13.01.2017, 19:24
vavun, С новым годом !!! Не .... много, побереги здоровье, а то с белкой встретишься ( шутка ).
0
Ученик.
0 / 6 / 0
Регистрация: 01.06.2015
Сообщений: 220
10.07.2018, 00:44
Я очень извиняюсь, но кто-нибудь может написать как создать бат файл через notepad++? Или есть другой способ?
0
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 1
26.11.2020, 12:45
друзья. очень нужна ваша помощь в определении и устранении утечки оперативной памяти, за вознаграждение.
помогите - не разбираюсь в windows.
mem reduct запускаю каждый час

windows 7 prof лицензия.
последнее время за 1 час система съедает 8 гб.
Вложения
Тип файла: txt cont.txt (45 байт, 12 просмотров)
0
26.11.2020, 13:37
 Комментарий модератора 
Цитата Сообщение от gnom_from91 Посмотреть сообщение
за вознаграждение
Если так - могу перенести ваш пост в раздел фриланса
0
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 21
01.12.2021, 01:57
запускаю батник, в папке есть обе программы - в итоге в черном окне написано нажмите любую кнопку для продолжения и на этом все
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
01.12.2021, 12:47
Цитата Сообщение от shadow_taifun Посмотреть сообщение
в итоге в черном окне написано нажмите любую кнопку для продолжения и на этом все
тулзы Руссиновича та ещё штука..
теги драйверов элементарно просто ищутся в WinDbg за пару минут.
1
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 21
02.12.2021, 10:10
По итогу попробовал из прикреплённой файла. Увидел несколько драйверов в подозрительному процессе. Около 8 штук. Что дальше делать не понимаю. Если поочерёдные каждый драйвер обновлять переставлять - можно вообще систему порушить до синего света
0
0 / 0 / 0
Регистрация: 12.12.2015
Сообщений: 21
02.12.2021, 19:51
впрочем вот вложения как это выглядит
Миниатюры
Диагностика утечек памяти, выявление сбойных драйверов   Диагностика утечек памяти, выявление сбойных драйверов  
0
dzu
14448 / 6173 / 329
Регистрация: 03.07.2010
Сообщений: 20,710
02.12.2021, 21:58
shadow_taifun, в чем проблема?
Выгружаемый пул - не утечка памяти.И создайте наконец свою(отдельную тему) ,опишите проблему итд.
Эта тема(закреплена) и в ней не обсуждаются "частные " случаи..
Читали:
5.Если самостоятельно определить причину не удалось:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2021, 21:58
Помогаю со студенческими работами здесь

Обнаружение утечек памяти
в общем есть большой проект, изначально не мой. решил проверить весь код на утечки, подключил отлов: #ifdef _DEBUG #define...

Устал от утечек памяти
С этими утечками памяти в C++ просто беда. Посоветуйте, что можно сделать? Может быть есть какие-то специальные утилиты?

Чтобы не было утечек памяти
Товарищи, такой вопрос: class node { int *a; double *b; vector<node *> vec; public: //тут методы }

Тулза для поиска утечек памяти
Прога, написанная мною, сильно тормозит. Скорее всего имеются утечки памяти. Подскажите какую-нибудь тулзу для поиска утечек памяти в коде,...

Подключении механизма обнаружение утечек памяти
// output N number of M devide L.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru