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