我有一个 Web 服务,在正常情况下消耗大约 6-7 GB 的内存。但有时消耗会激增至 11-12 GB,我想找出原因。为此,我想对正在w3wp.exe
运行的服务进行内存转储,以便可以在离线调试器中对其进行分析。我使用进程转储通过运行
procdump.exe -ma w3wp.exe
在正常情况下,它可以正常工作,但是当进程使用 11 GB 内存时,该进程会被某种 IIS 保护(针对无响应应用程序池)终止,并且procdump
不会创建任何转储文件。我该如何解决这个问题?
答案1
要转储进程的内存,您可以尝试通过任务管理器右键单击您的进程,然后选择完整内存转储
此外,如果总是失败,你可以转储所有 RAM。为此,你可以使用转储,我经常使用它,它从未失败过。但是,转储的大小将等于您的 RAM 的大小。
您将能够使用 volatility 或其他调试器来处理它