Windows 10高内存使用率(未知原因)


78

几天前,我将PC更新为Windows10。但是,使用一段时间后,我的PC开始减速,直到无法使用为止–这是由于内存使用率很高。重新启动后,一切恢复正常(总使用率约为8GB RAM的25%)。但是,在使用几个小时后,内存会再次增加到70%,如果不重新启动,则进一步会增加到100%,然后甚至冻结。任务管理器并不能显示所有过程(在下面添加了屏幕截图),所以并没有太大帮助。还尝试了RAMMap,但它给出了一个错误:“错误刷新数据库”。我尝试了Google搜索这个问题,但没有成功。

我对PC不太了解,但是也许有些人知道此问题,或者可以帮助您了解正在使用我的RAM的内存。

RAM使用1

内存使用2


@AR提供xperf跟踪。我需要查看调用堆栈以了解更多信息。
magicandre1981

我知道此线程已解决-但是一个好的第一步是禁用hyper-v。这就是我的罪魁祸首。
hypermails

Hyper-V在运行什么?
rogerdpack

Answers:


117

您有驱动程序引起的内存泄漏。查看非分页内核内存的高价值。您的情况是3.7 GB以上。您可以使用poolmon查看哪个驱动程序导致了高使用率。

安装Windows WDK,运行poolmon,通过P在pool type之后对它进行排序,以便非分页位于顶部,并B在afterbytes 之后,以查看使用最多内存的标记。通过转到WDK的安装文件夹来运行poolmon,转到“工具”(或C:\Program Files (x86)\Windows Kits\10\Tools\x64),然后单击poolmon.exe

现在查看哪个pooltag使用最多的内存,如下所示:

在此处输入图片说明

现在打开一个cmd提示符并运行findstr命令。为此,请打开cmd提示符,然后键入cd C:\Windows\System32\drivers。然后键入findstr /s __ *.*,其中__是标记(poolmon中最左边的名称)。这样做看哪个驱动程序使用此标记:

在此处输入图片说明

现在,转到驱动程序文件夹(C:\Windows\System32\drivers),然后右键单击有问题的驱动程序(上图示例中的intmsd.sys)。单击属性,转到详细信息选项卡以找到产品名称。寻找该产品的更新。

如果pooltag仅显示Windows驱动程序或在pooltag.txt("C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage\pooltag.txt")中列出

您已经使用xperf来跟踪导致使用的原因从Windows SDK安装WPT以管理员身份打开cmd.exe并运行以下命令:

xperf-在PROC_THREAD + LOADER + POOL -stackwalk PoolAlloc + PoolFree + PoolAllocSession + PoolFreeSession -BufferSize 2048 -MaxFile 1024 -FileMode循环&&超时-1 && xperf -d C:\ pool.etl

捕获30 -60秒的生长时间。使用WPA.exe打开ETL,将“池”图添加到分析窗格中。

将pooltag列放在第一位,然后添加stack列。现在,将符号加载到 WPA.exe中,并扩展您在poolmon中看到的标签的堆栈。

在此处输入图片说明

现在,您可以在堆栈中找到其他第三方驱动程序。此处,Thre标签(Thread)由G-Data的AVKCl.exe使用。寻找驱动程序/程序更新以对其进行修复。


用户Hristo HristovFMfn在解压缩文件时提供了使用率很高的跟踪:

在此处输入图片说明

该标签由驱动程序使用,该驱动程序WiseFs64.sys是“ Wise Folder Hider”程序的一部分。移除它可以修复泄漏。


用户萨穆伊尔Dichev提供跟踪高FMicIrp使用

在此处输入图片说明

在此处输入图片说明

标签由程序Razor Cortex使用

在用户的样本chr0n0ssFMicIrp使用量是由F-Secure的防病毒套件引起的:

在此处输入图片说明

删除它并使用Windows Defender为他解决了该问题。



4
哇,非常感谢您对这个问题的这么快的回答,我以为我永远找不到了:)似乎是网络驱动程序引起了该问题,并且在更新内存使用后似乎还可以。再次感谢!:)
Lukas 2015年

1
这让我想起了Mark Russinovich的博客文章。
太阳

