询问者
系统总的已提交内存很大而且无法释放,但所有进程的已提交内存都不大

问题
全部回复
-
你好:
主要问题是内存占用比较大,对吧?首先请在干净启动下检查一下内存使用情况,来确定是不是由于三方软件造成的。
如何在 Windows 中执行干净启动
https://support.microsoft.com/zh-cn/kb/929135我们可以用RAMMap这个工具检查一下具体的当前的内存使用情况。
RAMMap v1.4
https://technet.microsoft.com/en-us/sysinternals/rammap.aspx?f=255&MSPPError=-2147217396
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.
- 已编辑 MeipoXuMicrosoft contingent staff, Moderator 2016年1月15日 6:41
-
干净的启动模式下,刚启动也是没问题的,用着用着仍然会出问题。这个很早就尝试过了,有一次还因为使用这个干净模式启动,导致某个软件出问题,最后只能卸载重装。
记得很早以前用RAMMap看过,找不到线索。刚才又下载RAMMap,这次居然无法运行了,一运行就提示:
---------------------------
RamMap
---------------------------
Error refreshing database
---------------------------
OK
---------------------------然后看不到任何内容。
我曾经在已提交内存很大的情况下,使用NotMyFault强行制作内存Dump,不过MCP论坛说这个需要PSS支持才能搞定,然后就把这个事情晾在一边了。
-
你好 龚佶敏:
“Error refreshing database”
这个错误一般和"memory leak(内存泄漏)"有关。“干净的启动模式下,刚启动也是没问题的,用着用着仍然会出问题”
请问在干净启动下,没有做任何操作(未打开任何的三方软件,包括IE(有些插件会出现明显的内存泄漏bug)),这个问题也会出现吗?
如果打开了某个软件这个问题开始出现, 那很明显那个软件可能存在“内存泄漏”的bug. 如果有自主开发的程序在运行(我看到你有运行JAVA),请注意。如果未做任何操作,这个问题还是存在,我怀疑可能是和某个驱动有关.我们可以用安全启动(不含网络)来确认一下是不是系统的驱动还是三方的驱动。
对于内存泄漏这个问题,如果证明是驱动问题的话,我们可以借助“poolmon"这个工具来找到罪魁祸首。Troubleshooting Pool Leaks Part 2 – Poolmon(英文的)
http://blogs.msdn.com/b/ntdebugging/archive/2012/08/30/troubleshooting-pool-leaks-part-2-poolmon.aspx
Download kits and tools for Windows 10
https://msdn.microsoft.com/en-us/windows/hardware/dn913721.aspx我们还可以用管理员命令行运行一下命令收集内存信息.
"xperf -on BASE+Pool+ReferenceSet –stackwalk PoolAlloc+PoolFree -buffersize 2048 -MaxFile 2048 -FileMode Circular && timeout -1 && xperf -d C:\trace_pool_alloc.etl"
然后用WPA.exe(下载ADK)打开,加载debug symbols,寻找“AIFO”的标签.希望这些信息会有用.
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.
- 已编辑 MeipoXuMicrosoft contingent staff, Moderator 2016年1月18日 2:40
-
之前尝试看过poolmon,好像里面没有很多内存的消耗。请注意看我贴的链接,里面有poolmon的截图。
另外,我的电脑要工作用,不太可能用没有网络的模式什么都不开,放一天。
您看到有JAVA,这个比较正常,我们确实有很多开发工作是在JAVA上做的,但这个为什么要注意?如果java进程消耗了较多的已提交内存,在详细信息里面完全是可以看到的啊。
不知道您说的用管理员命令行搜集内存信息能不能看到隐藏的已提交内存,我下一步打算试一试。
您明白我说的“隐藏的已提交内存”是什么情况下能看到么?我现在只知道一种情况是看不到的,那就是运行VirtualBox虚拟机这样的软件似乎是看不到的。
-
你好 龚佶敏,
从你以上贴出的两个贴子,让我感觉有点混乱. 如果注销(不是重启)可以解决问题,那这个问题很有可能是某个三方软件造成的, 因为注销不会重新初始化驱动. 但是从你的描述中,又表明你并没有做任何操作这个问题也会发生.
我想再次向你确认一下问题的具体症状:
在干净启动下,即使不操作计算机(不打开程序)(任务管理器里没有任何三方程序在运行),系统内存也总是在不断消耗直至计算机不能用?
问题的具体症状很重要,它可以帮助我们确定诊断问题的方向,到底是系统本身的问题,还是driver 的问题还是三方软件的问题. 如果我有理解错的地方请及时指正我. 然后我们继续诊断问题.以下链接包含了最新的SurfacePro4的驱动,你可以尝试更新一下.
Surface Pro 4 Drivers and Firmware
https://www.microsoft.com/en-us/download/details.aspx?id=49498
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.
- 已编辑 MeipoXuMicrosoft contingent staff, Moderator 2016年1月19日 1:47
-
如果启动计算机,不操作计算机,系统的已提交内存不会有明显的增大。我无法确定是不是会不断消耗直到计算机不能用,也许放上一个月会这样?
我觉得这个问题跟第三方软件有关,但跟操作系统可能也有关(好像这个问题是从Windows8.1开始有的)
问题是如何看到“已提交内存”都消耗在什么地方了?
为什么任务管理器里面所有进程的已提交内存加起来远远小于系统总的已提交内存?
我如果通过任务管理器把能结束的第三方软件进程都结束掉,已提交内存仍然很大无法释放。但为什么一旦注销,已提交内存就能释放很多?
这个问题跟SurfacePro4的驱动和固件应该关系不大。因为我之前在用的SurfacePro1代也是这样的问题。
我有两个同事将联想的K2450从Win7升级到Win10之后也有这个问题,只不过他们每天下班都关机,所以这个问题没有严重到爆发出来的程度。
- 已编辑 龚佶敏 2016年1月19日 15:44
-
你好 龚佶敏:
“如果启动计算机,不操作计算机,系统的已提交内存不会有明显的增大”
如果是这种情况的话,应该是由于三方软件造成的。之前给的WPT,WPA工具应该会有用。不管怎样,保持系统最新是有好处的,我建议你还是更新一下固件,那个更新是最新的版本。
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.
-
您好,这些数据是否能看出问题。
这个问题感觉会很频繁出现了,我的SurfacePro4经常因为这个问题黑了就不亮。
刚才又黑了,强制关机重启之后,查事件发现有
Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: iexplore.exe (11104) consumed 385830912 bytes, MicrosoftEdgeCP.exe (8608) consumed 308895744 bytes, and QQ.exe (2928) consumed 297762816 bytes.
其实根本不是这两个进程占内存多,我总共8GB的内存啊。