gpt4 book ai didi

wcf - 为什么当我添加更多计算机时,我的 Azure 托管 WCF 服务无法扩展?

转载 作者:行者123 更新时间:2023-12-02 23:52:10 27 4
gpt4 key购买 nike

我们有一个 WCF 服务,托管在 azure 上。它需要一些 xml 并在内存中处理它(没有外部调用/db 等,大约需要 150 毫秒)并返回一些 xml。

我们一直在对其进行负载测试,当我们在 1,2 和 4 核机器上运行它时,我们可以最大化处理器并获得每秒最多 40 个调用的吞吐量(在 4 核机器上)。然而,当我们切换到一台 8 核机器或两台 4 核机器时,我们每秒仍然只能收到大约 40 次调用。

为什么当我扩大进行处理的机器数量时,我可能无法获得更多吞吐量?我预计添加更多机器会相当线性地增加我的吞吐量,但事实并非如此。为什么不呢?

最佳答案

不确定 Azure 是否有特定的限制,但 .NET 框架对同一地址一次处于事件状态的传出连接数量有限制。在这篇名为 Improving Web Services Performance 的 MSDN 文章中它提到默认值为 2。

Configure The maxconnection Attribute

The maxconnection attribute in Machine.config limits the number of concurrent outbound calls.

Note This setting does not apply to local requests (requests that originate from ASP.NET applications on the same server as the Web service). The setting applies to outbound connections from the current computer, for example, to ASP.NET applications and Web services calling other remote Web services.The default setting for maxconnection is two per connection group. For desktop applications that call Web services, two connections may be sufficient. For ASP.NET applications that call Web services, two is generally not enough. Change the maxconnection attribute from the default of 2 to (12 times the number of CPUs) as a starting point.

<connectionManagement>
<add address="*" maxconnection="12"/>
</connectionManagement>

Note that 12 connections per CPU is an arbitrary number, but empirical evidence has shown that it is optimal for a variety of scenarios when you also limit ASP.NET to 12 concurrent requests (see the "Threading" section later in this chapter). However, you should validate the appropriate number of connections for your situation.

这些限制是为了防止单个用户独占远程服务器上的所有资源(DOS 攻击)。由于这是在 Azure 中运行的服务,我猜想他们在终端上进行了限制,以防止用户消耗来自单个 IP 的所有传入连接。

我的下一步是检查并查看 Azure Web 角色是否存在并发连接限制( this thread suggests there is and it's configurable) 并增加它。否则我会尝试从多个来源执行负载测试,看看您是否仍然经历同样的限制。

关于wcf - 为什么当我添加更多计算机时,我的 Azure 托管 WCF 服务无法扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13027422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com