自動化負載平衡子計畫

Download Report

Transcript 自動化負載平衡子計畫

自動化負載平衡子計畫
第三季報告
(2010.1~2010.3)
董信煌
樹德科技大學資管系
[email protected]
大綱
•
•
•
•
•
•
•
本期目標
Xen的CPU排程器
效能需求及評估
實驗設計
研究結果
結論
下期目標
本期目標
• 系統設計. 利用效能指標及環境變數建立多
目標決策數學模式. 探討決策模式的可行解
及最佳化解, 選擇演算法解決策模式.
Xen 的 Credit 排程器 (1)
• Xen 3.1 (CentOS 5.4) 的 Credit 排程器
– non-preemptive
– PS (透過 weight 參數)
– WC and NWC modes (透過 cap 參數)
– 多核全域負載平衡
Xen 的 Credit 排程器 (2)
• 每一個VM及Host(也就是Dom0)的weight及
cap參數可以如下操作
xm sched-credit –d <domid> (讀取參數值)
xm sched-credit –d <domid> -w <weight> (設定weight)
xm sched-credit –d <domid> -c <cap> (設定cap)
效能需求
• 我們以Hadoop為雲端運算的應用範例, 更
以map-reduce為高效能資料探勘工具之設
計平台. 因此VM的效能指標只考慮
– 計算能力: Mapper、排序、Reducer
– 網路傳輸: Mapper、Reducer取得資料
效能評估
• 會影響上述指標的環境變數為各個 Domain
的 weight 及 cap 參數值
• 考慮 Dom0 及虛擬機器的不同 weight 及
cap 值設定, 以模擬各種 CPU 資源配置情
境
• 虛擬機器上的計算及網路效能將被衡量並
收集, 為建立效能模式之依據
實驗設計 (1)
• 硬體: Intel Core 2 CPU (E2180)
– 2 cores at 2.0GHz each
– 2GB ram
– 160GB IDE hard drive
• 軟體: CentOS 5.4, 使用 Xen 3.1.2
– 虛擬機器: Fedora Core 11, 256MB ram, 4GB
hard drive 使用 image 擋案
實驗設計 (2)
• 虛擬機器一 (VM 1)
– 執行計算為主的工作
– 使用 Java 的 Timer 及 TimerTask 類別評估10秒內
VM1可執行多少個Math.sin(Math.random())運算
• 虛擬機器二 (VM 2)
– 執行網路傳輸為主的工作
– 使用 netperf (www.netperf.org) 評估10秒內VM2可
傳輸多少個 Mb 到區域網路內的第二台主機
實驗設計 (3)
• VM1 及 VM2 必須同時執行它們的工作以代
表兩台VM分享系統資源
• 為了降低 VM1 的計算效能(Mops/sec)及
VM2 的網路效能(Mb/sec)之波動程度, 每一
個10秒的計算與網路測試被重複執行5次,
最後以5次的平均值為VM的效率指標
• 必須考慮不同的weight及cap設定
實驗設計 (4)
• VM1 的 Credit 參數設定
– weight w1 = 256, 512, 768, 1024;
– Cap c1 = 25, 50, 75, 100
• VM2 的 Credit 參數設定
– weight w2 = 256, 512, 768, 1024;
– Cap c2 = 25, 50, 75, 100
• Dom0 的 Credit 參數設定
– weight w0 = 256, 512, 768, 1024
• 共有1024種(c1, w1, c2, w2, w0)參數的組合
實驗設計 (5)
• 就每一個(c1, w1, c2, w2, w0)組合
– 在每一分鐘開始時使用 ‘xm sched-credit’ 設
定各domain 的weight及cap
– Shell 程式暫停5秒讓各個domain的weight及
cap設定生效
– 在VM1執行5次的計算測試, 每次10秒, 同時在
VM2執行5次的網路測試, 每次10秒
– 收集5次測試結果並取平均值當效能指標
– 進行下一個(c1, w1, c2, w2, w0)組合的測試
研究結果(1)
• 使用1024 分鐘共收集1024份實驗數據, 每
份資料的格式為
(c1, w1, c2, w2, w0; cap, netperf)
• 系統的自變數有c1, w1, c2, w2, w0
• 系統的應變數有
– cap: VM1 的計算效能
– netperf: VM2 的網路效能
研究結果(2)
• 這些效能指標的意義
– 在一台雙核主機上有兩部虛擬機器(VM1, VM2)
– 經由Xen配置不同程度的CPU資源給Dom0,
VM1, VM2
– VM1 執行計算的能力
– VM2 執行網路傳輸的能力
研究結果(3)
• 使用1024組數據, 我們想要得到的VM效能
模式為
– cap = f(c1, w1, c2, w2, w0)
– netperf = g(c1, w1, c2, w2, w0)
• 上述的 f 及 g 函數可使用 multi-kernel
support vector regression (mk-SVR) 來逼
近
研究結果(4)
• 使用 mk-SVR 迴歸 1024 組數據的結果
cap
netperf
RMSE
.0098
.0098
Corr
1.000
1.000
RMSE 
Corr 

N
(t
i 1 i
iN1(ti
 yi ) 2 N
 t )( yi  y ) /
iN1(ti
t)
2
iN1( yi
 y)
2
結論
• 我們參考MapReduce運作以計算及網路為
虛擬機器的效能評估指標
• 使用一台雙核主機設定兩部VM分別執行計
算及網路工作
• 規劃不同的Credit參數組合
• 在每個參數組合下衡量計算及網路效能
• 利用實驗數據及機器學習演算法建立計算
及網路效能模式
下期目標
• 系統實做及結案. 撰寫程式實做多目標決策
演算法. 以單一系統多處理器環境為例, 增
加 Xen 對於多個VM之工作排程的選項. 熟
悉Xen之跨系統VM live migration功能並為
跨系統之load balancing做初步規劃. 撰寫
結案報告.