如何在不影响性能的情况下创建生产系统的内存转储?

如何在不影响性能的情况下创建生产系统的内存转储?

我正在尝试分析运行 ASP.NET 应用程序的生产 IIS Web 服务器上难以跟踪的内存泄漏问题。为此,我尝试创建内存转储文件以进行离线分析。

在创建转储的过程中,生产服务器及其运行的网站应用程序保持可用至关重要。我第一次尝试创建转储时,系统及其运行的网站停止响应超过一分钟(可能是因为 I/O 已达到最大值),所以我不得不取消它。

有没有一种方法可以创建 Windows Server 2008 R2 实例的内存转储,而不会对系统本身造成太大的压力,并让其继续运行?

如果相关的话,我需要转储的已用内存大小约为 5 GB。系统目前安装了 12 GB 的 RAM,并且有足够的可用磁盘空间。

答案1

从 Windows 7 /Server 2008 R2 开始,有一种方法可以创建进程的克隆并创建此克隆的转储,这样您关心的进程就不需要暂停。使用procdump-r 命令在捕获转储时使用此功能。

您还可以使用捕获 ETW 跟踪并使用以下方法分析数据性能查看器

相关内容