3

我们在一个应用服务计划上托管3 个独立的网站。该计划配置为运行3 个小型实例 (S1)。我理解这意味着 3 个独立的服务器,每个服务器都有 1 个 CPU。

如果三个网站中只有一个从单一来源(另一个异地服务器)遇到非常高的流量,那么这 3 个实例之间的负载平衡如何?

是所有请求都进行循环还是全部尝试转到单个实例?我如何控制或测试这个?

当有其他网站时,单个网站是否仅限于单个实例上可用资源的一小部分/部分?

使用 Azure 网站运行多个单 CPU 实例与具有多个 CPU 的单个实例相比有哪些优势?(除了可用性)

我们尝试对其中一个站点进行负载测试,但当我们只攻击 1 个站点而其他 2 个站点没有流量时,它似乎永远不会使用超过 10-15% 的 CPU。这就是让我怀疑负载平衡的原因。

4

1 回答 1

6

你的第一段是正确的。您将有 3 台 S1 服务器分配给您的站点。

每台服务器将托管所有 3 个站点。对任何站点的请求将随机路由到任何服务器。

但是,默认情况下会启用粘性会话,这意味着单个客户端将始终针对同一站点访问同一服务器。因此,如果一个客户端真的在敲击一个站点,所有负载都将转到单个服务器。

您可以通过为站点禁用 ARR 的 Instancy Affinity 来禁用此行为。您可以通过在 web.config 文件中设置自定义标头 Arr-Disable-Session-Affinity = false 来做到这一点。

此处提供更详细的说明:https ://azure.microsoft.com/blog/2013/11/18/disabling-arrs-instance-affinity-in-windows-azure-web-sites/

于 2015-08-20T00:59:49.853 回答