Утечка памяти в Windows 10 — теги (poolmon) FMic и Irp — невыгружаемый пул размером 5,7 ГБ

Утечка памяти в Windows 10 — теги (poolmon) FMic и Irp — невыгружаемый пул размером 5,7 ГБ

Итак, я заметил чрезвычайно высокое использование памяти в последнее время. Только с Chrome с 20 открытыми вкладками я получаю 13,5 / 16 ГБ памяти, используемой. Диспетчер задач сообщает, что Chrome использует только около 3 ГБ памяти. Все остальные процессы, указанные в диспетчере задач, вместе взятые создают менее 1 ГБ дополнительной памяти, поскольку большинство из них используют от 10 до 50 МБ.

Я использовал RamMap, чтобы получить больше информации, и обнаружил, что Nonpaged Pool чрезвычайно высок и составляет 5,7 ГБ. Вот изображениеRamMap.

Я использовал poolmonи обнаружил, что две вещи используют огромное количество невыгружаемого пула. Вотизображение пулмона.

Согласно поиску тегов Google иэтот список здесь, вот для чего нужны эти 2 тега:

  • FMic - fltmgr.sys - структура IRP_CTRL
  • Irp - неизвестно - Io, IRP пакеты

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

Я нашел файл.fltMgr.sysвC:\Windows\System32\драйверы, но, похоже, это фишка Microsoft. ПодСвойства -> Подробности, его имя — «Операционная система Microsoft Windows», а описание его файла — «Диспетчер фильтров файловой системы Microsoft». Т.е. это не просто драйвер, который я могу обновить.

ДляИРПтег, понятия не имею.

Есть предложения? Что мне делать дальше и что я могу сделать?

ИЗМЕНИТЬ 03/03/18: Я не являюсь владельцем Killer NIC.

Я использовал xperf для записи и получилэто далеко. Не совсем уверен, куда идти дальше, в качестве альтернативы я мог бы загрузить файл .etl, хотя он довольно большой, поэтому не уверен, куда. Дайте мне знать, если его загрузка поможет.

Прошло около 40 минут после перезагрузки, а невыгружаемый пул уже составляет 517 МБ.

ИЗМЕНИТЬ 04/03/18 #1: Невыгружаемый пул в настоящее время составляет 1 ГБ после дня. Кажется, он увеличивается со скоростью ~1 ГБ в день. Вывод fltmcможно найтиздесь.

Что касаетсяИРП- Я не использую антивирусы или программы резервного копирования, если не считать Windows Defender. Однако я использую символическую ссылку с моего диска C: (SSD) на мой диск F: (HDD) для папок кэша Google Chrome и Skype, поскольку они вызывали запись 20 ГБ в день на диск, чего я не хотел на своем SSD. Этот кэш работает нормально и прекрасно записывается на мой HDD, хотя я не думаю, что это приведет к сбою ввода-вывода.

У меня также есть массив Raid 0 из 2 HDD (по 1 ТБ каждый), созданный через встроенные в Windows Storage Spaces, а не через BIOS или что-то в этом роде. Я не думаю, что это может быть как-то связано сИРПвещь тоже?

Наконец, я также записываю свой игровой процесс, когда играю в видеоигры. Он автоматически запускается в фоновом режиме, как только я запускаю игру, используя клиент Plays.TV. Но, опять же, это успешно, и я не вижу, почему запрос ввода-вывода был отправлен, но не выполнен. Видео заканчивают запись, как только я выхожу из игры.

ИЗМЕНИТЬ 04/03/18 #2: Я использовал typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csvи затем отобразил результаты в графическом виде, как предложил @HelpingHand. Я также снабдил график всеми событиями, чтобы вы могли видеть, какое действие соответствует скачку Nonpaged Bytes вверх или вниз.Здесьэто график. На нем вы можете увидеть несколько вещей, которые вы не узнаете:

  • ПУБГ- Сокращение от PlayerUnknown's BattleGrounds, это видеоигра, в которую я недавно играл.
  • Plays.TV- клиент записи видео, который автоматически начинает запись, как только я вхожу в игру, и останавливает запись, когда я выхожу из нее. Он также записывает метаданные для некоторых игр и размещает их на временной шкале видео в качестве маркера, например, я буду видеть маркеры на временной шкале в моменты, когда я кого-то убил. Эти метаданные записываются в.фреймлетыфайл.
  • Twitch.tv- сайт для потоковой передачи
  • Бот для браузерной игры- просто бот, который делает HTML-запросы. Он работает всего около 30-60 минут за раз, и я почти уверен, что это не имеет никакого эффекта.

Как вы можете видеть на графике, я использовал Xperf, используя следующую команду, в течение примерно 7 минут:Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 1024 -FileMode Circular

Это дало 1 ГБ.etlфайл, который я заархивировал и загрузилздесь (80 МБ).

Наконец, я снова использовал его poolmonпримерно через 2-3 минуты после того, как я прекратил xperf. Я забыл указать это на графике временной шкалы.Здесьэто изображение результата.

решение1

Анализ следав WPA.exe показано, что FMicиспользование пула происходит RazerCortex.exeпри создании файлов ( KernelBase.dll!CreateFileW).

введите описание изображения здесь

Это также вызывает IRP (что означаетПакет запроса ввода-вывода) Применение:

введите описание изображения здесь

Драйвер rzudd.sys также вызывает использование IRP:

введите описание изображения здесь

Так что обновитеБритваили лучше удалите его (и все остальные программы/драйверы, связанные с Razor).

решение2

У меня была точно такая же проблема. Теги FMic и IRP постоянно были наверху, занимая гигабайты невыгружаемого пула, если мой компьютер оставался включенным в течение длительного времени без надлежащей перезагрузки. Я определил это как Razer Cortex, мое единственное программное обеспечение Razer на тот момент, и как только я удалил его, мой невыгружаемый пул сократился до 1,2 ГБ вместо 3-4 ГБ, после того как мой компьютер был включен в течение нескольких дней. Ранее я пытался переустановить драйверы Killer Network и удалить драйвер Razer для устройства, которое я больше не использовал, но ни то, ни другое не помогло так, как удаление Cortex.

Связанный контент