従来の.NET 3.5 WCFサービス(22エンドポイント、数百の操作)をホストする新しいWin 2012サーバーがあり、パフォーマンスの問題があり、接続数を制御したいと考えています。WCF同時接続構成
perfmon Web Service/Current Connections
カウンタが接続されており、この値が繰り返し安定して24個の接続に上昇することがわかります(時折スパイクが25個になる)。
我々は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"/>
- は他に、この接続の制限を設定取得される可能性があります:私たちは、デフォルト値、低い数字、推奨と高い数字を試してみましたか?
- perfmonに正しいカウンタを追加しましたか?
更新
私たちは、別のクライアントを追加し、WSサーバーが処理しているリクエストの数を倍増してきました。したがって、このことは上流側で抑制が行われていることを証明しています。アップストリームクライアントは.NET3.5 ASP.NET Webサイトです。 WCFサービスへの接続は、wsHttpBinding経由です。
すでにsystem.net\connectionManagement\maxconnection
が追加されていますが、これは影響ありません。
その他の設定では、発信ASP.NET接続をWCFサービスに抑制することができますか?
である私はすでにクライアントでこの設定を持っていたが、今もWCFサービスにこれを追加しましたあまりにも。現在の接続は一時的に34にジャンプし、再び24に戻った。私はこれが助けになったとは思わないが、とにかく感謝する。 –
これはアップストリームサービスの接続制限であると感じていますか? Jmeterを使用してWebサイトから負荷を適用し、そこに120スレッドを実行しています。 –