【问题标题】:Where did all the memory go?所有的记忆都去哪儿了?
【发布时间】:2010-10-28 11:01:41
【问题描述】:

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

内存检查

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

第一次运行:

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

几分钟后:

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

任务管理器

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

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

那么所有的记忆都去哪儿了?我如何找到它? :)

【问题讨论】:

    标签: .net memory-management com+


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      VmWare 工具创建了一个内存气球来为另一台虚拟机释放内存。似乎这是 VmWare 工具中的一个错误,因为虚拟机确实需要该内存。

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

      【讨论】:

        猜你喜欢
        • 2011-07-02
        • 1970-01-01
        • 2010-11-01
        • 2010-11-08
        • 2016-05-29
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        相关资源
        最近更新 更多