所有记忆都去了哪里?

时间:2010-10-28 11:01:42

标签: .net memory-management com+

我们已经构建了一个使用一些COM +组件(由我们开发)的Windows服务。它运行在Windows服务器上(虚拟化通过vmware),有些东西在吃内存。

内存检查

我做了一个小应用程序,它遍历所有Process.GetProcesses并返回其总内存使用量:

首先运行:

C:\Temp>ProcessExplorer.exe
Virtual: 1613Mb, Physical: 318Mb

几分钟后:

C:\Temp>ProcessExplorer.exe
Virtual: 1492Mb, Physical: 48Mb

任务管理员

查看任务管理器中的进程我没有看到任何具有高内存使用率的应用程序。但 如果我查看“性能”选项卡,则没有可用的内存。

alt text

我让服务器在没有应用程序的情况下运行了几天,内存使用量一直保持在30%左右。我昨天打开了应用程序,几小时前服务器上的内存使用量增加到了约60%。

那么所有的记忆都去了哪里?我怎么找到它? :)

2 个答案:

答案 0 :(得分:0)

Windows'任务管理器是一个非常有限的工具 - 请查看Process Explorerperfmon.msc

答案 1 :(得分:0)

VmWare Tools创建了一个Memory气球来释放另一个虚拟机的内存。似乎它是VmWare Tools中的一个错误,因为虚拟机确实需要那个内存。

我们已尝试在该VM上启用VmWare工具,现在一切正常。