2016-11-15 49 views
0

従来の.NET 3.5 WCFサービス(22エンドポイント、数百の操作)をホストする新しいWin 2012サーバーがあり、パフォーマンスの問題があり、接続数を制御したいと考えています。WCF同時接続構成

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に正しいカウンタを追加しましたか?

更新

私たちは、別のクライアントを追加し、WSサーバーが処理しているリクエストの数を倍増してきました。したがって、このことは上流側で抑制が行われていることを証明しています。アップストリームクライアントは.NET3.5 ASP.NET Webサイトです。 WCFサービスへの接続は、wsHttpBinding経由です。

すでにsystem.net\connectionManagement\maxconnectionが追加されていますが、これは影響ありません。

その他の設定では、発信ASP.NET接続をWCFサービスに抑制することができますか?

答えて

0

このセクションを追加してみてくださいして、再度パフォーマンスをテストしてください:

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

デフォルト値は2

+0

である私はすでにクライアントでこの設定を持っていたが、今もWCFサービスにこれを追加しましたあまりにも。現在の接続は一時的に34にジャンプし、再び24に戻った。私はこれが助けになったとは思わないが、とにかく感謝する。 –

+0

これはアップストリームサービスの接続制限であると感じていますか? Jmeterを使用してWebサイトから負荷を適用し、そこに120スレッドを実行しています。 –