这个问题在这里已有答案:
在过去的几天里,我不得不每天重启我的电脑几次,因为我的内存不足。我有32GB的DDR3 1866mhz内存。
以下是使用按字节排序的poolmon的非分页驱动程序内存使用情况快照的屏幕截图。
有什么看起来不正常?
这个问题在这里已有答案:
在过去的几天里,我不得不每天重启我的电脑几次,因为我的内存不足。我有32GB的DDR3 1866mhz内存。
以下是使用按字节排序的poolmon的非分页驱动程序内存使用情况快照的屏幕截图。
有什么看起来不正常?
Answers:
“内存不足”,“内存不足”等通常与空闲RAM无关,而与提交费用与提交限制无关。
查看任务管理器的“性能”选项卡“内存”部分的屏幕快照会很有用,因为这将显示提交费用和限制。
但是,这里看起来有两件事看起来很不正常,我怀疑它们足以确定问题的根源:你有大约21,000个过程对象(“Proc”)和大约23,000个线程对象(“Thre”)。
为了比较:我的系统,也就是Windows 10,已经运行了大约10天,并且分别只有大约200和3200个这些对象。
这可能表明你有一些程序运行疯狂地创建进程并且不允许它们完全退出,可能是通过不关闭它们和/或它们的线程的句柄。虽然它们现在不会影响你的RAM(它们占用大约100 MB的非分页池总数),但如果继续创建并且不删除进程和线程,它们最终将消耗几乎所有的RAM。提交给非分页池的RAM确实会导致“提交费用”,这就是为什么这些最终会导致“内存不足”或“内存不足”错误。
查找罪魁祸首的快速方法可以查看任务管理器的“详细信息”选项卡。添加“Handles”列,按该列排序,看看是否有任何异常高,特别是如果它不断增加。
nb:“线程”列可能没有帮助。如果你正在寻找一个包含大量线程的进程 - 这不是一件不可能发生的事情 - 那将会很有帮助。但事实上,这里有大约与线程一样多的进程。每个进程都会得到一个线程(开始),因此进程的瘟疫会带来相同数量线程的瘟疫 - 但这不会出现在任何一个进程的“线程”计数器中。
但是,sysinternals工具Process Explorer的“进程树”视图可能会有所帮助。您正在寻找一个包含大量流程的流程。
如果不这样做,请尝试使用sysinternals ProcMon工具并查找流程创建事件。
如果这不这样做,那么它可能正在一个内核驱动程序完成。使用Windows性能工具包查找进程创建事件。
有关提交费用的更多信息,请参阅我在下面链接的问题的答案。通常,通过添加RAM或增加页面文件大小(或一次运行较少的内容)来修复用完提交费用,但这些方法无法解决此问题。非页面缓冲池无法分页,因此这些Proc和Thre对象必然占用RAM。即使您的页面文件足够大以避免超出提交限制,系统最终也会显示由于可用RAM不足而导致的其他问题。