可以分析远程计算机的.net内存探查器

可以分析远程计算机的.net内存探查器,.net,memory,profiling,.net,Memory,Profiling,我拥有Ants Profiler 4,它非常适合性能/内存分析 不幸的是,它只在本地机器上工作,我无法连接到正在运行的进程。 但我的内存泄漏似乎只发生在我们的生产服务器上。用vb.net编写的windows控制台应用程序在连续几天内存使用情况下运行良好,然后突然开始在24小时内消耗所有可用内存 是否有办法从正在运行的进程中收集一些数据并进行检查?升级到最新版本(6.0)。它支持附加到进程,我认为这就是您所追求的 截至本文撰写之时,两个大型.NET商业分析器ANTS和dotTrace仍然不支持内存

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

不幸的是,它只在本地机器上工作,我无法连接到正在运行的进程。 但我的内存泄漏似乎只发生在我们的生产服务器上。用vb.net编写的windows控制台应用程序在连续几天内存使用情况下运行良好,然后突然开始在24小时内消耗所有可用内存


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

升级到最新版本(6.0)。它支持附加到进程,我认为这就是您所追求的

截至本文撰写之时,两个大型.NET商业分析器ANTS和dotTrace仍然不支持内存分配的远程评测。悲伤的脸

我自己也在研究这个问题,目前正在考虑两种选择。首先是Microsoft的CLR分析器:

虽然这不支持远程分析,但它确实有完整的源代码。我认为向它添加一些命令行选项,让您告诉它连接到一个进程,抓取一个内存快照并发送到磁盘,然后分离,这样的工作不会太多。使用Powershell在live server上远程执行快照,然后我可以在桌面上空闲时分析快照

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


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

服务器的windows版本是什么?如果从任务管理器执行内存转储是一个选项,那么您可以执行WinDbg路由。但似乎只附加到本地进程?为什么将此标记为答案?“附加到进程”仅在本地有效。即使在7.4中,ANTS内存分析器也不支持远程机器。只有本地进程而不是remoteAh,我们开始吧。这是一个商业解决方案,具有“内存快照”功能,可在生产服务器上运行,以便在工作站上进行分析: