【问题标题】:.net memory profiler that can profile remote machines.net 内存分析器,可以分析远程机器
【发布时间】:2011-03-28 21:04:11
【问题描述】:

我拥有非常适合性能/内存分析的 Ants Profiler 4。

不幸的是,它只适用于本地机器,我无法附加到正在运行的进程。 但是我有一个似乎只发生在我们的生产服务器上的内存泄漏。用 vb.net 编写的 Windows 控制台应用程序运行良好,内存使用量持续数天,然后突然开始消耗所有可用内存,直到 24 小时内。

有没有办法从正在运行的进程中收集一些数据并进行检查?

【问题讨论】:

  • 服务器是什么windows版本?如果从任务管理器执行内存转储是一个选项,您可以执行 WinDbg 路由。

标签: .net memory profiling


【解决方案1】:

在撰写本文时,两大 .NET 商业分析器 - ANTS 和 dotTrace - 仍然不支持内存分配的远程分析。悲伤的脸。

我自己正在研究这个问题,目前正在考虑两种选择。首先是微软的 CLR Profiler:

http://clrprofiler.codeplex.com/

虽然这不支持远程分析,但它确实具有完整源代码。我认为向它添加一些命令行选项让您告诉它附加到进程,获取内存快照并发送到磁盘,然后分离的工作量不会太大。使用 Powershell 在实时服务器上远程执行它,然后我可以在我的桌面上闲暇时分析快照。

我正在考虑的另一个选择是从实时应用程序中获取一个小型转储,并使用 sos 来运行正在使用的内存的报告。请注意,由于this bug,遗憾的是无法使用 procdump -r 完成 minidump,必须执行完全冻结转储。

无论哪种方式都很重要,我才刚刚开始,但我还没有找到更好的解决方案。

【讨论】:

  • 啊,我们开始吧。这是一个商业解决方案,具有“内存快照”功能,可以在生产服务器上运行,用于在工作站上进行分析:memprofiler.com/nmpcore.aspx
【解决方案2】:

升级到最新版本 (6.0)。这支持 Attach to Process,我认为这就是您所追求的!

【讨论】:

  • 似乎只附加到本地进程?
  • 为什么这被标记为答案?附加到进程仅在本地工作。 ANTS Memory Profiler 不支持远程机器,即使在 7.4 中也是如此。
  • 只有本地进程不是远程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多