【问题标题】:Apache Load Balancing Algorithm Wrong BehaviourApache 负载平衡算法错误行为
【发布时间】:2013-08-30 21:00:19
【问题描述】:

Apache有3种负载均衡算法:

  1. 请求计数算法
  2. 加权流量算法
  3. 待处理请求计数算法

理论上,挂起的请求计数算法比其他两个更好,因为它总是会尝试选择连接最少的网络服务器。

我有 3 个 Web 服务器和 1 个负载平衡器。我的问题是,当我尝试挂起请求计数算法时,它没有按预期工作。它总是以循环方式选择 Web 服务器(Web 服务器 1 -> Web 服务器 2 -> Web 服务器 3 -> Web 服务器 1,依此类推) 根据理论,我预计结果将是(web server 1 -> web server 1 -> web server 1,依此类推)

那么,为什么挂起的请求计数算法没有按预期工作?

注意:

  1. 没有保持连接。
  2. 为了测试负载均衡器,我打开一个简单的页面(加载时间小于 0.1 秒)并每 5 秒手动刷新一次以了解它选择了哪个集群。
  3. 未对挂起请求计数算法的配置进行任何更改。

【问题讨论】:

    标签: algorithm apache load-balancing


    【解决方案1】:

    我不明白你为什么期望不同的行为?来自文档:

    新请求会自动分配给活动请求数量最少的工作人员。

    在多个最不忙的工作人员的情况下,请求计数方法使用的统计数据(和权重)用于打破平局。随着时间的推移,工作的分配将变得类似于 byrequests 的特征。

    只要您的服务器有类似的工作要做,行为就应该与 byrequests 相同。只是当一些服务器开始收到大量需要时间的请求时,它们开始被跳过,以便其他服务器获得该流量。

    这是我的理解。

    【讨论】:

      【解决方案2】:

      仅仅因为单个服务器可以处理所有请求并不意味着它应该。如果一台服务器会处理大部分请求,它会比其他服务器更快地失效,这通常不是理想的情况。这样的策略也会带来可靠性风险:即,您可能会在不经意间将“服务器 3”配置错误,直到系统负载升高到足以将其放入游戏中——它会在关键时刻失败。

      【讨论】:

      • 是的,这是有道理的。那么,请求计数算法和待处理请求计数算法有什么区别呢?
      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 2023-03-09
      • 2018-12-20
      • 2018-03-12
      • 2012-06-04
      • 2023-04-05
      • 2017-04-20
      • 2017-06-19
      相关资源
      最近更新 更多