根据性能分批拆分数据(负载平衡)



我想写一个小的负载平衡算法,根据每个服务器的性能指标(权重)来确定向每个服务器发送多少数据。我的问题与此类似:编写加权负载平衡算法

然而,对于获得恒定数据流的服务器来说,这一点更为重要。我的案例将运行一次,并在多个系统之间进行拆分(每次2个)。负载需要拆分,以便同时处理和完成所有数据。

Example 1:
We get a zip with 1,000 images
System #1: 3 s/img
System #2: 6 s/img
Since sys1 is 50% faster, it should receive double the data.
Sys1 receives: 667 images
Sys2 receives: 333 images

我在python中这样做,在一个数字列表中取一个等式,并根据重量划分批次号,会是什么?示例:接收权重=[4.1, 7.3, 2.5]img_count = 5000

您只需要计算一个单位重量可以做多少功,然后将重量乘以单位功。下面是python中的几行。

w = [4.1, 7.3, 2.5]
total = 5000
unit = total / sum(w)
res = [unit * i for i in w]
print res // [1474.820143884892, 2625.8992805755397, 899.2805755395684]

最后做一些舍入操作,您就得到了想要的

最新更新