第三章 系統設計與實現
3.3 節 分散式動態負載平衡機制
此節介紹分散式動態負載平衡機制,此負載平衡機制強調於分散與動態這兩 項。在 JXTA 的環境下,我們以站台為單位,由站台的超級節點作為 Header,依 固定的時間間隔(T)來蒐集站台的資訊,並將站台的負載程度透過負載索引轉換 成積分,並依照轉換的積分做負載層級預測,此為動態的機制部分,之後依照所 預測的層級,執行不同的策略層級,達到負載平衡的效果與目的,此為分散機制 的部分,各站台只需要知道自己的負載情況即可(層級),並不需要知道其他站台 的負載情況,有效減少資訊蒐集量與資訊交換的動作。
3.3.1 節 負載索引
負載平衡策略要能夠執行,第一步必須要知道站台的層級,為了能夠判別目 前站台的層級,我們需要知道站台目前執行工作的情況,並依照資源的使用情 況,透過積分概念,將異質性的資源轉換成統一計算單位,因此我們將站台抓取 的處理器、記憶體的資訊,依照狀態給予對應的積分,不需與其他站台同步,站 台固定時間(T)向抓取負載資訊,累積幾次(N)的積分透過負載預測來做層級的轉 換判斷,不需要個別的對不同的參考資源作評斷。
設變數 X 為處理器的的負載程度,Y 為記憶體的負載程度,S 為處理器或記 憶體的負載區段,BPC和 BPM為處理器和記憶體基底積分數,W 為加權積分數,
可 以 得 到 處 理 器 的 負 載 轉 換 公 式
W BP S
SP
= C×Χ + 和 記 憶 的 負 載 轉 換 公 式S W
BP
SP
= M ×Υ + ,在處理器負載的設定上,我們讓 S 等於 20,使得處理器負 載分為 5 個區段,也就是每 20%的負載為一個區段,基底積分 BPC=2,在 0 到 40%的負載上我們視為非執行工作的 Load 程度,因此不加上加權積分(W=0),因 此 0 到 40%中每 20%可得到的積分數為2×20Χ ,41%到 100%的負載則給予加權
積分 2(W=2),因此 41%到 100%的 Load 每 20%可得到的積分數為 2
Light
站台處於低負載的情況下,同時也代表站台能夠幫助其他站台分擔工作 量,在 Light 的層級下,執行策略 PL,由 JXTA 的廣播服務送出詢問訊 息,每隔一個時間間隔(T),以廣播的方式,將訊息傳遞至其他的站台,
來詢問是否將工作轉移。
Medium
站台處於中度負載的情況下,代表站台仍有餘力能分擔較少數的工作 量,因此在 Medium 的層級下,執行策略 PM,每隔一個時間間隔,同 樣以 JXTA 來傳遞詢問的訊息,但是不以廣播的形式,只以 Neighbor Site 為對象,詢問是否將工作轉移。
Neighbor Site 是以執行效率來做判定,包括了站台的計算能力與頻寬兩 者,藉由將統一的工作傳與其他站台執行,在由工作的回應時間,來選 定 N 個效率較高的站台為 Neighbor Sites。
Heavy
站台處於過載的情況下,持續執行目前的工作,並執行策略 PH,在一 個時間間隔(T)內,等待接收來自其他站台詢問的訊息,在其中接收到 的詢問訊息中,使用有效的工作調配,選出有最佳完成時間的站台,進 行工作轉移,直到下一次層級轉換。
在工作轉移的考量上,減少工作轉移的數量以確保轉移的工作能在選定 的站台執行到結束,避免轉移出的工作多次的轉移而導致整體執行效率 降低。
3.3.3 節 負載平衡機制
負載平衡機制的步驟為資訊蒐集、轉換積分、層級預測和執行層級策略四個 動作。在蒐集了站台的負載資訊後,將異質的資源(如處理器負載程度與記憶體 的使用率)透過對應表轉換成統一的積分,方便我們進行負載程度的預測,在負 載預測上,使用了 Pearl 曲線趨勢預測公式[37],藉由 S 曲線來推導出電腦負載 的未來趨勢。轉換的 N 次積分透過公式做下個階段的負載程度預測,在做出負 載層級的判定後,執行對應的層級策略。負載平衡機制的演算法可見圖 3-5。
站台每隔時間 T 蒐集站台的資訊,包括處理器、記憶體的使用情況,將所 蒐集的數據,依照對應的積分來將站台目前的使用情形轉換成積分數 SP。經過 N 次的蒐集與轉換積分後,透過曲線趨勢預測公式 N bT
ae SP MSP
−= +
1 ,來得到 a 和 b 兩個常數。常數 a 代表的是負載程度的基準值,若 T 為 0,由
a MSP
+
1 可以得到基 準積分數,也就是負載程度的起始值,常數 b 代表的是負載趨勢,b 為正數代表 負載隨著時間會呈現正成長,而 b 為負數代表負載隨著時間會呈現負成長。經由 常數 a 與 b 的比較可以預測站台下一階段的負載程度,並給予層級與執行層級策 略,直到下一次的層級轉換,演算法的時間複雜度為