WCF并发连接配置

时间:2016-11-15 11:57:51

标签: wcf .net-3.5 performancecounter perfmon

我们有一个新的Win 2012服务器托管一个传统的.NET 3.5 WCF服务(有22个端点,可能有几百个操作),我们遇到了一些性能问题,并希望控制连接数。

我们附加了perfmon Web Service/Current Connections计数器,并且看到此值反复上升到稳定的24个连接(偶尔会出现峰值到25)。

Perfmon view showing Current Connections

我们尝试使用system.ServiceModel\behaviors\serviceBehaviors\behavior\serviceThrottling来管理连接数。我们尝试过默认值,低数字,推荐数字和高数字:

<!-- default --> 
<serviceThrottling />

<!-- low --> 
<serviceThrottling maxConcurrentCalls="5" maxConcurrentSessions="10" maxConcurrentInstances="15"/>

<!-- recommended (2 processors) --> 
<serviceThrottling maxConcurrentCalls="32" maxConcurrentSessions="200" maxConcurrentInstances="232"/>

<!-- high--> 
<serviceThrottling maxConcurrentCalls="2000" maxConcurrentSessions="2000" maxConcurrentInstances="2000"/>

enter image description here

  1. 这个连接限制可能在哪里设置?
  2. 我们在perfmon中添加了正确的计数器吗?
  3. 更新

    我们添加了另一个客户端,并将WS服务器正在处理的请求数量增加了一倍。所以这证明了节流正在上游发生。上游客户端是.NET3.5 ASP.NET网站。与WCF服务的连接是通过wsHttpBinding。

    我们已添加system.net\connectionManagement\maxconnection,但这没有任何影响。

    哪些其他设置可能会限制与WCF服务的传出ASP.NET连接?

1 个答案:

答案 0 :(得分:0)

请尝试添加此部分并再次测试效果:

  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="250" />
    </connectionManagement>
  </system.net>

默认值为2。