令牌輪詢
平滑最大權重
平滑最大權重演算法
平滑最大權重示例
演算法比較
在測試各種負載均衡時,總會看到wrr演算法,為每個後端rs(real server)設定乙個權重值,根據權重值比例來向rs**。
比如如下負載均衡,後端rs1,rs2,rs3權重值分別為40,30,20, 客戶端過來的請求,負載均衡按照2:3:4進行**
初始時分別給rs相應比例的權重
選擇權重最大的rs,如果最大權重有多個,可以選擇第乙個,或者隨機乙個選中的權重減一
反覆重複步驟2,直到所有權重都為0,然後恢復初始權重
北京車牌號搖號序號生成採用的這種演算法,根據每個人的倍數生成序號池
初始時分別給rs相應比例的token
按照token大小排序(有的實現這一步跳過)
逐個選擇,如果token為0則跳過
如果全部都為0,則重新用原始比例填充
第一次,選中rs1
這個演算法是本次介紹的重點,也是nginx在wrr中使用的演算法
初始時分別給rs相應比例的權重
選擇權重最大的rs,如果最大權重有多個,可以選擇第乙個,或者隨機乙個計算未選中的權重和
選中的權重減去上一步的權重和
未選中的加上自身權重
重複步驟2
三個權重分別為2,3,4,
第一次,選中權重最大rs3,未選中部分權重和為2+3=5,更新選中rs3: 4-5=-1更新未選中 rs1: 2+2=4,rs2: 3+3=6
第二次,選中權重最大rs2,未選中部分權重和為2+4=6,更新選中rs2: 6-6=0更新未選中 rs1: 4+2=6,rs3: -1+4=3
import copy
import collections
weights =[4
,3,2
]reqs =
sum(weights)
ws = copy.deepcopy(weights)
print
("init weights:"
, ws)
summary = collections.defaultdict(
int)
forround
inrange(9
):choose = ws.index(
max(ws)
) mv =
sum(
[v for i,v in
enumerate
(weights)
if i != choose ]
) ws =
[v+weights[i]
if i != choose else v-mv for i,v in
enumerate
(ws)
]print
(f'round , choose: '
, ws)
summary[weights[choose]]+=
1print
(dict
(summary.items())
)
執行,輸入如下:
init weights: [4, 3, 2]
round 1, choose: 1 [-1, 6, 4]
round 2, choose: 2 [3, 0, 6]
round 3, choose: 3 [7, 3, -1]
round 4, choose: 1 [2, 6, 1]
round 5, choose: 2 [6, 0, 3]
round 6, choose: 1 [1, 3, 5]
round 7, choose: 3 [5, 6, -2]
round 8, choose: 2 [9, 0, 0]
round 9, choose: 1 [4, 3, 2]
演算法4,3,2
5,1,1
1,1,5
優點缺點
最大權重
1,1,2,1,2,3,1,2,3
3,3,3,3,3,1,2
3,3,3,3,1,2,3
演算法簡單
如果某乙個權重比較大,則開始幾個都會落在這個rs上
令牌輪訓
1,2,3,1,2,3,1,2,1
1,2,3,1,1,1,1
3,1,2,3,3,3,3
演算法簡單
如果某乙個權重比較大,則最後幾個都會落在這個rs上
平滑最大權重
1,2,3,1,2,1,3,2,1
1,1,2,1,3,1,1
3,3,1,3,2,3,3
計算複雜,需要遍歷兩次
權重較小的能更平均的落在訪問中
gcForest演算法原理及Python實現
1.背景介紹 從目前來看深度學習大多建立在多層的神經網路基礎上,也即一些引數化的多層可微的非線性模組,這樣就可以通過後向傳播去訓練,zhi hua zhou和ji feng在deep forest 中基於不可微的模組建立深度模組,這就是gcforest。傳統的深度學習有一定的弊端 超引數個數較多,訓...
K means和ISODATA 演算法 原理與實現
k means演算法 原理 對於給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為k個簇。讓簇內的點盡量緊密的連在一起,而讓簇間的距離盡量的大。如果用資料表示式表示,假設簇劃分為 c1,c2,ck 則我們的目標是最小化平方誤差e 其中 i是簇ci的均值向量,有時也稱為質心,表示式為 一般步驟 1....
Perona Malik 演算法Python實現
最近正好在學習關於影象處理的東西,需要用到pm perona malik 演算法,所以就把自己的一些理解和 貼上來,希望能跟大家一起 pm演算法的具體原理可以網上查閱相關資料或者相關書籍,這裡只是簡要介紹大概的實現思路 一般而言,對乙個影象進行提取特徵之前,需要進行降噪濾波處理。最常用的應該是高斯濾...