2015-12-18 53 views
0

我正在尋找一個小負載平衡算法,以確定要發送到每個服務器的數據基於它的性能指標(它的重量)。我的問題與此類似:Writing a weighted load balancing algorithm基於性能(負載平衡)批量分割數據

然而,那一個更適用於獲取恆定數據流的服務器。我的案例將運行一次,並在多個系統(當時爲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

回答

1

您只需計算單位重量可以執行多少工作,然後再乘以單位工作的重量。這裏有幾行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] 

在年底做倒圓的東西,你有你想要的

+0

嘿感謝這個問題的答案!我會指出w等於運行時,所以2s/img是4s/img的兩倍。因此,在res方程中,您必須將運算符除以1以得到正確的結果。我剛剛創建了一個新數組,這給了我正確的答案,imges_per_sec = 1.0/runtimes_n – alfredox