使用性能监视器监视池中的连接

问题描述 投票:5回答:2

我正在调查MVC3应用程序在负载下失败的错误:

“在从池中获取连接之前经过了超时时间。这可能是因为所有池中的连接都在使用中,并且已达到最大池大小。”

该应用程序正在使用Repository模式和Entity Framework,我的直觉是它没有正确关闭连接。我希望能够监视SQL Server上池化连接的数量。到处搜索使我相信我可以在Perfmon中使用这些计数器:

  • 。NET CLR数据
  • 。SQL Server的.NET数据提供程序

但是它们都显示并且被禁用/变灰。

我直接在服务器上运行Perfmon,并且ISS和SQL Server都在服务器上运行。为什么这些计数器不可用的任何想法?

我也尝试过使用SQL Profiler监视池连接,但是EventSubClass列不可用于AuditLogin。

sql-server asp.net-mvc-3 iis connection-pooling perfmon
2个回答
7
投票

您可以在SQL查询窗口中运行此命令,以获取计数以及SQL Server上正在运行的当前连接和会话的详细信息。


1
投票

从SQL方面来看,唯一可行的方法是设置登录事件跟踪。 “事件子类”(Event Subclass)列将告诉您事件是否使用池连接发生。这样,您就可以关联主机,登录名和应用程序名称,然后继续进行挖掘。

© www.soinside.com 2019 - 2024. All rights reserved.