我们在单一应用服务计划上托管 3个单独的网站。此计划配置为运行 3个小实例(S1)。我理解这意味着3个独立的服务器,每个服务器有1个CPU。
如果三个网站中只有一个从单一来源(另一个非现场服务器)获得非常高的流量,那么3个实例的负载如何平衡?
所有请求是循环还是全部尝试转到单个实例?我该如何控制或测试它?
当有其他网站时,单个网站是否仅限于单个实例上可用资源的一小部分/一部分?
运行多个单CPU实例与使用Azure网站的多个CPU的单个实例有什么好处? (除了可用性)
我们尝试加载测试其中一个网站,当我们只关闭一个网站而另外两个网站没有流量时,它似乎从不使用超过10-15%的CPU。这让我怀疑负载平衡。
答案 0 :(得分:6)
你的第一段是正确的。您将为您的站点分配3个S1服务器。
每台服务器将托管所有3个站点。对任何站点的请求将随机路由到任何服务器。
但是,默认情况下启用粘性会话,这意味着单个客户端将始终为同一站点命中同一服务器。因此,如果一个客户端真的在锤击一个站点,那么所有负载都将转移到一个服务器上。
您可以通过禁用站点的ARR的Instancy Affinity来禁用此行为。您可以通过在web.config文件中设置自定义标头Arr-Disable-Session-Affinity = false来实现此目的。