【问题标题】:WCF rest services defaultconnectionlimitWCF 休息服务默认连接限制
【发布时间】:2012-02-15 19:12:28
【问题描述】:

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

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

【问题讨论】:

    标签: wcf asp.net-mvc-3 azure azure-sql-database wcf-rest


    【解决方案1】:

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

    • 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,因为它似乎足以满足我的目的并且启动速度更快)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多