Apache负载平衡算法行为错误

时间:2013-08-27 23:03:17

标签: algorithm apache load-balancing

Apache有3种负载均衡算法:

  1. 请求计数算法
  2. 加权流量算法
  3. 待处理请求计数算法
  4. 理论上,待处理请求计数算法优于其他两种,因为它总是会尝试选择具有最少活动连接的Web服务器。

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

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

    注:

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

2 个答案:

答案 0 :(得分:0)

仅仅因为单个服务器可以处理所有请求并不意味着应该。如果一个服务器处理大多数请求,它会比其他服务器更快地耗尽故障,这通常不是一个理想的条件。这样的策略也会带来可靠性风险:即,只要系统负载升高到足以将其放入游戏中,您就可以毫不吝啬地对“服务器3”进行错误配置 - 并且它将在关键时刻失败。

答案 1 :(得分:0)

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

  

自动为具有最少活动请求的工作人员分配新请求。

     

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

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

这是我对它的理解。