如何在App Service Plans上的多个实例之间平衡多个网站?

时间:2015-08-20 00:46:29

标签: azure load-balancing azure-web-sites azure-app-service-plans

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

如果三个网站中只有一个从单一来源(另一个非现场服务器)获得非常高的流量,那么3个实例的负载如何平衡?

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

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

运行多个单CPU实例与使用Azure网站的多个CPU的单个实例有什么好处? (除了可用性)

我们尝试加载测试其中一个网站,当我们只关闭一个网站而另外两个网站没有流量时,它似乎从不使用超过10-15%的CPU。这让我怀疑负载平衡。

1 个答案:

答案 0 :(得分: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/