WCF rest服务默认连接限制

WCF rest服务默认连接限制,wcf,asp.net-mvc-3,azure,azure-sql-database,wcf-rest,Wcf,Asp.net Mvc 3,Azure,Azure Sql Database,Wcf Rest,希望优化Azure上托管的WCF Rest服务的性能。这些服务从SQLAzure表以及某些情况下的Azure表存储中检索数据。它们都在公共端点上 问题-在WebRole.cs中,我可以看到ServicePointManager.DefaultConnectionLimit设置为2。 所有服务的instancecontext模式都是PerCall。在这种情况下,将ServicePointManager.DefaultConnectionLimit更改为12会对性能产生任何影响吗?这是一个复杂的问题

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

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

这是一个复杂的问题,据我所知,这也部分取决于:

  • CPU物理和逻辑属性
  • 进程模型请求队列限制
  • 进程模型最大IO线程数
  • 每个CPU的最大并发请求数
  • 每个CPU的最大并发线程数
我不会假装知道很多,我真的不知道。但我想了解它是如何工作的。根据我所能收集的信息,我使用此设置(我绝对不保证这是最好的设置):

RuntimeConfiguration.ProcessModelRequestQueueLimit=5000*Environment.ProcessorCount RuntimeConfiguration.ProcessModelMaxIoThreads=100*Environment.ProcessorCount HostingEnvironment.MaxConcurrentRequestsPerCPU=5000 HostingEnvironment.MaxConcurrentThreadsPerCPU=0 System.Net.ServicePointManager.DefaultConnectionLimit=Int32.MaxValue(实际上,我在这里只使用48个atm,因为它对于我的目的来说已经足够了,而且启动速度更快)

此设置主要基于本文: