apache lbmethod

Apache Proxy lbmethod

 

 

基本上就是翻译文章,加上了一点自己的理解,先记录下来,以后理解深刻了在修改。

 

 

1.1 Request Counting Algorithm 请求计数算法

 

是一种基于轮循的请求计数算法,在每个worker 之间分发请求,确保每个worker 能够得到的请求数量 和配置的共享的请求数量一致。

ProxySet lbmethod=byrequests

 

lbfactor :一个worker 工作的频率

lbstatus :由worker 完成请求的紧急程度,数字越大越优先。所有的lbstatus 的总和是不变的。

 

 

 

伪代码如下:每次请求都会执行代码

 

for each worker in workers

    worker lbstatus += worker lbfactor

    total factor    += worker lbfactor

    if worker lbstatus > candidate lbstatus

        candidate = worker

 

candidate lbstatus -= total factor

 

 

例一:

worker

a

b

c

d

lbfactor

25

25

25

25

lbstatus

25

25

25

25

lbstatus

-75

25

25

25

lbstatus

-50

-50

50

50

lbstatus

-25

-25

75-100=-25

75

lbstatus

0

0

0

100-100=0

 

 

 

 

重复

 

选择顺序为a,b,c,d 然后又是a,b,c,d

例二:如果b down 掉了,那个lbstatus 的总和就为75,那么调度器的算法就如下所示:

 

worker

a

b

c

d

lbfactor

25

0

25

25

lbstatus

-50

0

25

25

lbstatus

-25

0

-25

50

lbstatus

0

0

0

0

(repeat)

 

调度策略就为a,c,d,a,c,d

 

 

 

1.2 Weighted Traffic Counting Algorithm 加权流量技术算法

 

 lbmethod=bytraffic, Request Counting方法相似其中主要变化如下:

lbfactor :是我们希望worker 处理的字节数,是从worker 能够看到的流量方面考虑。

例如:

worker

a

b

c

lbfactor

1

2

1

 

这意味着我们系统b相对于与ac来说能够处理2倍的字节数。这并不意味着b能够处理2倍的请求,而是处理2倍的I/O。因此,请求和响应的数据 应用在了 加权和选择算法中。

 

 

 

 

 

1.3 Pending Request Counting Algorithm 等候的请求计数算法

 

lbmethod=bybusyness,

调度器记录了每个worker 当前被赋予了多少请求,新的请求被自动分发给那些活跃请求数最少的worker。对那些收到请求进行排队的workers 这个算法非常有用,为了让队列的长度保持稳定,一个请求总是给 那些可能响应最快的worker.

在多个 最不忙的workers中,由 Request Counting方法采用的统计经常会打破这个关系。慢慢的,请求的分发将演变成 byrequests 这个特征了。

 

这个算法在Apache HTTP Server 2.2.10 版本之后由效果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值