查找负载最少的服务器

Vin*_*C M 5 algorithm load-balancing

给定三个服务器A,B,C,其中A可以处理50%的流量,B可以处理30%的流量,C可以处理20%的流量,得出一个公式来有效地分配负载.服务器的当前负载也是该功能的输入.

我无法想出他要求的"公式".这个问题有什么具体的答案吗?

JRi*_*out 5

有几种不同的方法来分配可能适用的负载.

案例1.随机分配与每个服务器负载成比例偏差:

for each request
  let x = uniformly distributed random number between 0 and 1
  if x <= 0.5
    goto A
  else if x <= 0.8
    goto B
  else
    goto C
Run Code Online (Sandbox Code Playgroud)

案例2. Round-Robin与每个服务器负载成比例偏差:

let x = new list
push A on x 5 times
push B on x 3 times
push C on x 2 times

for each request
  y = pop x
  goto y
  push y to back of x
Run Code Online (Sandbox Code Playgroud)

案例3.忘记当前负载的假设容量和轮询

let La = A, load of A
let Lb = B, load of B
let Lc = C, load of C

goto argmin (La,Lb,Lc)
Run Code Online (Sandbox Code Playgroud)