1

我有几个 Web 服务器在 Azure 的同一网络中运行我们的网站,在端口 80 HTTP 上进行负载平衡,以便来自 Visual Studio 2010 Ultimate 的网站负载测试将循环命中两者之一。但是,大部分工作总是由同一台服务器完成,大约是 80/20 拆分,导致一台服务器过载。我们已将 asp 状态会话配置为服务器一,服务器二正在接收大量 http 请求(不确定是否相关)

我为位于网站层下方的 Web 服务服务器(尽管没有状态会话服务器)提供了类似的配置,并且它们的负载平衡很好(50/50 拆分)

有什么我错过/需要注意的吗?

4

1 回答 1

1

大多数负载平衡方案都容易产生 IIS keep-alive 默认情况下开启的副作用,如本答案中所述。一旦在某个客户端和某个服务器实例之间在 TCP 级别建立了连接,相同的连接将被重用,直到它在 TCP 级别中断(例如,由于服务器或客户端关闭),然后它将重新建立到同一台服务器或另一台服务器。这就是keep-alive的工作原理,它是设计使然,在大多数现实世界的情况下我通常都很好。如果您只想首先测试负载平衡是否有效,您可以考虑在 IIS 中仅针对测试场景关闭 keep-alive。

于 2013-11-14T12:23:35.800 回答