C# “ASP.NET”;“会议超时”;计数器(perfmon.exe)

C# “ASP.NET”;“会议超时”;计数器(perfmon.exe),c#,asp.net,memory,session-state,C#,Asp.net,Memory,Session State,我目前正在对ASP.NET应用程序进行负载测试。我用这个应用程序向500个用户收费, 当它运行时,我在perfmon.exe控制台中检查web服务器上的“会话活动”和“会话超时”计数器 在my web.config中,会话超时为3分钟(出于测试目的) 因此,随着测试的进行,“Sessions Actives”计数器保持在大约900个活动会话上,我假设这是正常的,因为有500个活动用户和大约400个其他会话尚未超时 但当我看到“会话超时”计数器时,它会不断增加。负载测试完成后,它会逐渐下降 这个柜

我目前正在对ASP.NET应用程序进行负载测试。我用这个应用程序向500个用户收费, 当它运行时,我在perfmon.exe控制台中检查web服务器上的“会话活动”和“会话超时”计数器

在my web.config中,会话超时为3分钟(出于测试目的)

因此,随着测试的进行,“Sessions Actives”计数器保持在大约900个活动会话上,我假设这是正常的,因为有500个活动用户和大约400个其他会话尚未超时

但当我看到“会话超时”计数器时,它会不断增加。负载测试完成后,它会逐渐下降

这个柜台到底是什么?据我所知,不推荐使用的会话尚未清理(垃圾收集器?),仍在使用内存


因为我们的应用程序使用了大量内存,所以我试图找到内存的确切位置。

计数器似乎在指示发生了什么。i、 e.当活动会话启动时,活动会话的计数器将转到正确的数字。。在某个时候,它们开始消失,并触发会话超时增加(即ASP.NET基础结构立即取消的会话)。我不知道你期望看到什么。我建议你阅读这本书的章节和章节。在这方面,它们非常有启发性。

事实上,我真正需要知道的是,这些超时会话是否仍在使用内存。感谢您提供的链接,我今天将检查它。在进行了更多测试之后,该计时器在应用程序池重新启动(如iisreset)之前不会停止运行。[br]但在我的loadtest结束之前,超时会话似乎仍未清理(内存未释放)。会话中是否运行了任何RCW内容?例如,会话中是否有任何正在访问和存储的旧COM对象?我见过他们使负荷保持在高位。这也让人觉得你可能想看看其他计数器,找出消耗记忆的具体原因。我已经用我上面提到的章节来给我指点它在哪里被持有。具体来说,GC计数器非常有用(gen0、gen1和gen2)。我主要在会话中存储字符串和int,根本没有COM对象。。。从我的测试结果来看,gen 0、1、2和大对象堆大小之和为592Mb。但是,我的内存从3500Mb下降到588Mb。有点烦人。气相色谱法的平均工作频率为22%,有些峰值为80%。可能内存被非托管对象占用,但我不知道如何查找。嗯,非常感谢你的帮助。