2012-01-21 20 views
1

AzureでホストされているWCF Restサービスのパフォーマンスを最適化することを検討します。サービスはSQL Azureテーブルからデータを取得し、場合によってはAzureテーブルストレージからデータを取得します。それらはすべて公開のエンドポイントにあります。WCF休憩サービスdefaultconnectionlimit

質問 - WebRole.csで私はServicePointManager.DefaultConnectionLimitは、すべてのサービスのinstancecontextモードがPerCallある2 に設定されていることがわかります。この場合、ServicePointManager.DefaultConnectionLimitを12に変更すると、パフォーマンスに差が生じますか?

答えて

2

これは複雑な問題である、と私はこれを理解しても、部分的に依存:

  • CPUの物理的および論理的な属性
  • プロセスモデル要求キュー制限
  • プロセスモデルの最大IOスレッド
  • CPUあたりの最大同時要求数
  • 1 CPUあたりの最大同時スレッド数

私はそれについて多くのことを知っているふりをしませんが、私は本当にしません。しかし、私はそれがどのように機能するのか理解しようとしています。私は、このセットアップを使用集めることができるものから、(私はを与え、これが最良のセットアップであることが絶対無保証):

RuntimeConfiguration.ProcessModelRequestQueueLimit = 5000 * Environment.ProcessorCount RuntimeConfiguration.ProcessModelMaxIoThreads = 100 * Environment.ProcessorCount HostingEnvironment .MaxConcurrentRequestsPerCPU = 5000 HostingEnvironment.MaxConcurrentThreadsPerCPU = 0 System.Net.ServicePointManager.DefaultConnectionLimit = Int32.MaxValueを

(まあ、私は実際にそれが私の目的のために十分なようで、開始するはるかに高速であるため、気圧ここでの唯一の48を使用します)この設定はmosですこの記事を元にしてみましょう:

http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx