WCF休息服务默认连接限制



希望优化Azure上托管的WCF Rest服务的性能。这些服务从SQL Azure表中检索数据,在某些情况下还从Azure表存储中检索数据。它们都在公共端点上。

问题-在WebRole.cs中,我可以看到ServicePointManager.DefaultConnectionLimit设置为2。所有服务的instancecontext模式都是PerCall。在这种情况下,将ServicePointManager.DefaultConnectionLimit更改为12会对性能产生任何影响吗?

这是一个复杂的问题,据我所知,这在一定程度上也取决于:

  • CPU物理和逻辑属性
  • 流程模型请求队列限制
  • 进程模型最大IO线程数
  • 每个CPU的最大并发请求数
  • 每个CPU的最大并发线程数

我不会假装知道太多,我真的不知道。但我正在努力了解它是如何运作的。据我所知,我使用了这个设置(我认为绝对不能保证这是最好的设置):

RuntimeConfiguration.ProcessModelRequestQueueLimit=5000*Environment.ProcessorCountRuntimeConfiguration.ProcessModelMaxIoThreads=100*环境.ProcessorCountHostingEnvironment.MaxConcurrentRequestsPerCPU=5000HostingEnvironment.MaxConcurrentThreadsPerCPU=0System.Net.ServicePointManager.DefaultConnectionLimit=Int32.MaxValue

这个设置主要基于这篇文章:

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

最新更新