Windows 10 内存泄漏 - 标签 (poolmon) FMic 和 Irp - 5.7GB 的非分页池

Sam*_*Sam 3 memory memory-leaks windows-10

所以我最近注意到内存使用率极高。仅打开 Chrome 并打开 20 个选项卡时,我就使用了 13.5 / 16GB 内存。任务管理器报告 Chrome 仅使用约 3GB 内存。任务管理器中报告的所有剩余进程总共占用了不到 1GB 的额外内存,因为大多数进程使用的内存在 10MB 到 50MB 之间。

我使用 RamMap 来获取更多详细信息,我发现非分页池非常高,达到 5.7GB。这是RamMap的图像。

我使用poolmon并发现有两件事正在耗尽大量的非分页池。这是poolmon 的图像

根据 Google 标签搜索和此处的列表,这就是这 2 个标签的用途:

  • FMic - fltmgr.sys - IRP_CTRL 结构
  • Irp - 未知 - Io、IRP 数据包

但现在我已经走进了死胡同。我见过其他类似的问题,但没有一个涉及这些标签。其他人的问题通常来自于驱动程序,他们只需更新它即可。但在这种情况下,我不知道如何解决这个问题。

我在C:\Windows\System32\drivers中找到了文件fltMgr.sys,但它似乎是 Microsoft 的东西。在“属性”->“详细信息”下,其名称为“Microsoft Windows 操作系统”,其文件描述为“Microsoft 文件系统筛选管理器”。即这不仅仅是我可以更新的驱动程序。

至于Irp标签,我不知道。

有什么建议么?我可以从哪里获取它以及我能做什么?

编辑 03/03/18:我没有 Killer NIC。

我已经使用 xperf 进行录制,到目前为止我已经完成了。不太确定从这里去哪里,或者我可以上传 .etl 文件,尽管它很大,所以不确定在哪里。让我知道上传是否有帮助。

重新启动后可能需要 40 分钟,并且已经有 517MB 的非分页池。

编辑 04/03/18 #1:一天后非分页池当前为 1GB。看起来它以每天约 1GB 的速度增加。的输出可以在这里fltmc找到。

至于Irp - 我不使用防病毒或备份程序,除非你算上 Windows Defender。不过,我确实使用了从 C: 驱动器 (SSD) 到 F: 驱动器 (HDD) 的符号链接来存储 Google Chrome 和 Skype 的缓存文件夹,因为它们每天会在磁盘上写入 20GB,这是我不希望出现的情况我的SSD。这个缓存工作正常并且写入我的 HDD 也很好,但我不认为它会导致 I/O 失败。

我还有一个包含 2 个 HDD(每个 1 TB)的 Raid 0 阵列,是通过 Windows 的内置存储空间创建的,而不是通过 BIOS 或类似的东西。我不认为这可能与Irp 的事情有任何关系?

最后,我在玩电子游戏的时候也会记录一下我的玩法。当我启动游戏时,它会使用名为 Plays.TV 的客户端自动在后台运行。但同样,这是成功的,我不明白为什么会发出 I/O 请求但未完成。当我退出游戏时,视频就会完成录制。

编辑 04/03/18 #2:我已经使用了typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csv结果,然后按照 @HelpingHand 的建议绘制了结果。我还用所有事件对图表进行了注释,因此您可以看到与向上或向下跳跃的非分页字节对应的操作。是图表。在上面,您可能会看到一些您不认识的东西:

  • PUBG - PlayerUnknown's BattleGrounds 的缩写,这是我最近在玩的一款视频游戏
  • Plays.TV - 视频录制客户端,在我进入游戏时自动开始录制,在退出游戏时自动停止录制。它还记录一些游戏的元数据,并将其作为标记放置在视频的时间轴上,例如,当我杀死某人时,我有时会在时间轴上看到标记。此元数据记录在.framelets文件中。
  • 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

这生成了一个 1GB 的.etl文件,我已将其压缩并上传到此处 (80MB)

poolmon最后,我在停止后大约2-3分钟再次使用xperf。我忘了把它放在时间线图上。是结果的图像。

mag*_*981 6

分析 WPA.exe 中的跟踪显示FMic池使用情况RazerCortex.exe来自创建文件 ( KernelBase.dll!CreateFileW) 时发生的情况。

在此输入图像描述

这也会导致 IRP(代表I/O 请求数据包)的使用:

在此输入图像描述

rzudd.sys 驱动程序也会导致 IRP 使用:

在此输入图像描述

因此,请更新Razor 工具或最好将其删除(以及所有其他 Razor 相关软件/驱动程序)。