如何检查IIS上每个会话的内存使用情况?

如何检查IIS上每个会话的内存使用情况?,iis,memory-management,out-of-memory,iis-6,iis-10,Iis,Memory Management,Out Of Memory,Iis 6,Iis 10,有没有办法不监视IIS上每个会话的内存使用情况?我见过如何对每个站点和/或每个应用程序池执行一些分析,但不是每个会话。IIS因OutOfMemoryException崩溃,我们需要找出哪些用户消耗的内存最多,这样我们就可以检查这些用户的活动日志,并找出导致内存使用率高的原因 最好不要使用任何付费工具,如果它同时适用于IIS6和IIS10,还可以获得积分,但这只是一个加分 提前谢谢你 在我看来,没有工具可以检查IIS上每个会话的内存使用情况。 如果ASP.NET应用程序无法分配物理内存或保留足够的

有没有办法不监视IIS上每个会话的内存使用情况?我见过如何对每个站点和/或每个应用程序池执行一些分析,但不是每个会话。IIS因OutOfMemoryException崩溃,我们需要找出哪些用户消耗的内存最多,这样我们就可以检查这些用户的活动日志,并找出导致内存使用率高的原因

最好不要使用任何付费工具,如果它同时适用于IIS6和IIS10,还可以获得积分,但这只是一个加分


提前谢谢你

在我看来,没有工具可以检查IIS上每个会话的内存使用情况。 如果ASP.NET应用程序无法分配物理内存或保留足够的虚拟内存以满足分配请求,则会抛出System.OutOfMemoryException错误。默认情况下,可用的可寻址虚拟内存空间为2 GB。如果使用此选项,操作系统将无法分配额外内存

问题的另一个原因是服务器上的其他进程是否正在使用大部分ram

您可以尝试以下故障排除步骤:

连接到运行web应用程序的计算机并打开任务 管理器启动->运行->任务管理器。确保其他流程不受影响 耗尽服务器上的大部分RAM。如果是,关闭它们, 将应用程序迁移到另一台计算机,或增加数量 可用RAM的数量。请注意,ASP.NET应用程序将显示为 w3wp.exe进程。 如果大部分RAM未被使用,则应用程序池可能仅限于少量内存。通过打开IIS管理器开始->运行->inetmgr,展开左侧窗格中的服务器节点,单击应用程序池,右键单击运行应用程序的应用程序池,选择高级设置,并在回收部分更改私有内存限制和虚拟内存限制,可以增加此数量。 如果w3wp.exe进程占用超过1GB的RAM,请联系技术支持。 有关更多详细信息,请参阅以下链接:


没有任何东西可以映射到每个会话的内存使用情况,您无法想象一个来自任何地方的tern。如果您没有此类故障排除方面的经验,您确实需要付费工具或付费支持服务。您能告诉我哪种工具可以满足我的需求吗?最好不要使用任何付费工具,最好强调。你能提出建设性的意见吗?如果你还不知道的话,工具推荐是离题的。问一下Google on.NET memory profiler,你会发现很多。正如你应该想象的那样,我的问题是专门针对一个允许每次会话分析的探查器。然后我再说一遍,没有这样的每次会话分析。所有内存分析器都会告诉您对象如何占用内存空间,您有责任断言这些对象/分配是否合理。扔掉不必要的东西,或者让它们尽早释放出来。这就是分析的价值所在。像这样的案例研究可以让您开始。非常感谢,实际上是w3wp.exe进程占用了16GB中的大部分RAM 14GB,私有和虚拟内存限制设置正确,但操作系统无法分配更多内存。您是否尝试使用post和link中提到的故障排除步骤?是,我相信这个问题与堆的碎片有关,但还没有解决它