簡要
主要解決熱遷移對象在內存利用變化快,磁盤讀寫速率快等狀態的情況下無法判斷其是否適合發起熱遷移。
本次任務方案選擇了多集成學習算法的投票選舉,這是一個基于RandomForest,Adaboosting,Xgboost業界主流算法的混合voting預測模型。30%真實數據集作為驗證,預測精度97.44%,實現對熱遷移發起任務的成功率預測,對于超時遷移識別的樣本識別率實現,也就是說可以減少原來熱遷移超時失敗情況數量的80%。
1. 需求背景
在
云計算資源管理中,熱遷移是實現資源配置的重要手段,常常會因為多種場景需要發起熱遷移:例如資源調配,母機負載均衡以及運維人工熱遷移等場景。
而在當前熱遷移任務中,熱遷移在經過多次條件過濾后還是會經常遇到遷移超時失敗的情況,發起不合適的熱遷移任務,不僅影響了客戶了SLA體驗,也影響了熱遷移效率。
按以往人工經驗去進行判斷是否適合熱遷移,例如內存變化率高會影響熱遷移,CPU使用率 過高也會影響熱遷移,
在這之前盡管我們知道內存變化率過高,CPU使用率過高,乃至內外網吞吐量過高都會影響到熱遷移的成功, 但我們無法去構建一個衡量標準。并且如果頻繁去監控獲取子機的這些數據,也會對虛擬機性能造成影響,并且人工也無法去判斷什么時間點哪些情況下哪個指標更重要,因此無法形成一個綜合而客觀穩定的判別標準。
2. 實現目標
所以我們引入了機器學習&深度學習,希望能夠擬合一個復雜模型去計算并量化出一個適合熱遷移的狀態標準,實現對熱遷移發起后是否會超時失敗進行預測。
3. 實現簡介
3.1特征空間
3.2特征處理
考慮到每列數據的差異有6個數量級差別,所以需要對大數量級的列數據 進行縮放。常用的做法有 np.sqrt,np.log。
3.3 HeatMap特征相關性分析
熱力圖是最直觀的展示特征之間的線性相關性,從圖中我們可以看到cpu和mem呈強相關性,這是顯然的結果,高性能cpu往往伴隨大內存;其次呈現中等相關的是出入流量。由此簡單可以看出各個特征參數都是相對獨立的,從線性相關角度看。
3.4算法簡介:為什么選擇隨機森林與Xgboost
隨機森林
如果從深度學習的角度去理解,可以認為隨機森林的決策樹隨機分裂,隱含地創造了多個聯合特征,并能夠解決非線性問題,
可以相對離散地自動提取特征與權重學習。某種意義上實現CNN的卷積池化提取作用。
并行計算,對于個別特征缺失不敏感。
當構建決策樹時,每次分裂時,都從全特征候選p集中選取m個進行分裂,一般m=sqrt(p)。
隨機森林不會出現過擬合,只要樹的個數(B)足夠大時會使得錯誤率降低。
Xgboost
在Kaggle比賽中的必備算法,屬于Gradient boosting的高效實現。并且有以下三處的改進:
(1). xgboost在目標函數中顯示的加上了正則化項,基學習為CART時,正則化項與樹的葉子節點的數量T和葉子節點的值有關。
(2). GB中使用Loss Function對f(x)的一階導數計算出偽殘差用于學習生成fm(x),xgboost不僅使用到了一階導數,還使用二階導數。
(3). CART回歸樹(GB)中尋找最佳分割點的衡量標準是最小化均方差,xgboost尋找分割點的標準是最大化,lamda,gama與正則化項相關。
AdaBoost
通過迭代實現把弱分類器訓練成強分類器,每一次迭代后會對錯誤數據的關注度更高(策略為最小化分類誤差率),使得下一個基學習器會對上次迭代數據更有更多的針對性,最終構建成附帶權重的線性組合集成學習。
在數據清洗干凈的情況下,效果會更好。
4.模型性能
4.1 Recall召回率
4.2Accuracy:97.44%
5.把模糊的行業經驗變得更科學,更精準:
根據模型預測結果計算出影響熱遷移的重要指標:
CPU使用率對熱遷移成功最關鍵,其次是包的進出流量,磁盤讀取速率反而影響力很低。
由圖我們可以看到cpu使用率對熱遷移成功與否的影響力占比去到21.4%,顯著高于其他特征參數,這也是符合人的經驗邏輯的,
當一臺子機cpu使用率占用達到一定比例之后,如果后臺再發起熱遷移必然會占用部分系統資源,
而形成熱遷移超時往往也是因為沒有足夠資源進行響應。
其次我們可以看到進出包量的影響力是同等(9.7%, 9.1%),再然后是內存使用率(8.3%)以及磁盤使用率(6.2%)。
可以注意到的是進出包量的影響力比我們想象的要高很多,而磁盤讀取速率(4.6%),磁盤寫入速率(5.1%)的重要性卻要比我們想象的低,
這樣的反饋結果根據我們的直觀經驗是無法獲得的。
再往后熱遷移發起任務中,我們也可以依據以上的分析結果,
如果遷移策略能夠提前分配額外資源(cpu,mem,進出帶寬)給到遷移對象,相信會大大減少熱遷移超時失敗的情況。
6.后續改進
6.1經驗總結
在實際工程實施中,除了模型的構建 特征處理以外,第一步的數據收集,輸入參數空間的構造都是至關重要的,數據集的大小以及質量直接決定了模型性能的上限。一方面除了收集實踐經驗判斷相關的重要參數,另一方面也不能去簡單排除其他看起來似乎不相干的特征參數,因為往往判斷結果有可能與人的直覺相左右,總之盡可能的收集所有相關參數,然后再通過特征工程進行篩選去重是比較合理的做法。
在本次預測模型構造中,數據預處理去除臟數據,缺失數據后剩下的負樣本數量還處在5k級別,一般而言對于一個機器學習任務 樣本數量級別達到10萬個是比較合適的,
另外目前正負樣本比例不均衡也給模型性能的提升和預測帶來很大困難,這個問題相信伴隨數據量的增長以及改善采集數據缺失情況后會得到較大改善。
6.2 后期展望
部署優化
在后期優化中,會聯通我們的
數據倉庫CDW實現數據自動采集,模型自動訓練以及自動部署。
功能擴展
在后續熱遷移技術改進中:我們會根據在不同的資源約束和VM工作負載下去預測不同實時遷移算法的關鍵參數。對基于實時遷移算法的遷移任務,構建機器學習模型預測遷移任務的總遷移時間,停機時間以及傳輸的總數據量。
7.技術框架
主要包含Serving服務框架,Model倉庫,WEB服務層,后期的所有預測服務/數據挖掘分析都將在這個框架下運行,不限于數據采集 模型訓練 版本管理以及部署發布。
TensorFlow Serving
是一個工業級可用于機器學習模型 serving 的高性能開源庫。它可以將訓練好的機器學習模型部署到線上,使用 gRPC 作為接口接受外部調用。將tensorflow訓練出來的模型更好的應用在生產環境中,通過API等等支持的方式來方便對外提供穩定可靠的服務
WEB服務器結構
Flask-uWsgi-Nginx: Flask負責任務調度,uWsgi-Nginx負載轉發,
目前已實現3臺機器容災部署,統一接入TGW實現負載均衡。
TensorflowClient
主要負責與TensorflowServing通信和調用模型api,通過調用TensorFlow Serving 的 Predict API 和 gRPC 的 implementations.insecure_channel 從而構建一個 request。
8.接入流程:
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于混合集成學習算法的熱遷移超時預測模型
本文網址:http://www.guhuozai8.cn/html/solutions/14019321357.html