1
我认为您提供的WDK下载链接适用于Win8。Win 10的版本位于:msdn.microsoft.com/zh-cn/windows/hardware/dn913721.aspx
Travis Bemrose

1
FINDSTR命令不返回任何东西,可以帮助我pasteboard.co/2HmQZYbN.png
Loenix

1
NDbf很高,然后我发现它是sumsungrapiddskfltr之类的东西,我关闭了它,现在效果很好。
Suraj Jain

26

这个人可能拥有Killer Networking(以前称为Bigfoot网络)品牌的网卡。

疯狂地试图弄清楚为什么我会发生大量内存泄漏,甚至进行了完全干净的安装,安装后立即出现了内存泄漏。当然,我安装了网络驱动程序和视频卡驱动程序,仅此而已。

我搜索了Google……发现此线程说这是他的网络驱动程序,然后在Google上搜索了“杀手级内存泄漏”,并看到了热门信息,发现这是杀手级应用程序本身,而不仅仅是Windows 10。

现在我很高兴...因此,如果其他任何人遇到此问题,并且他们拥有配备杀手级网卡的众多游戏板或笔记本电脑之一,则可能只是禁用杀手级应用程序即可启动。但是我所做的是完全卸载了ASROCK提供的驱动程序,然后从官方的杀手级网站安装了仅驱动程序的最新软件包。这是较小的〜30mb下载。如果您下载的内容接近或超过100mb,则说明下载错误。

您将松散所有使杀手级产品脱颖而出的东西(它是QoS软件),但这首先是一个好的路由器的用途...尤其是因为杀手级应用程序仅处理PC上运行的应用程序的QoS,而不会执行任何操作。您的整个网络。


1
确认他们这样做会更好。一旦他们确认,然后提交答案。即使您这样做,此答案也不能解释如何解决问题。
Ramhound

2
非常感谢您的回答。它节省了我很多时间。我有同样的问题。阅读您的答案后,我只是卸载了Killer应用程序,然后仅安装了网络驱动程序。现在,我的Windows 10运行正常。
Buju 2015年

1
您救了我,谢谢!我卸载了整个杀手套件,仅安装了驱动程序。现在在启动时,我的ram使用率是25%(2GB),而以前是50%〜60%。
nikoskip 2015年

比你好!!!
srchulo

1

magicandre1981接受的答案是此问题的正确答案,如果RAM使用率继续攀升至100%,则很可能发生内存泄漏。

但是,如果由于Windows 10的内存使用率很高但保持稳定(例如在60%-90%范围内)而进入此页面,则可能没有问题。Windows 10比过去的版本更有效地使用RAM。这是因为未使用的RAM浪费了RAM

长期以来,现代操作系统已将不经常使用的内存数据交换到硬盘驱动器上的页面文件中,以释放RAM来存储更常用的内存数据。(我的Win 10系统具有8GB RAM和12GB页面文件。)但是,从驱动器取回该数据很慢,Windows 10会压缩不经常访问的内存并将其存储在系统进程中(在RAM中)。解压缩该数据要比从硬盘驱动器(甚至是SSD)检索数据快。仅仅因为您的RAM几乎已满,并不意味着您将无法运行更多的事情,如果需要更多的RAM,则Win 10会将这些压缩内存中的一些移至页面文件中,以释放RAM供新应用程序使用。

如果您不断发现系统进程正在使用超过1GB的RAM(就像我一样),则可能是打开的浏览器选项卡太多(就像我一样)。像OneTab这样的扩展程序可以提供帮助。


否,在Taskmgr中缓存显示为待机/已缓存。Win10 Taskmgr压缩在SYSTEM进程中显示为工作集用法。我已经在这里对此进行了解释:superuser.com/a/952142/174557
magicandre1981'6

@ magicandre1981你在说什么?我没有意见分歧。
特拉维斯·贝姆罗斯

1
我发现Windows 10仍然旨在将内存使用率保持在60%以下,并且不超过它开始显示的页面。当内存使用率超过80%并且PC确实开始变慢时,我们会在1000多个设备上发出警报。Windows 10可能会更好地管理它,但是最好保留大量内存,以便在需要时供其他进程使用,否则,它在释放缓慢的内存之前必须先写回磁盘。
user2924019
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.