我们有一个IISnetworking服务器场(目前有两台服务器)设置为使用SQL ASP状态来获取会话信息。 当我查询ASP状态数据库表时,我可以看到数据库pipe理的会话数量。
有一个相关的性能监视器,我可以用来获取相同的信息,或者是通过SQL查询做到这一点的最佳方法吗?
我已经尝试在Web服务器和SQL Server上设置perfmon,并监控所有听起来像Session的事情,包括:
\\WebServerA\ASP.NET Apps v2.0.50727(__Total__)\Session SQL Server connections total \\WebServerA\ASP.NET Apps v2.0.50727(__Total__)\Sessions Active \\WebServerB\ASP.NET Apps v2.0.50727(__Total__)\Session SQL Server connections total \\WebServerB\ASP.NET Apps v2.0.50727(__Total__)\Sessions Active \\WebServerB\ASP.NET State Service\State Server Sessions Active \\WebServerB\ASP.NET v2.0.50727\State Server Sessions Active \\SQLServer\ASP.NET Apps v2.0.50727(__Total__)\Session SQL Server connections total \\SQLServer\ASP.NET Apps v2.0.50727(__Total__)\Sessions Active \\SQLServer\ASP.NET State Service\State Server Sessions Active
所有计数器在运行模拟50个用户的性能testing时保持为0,同时通过查询SQL会话表可以看到创build了50个会话。
编辑 :Web服务器上的“会话SQL Server连接总数”计数器在testing运行时会上升,但实际上并没有跟踪用户数量(显然,我知道,但是我希望得到一些东西 )
你最好的办法是查询SQL Server,因为这是最可靠的信息,因为数据库是这个信息的权威来源。
我在http://msdn.microsoft.com/newsgroups上做了一个类似的search,发现了相同的答案: 如何计算活动的ASP.NET会话(SQL Server)?
它似乎是查询SQL是获得这些信息的唯一方法。 我想唯一的方法就是创build一个自定义的性能计数器。 我认为如果这是一个好主意,微软会简单地创build这个柜台?! 没有?