我们在 IIS 中有一个应用程序池,其中包含一些应用程序。根据任务管理器,此应用程序池使用了超过 4GB 的内存,我需要找出导致这种情况的具体应用程序。
有没有什么方法可以获得更多信息?
答案1
您可以使用性能监视器和调试诊断来生成高内存使用情况的转储,包括 IIS 内存使用情况。性能监视器将让您跟踪 Asp.NET 内存使用情况(那里有几个计数器),而调试诊断将让您根据性能计数器捕获用户转储。
在 Debug Diag 处理转储后,它会让您知道哪些进程使用了多少内存。
还有一篇更长的文章这里。希望这能有所帮助。
答案2
我可能会采取一种更简单的方法,将每个站点放入其自己的应用程序池中,然后查看哪个站点正在失控增长。
答案3
使用进程探索工具检查应用程序是否有更多磁盘活动。这些工具将为您提供有问题的进程打开和使用的文件和文件句柄信息的详细信息。它将让我们知道在空闲时间内相关进程使用了多少个文件句柄和其他句柄(套接字、线程、互斥句柄等)。