柳春懿,張 曉,覃源淞,蘆尚奇
(西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,西安710029)(*通信作者電子郵箱18729580703@163.com)
隨著云計(jì)算技術(shù)的發(fā)展,云計(jì)算依靠自身優(yōu)秀的性能、靈活的擴(kuò)展性、低廉的價(jià)格吸引著國(guó)內(nèi)外企業(yè)將自身的業(yè)務(wù)遷移到云上。在各方共同努力下,云生態(tài)圈越來(lái)越完善,企業(yè)轉(zhuǎn)型到云上也成為了不可逆轉(zhuǎn)的潮流。然而根據(jù)Reiss等[1]于2012年提出的研究成果可知,谷歌數(shù)據(jù)中心的資源利用率竟然低于50%。作為全球優(yōu)秀的云計(jì)算提供商,不缺乏優(yōu)秀的調(diào)度算法,依然沒(méi)有很好地解決利用率低下的問(wèn)題。主要原因是隨著云上企業(yè)數(shù)量上的增長(zhǎng),企業(yè)的任務(wù)種類(lèi)也在不斷增加。復(fù)雜的任務(wù)種類(lèi)和性能特征導(dǎo)致用戶(hù)資源的申請(qǐng)選擇困難,如果申請(qǐng)的虛擬機(jī)硬件性能太高會(huì)造成資源的浪費(fèi);反之性能太低會(huì)造成不能滿足企業(yè)的基本需求,降低任務(wù)的服務(wù)質(zhì)量。若資源利用率較低的情況下,會(huì)導(dǎo)致運(yùn)營(yíng)成本增加,浪費(fèi)現(xiàn)有資源。但是現(xiàn)階段大部分企業(yè)在沒(méi)有很好的指導(dǎo)情況下,為了保證服務(wù)質(zhì)量,都會(huì)過(guò)多地申請(qǐng)資源[2]。
現(xiàn)有的指導(dǎo)手段主要是通過(guò)用戶(hù)手動(dòng)填入應(yīng)用相應(yīng)信息。例如阿里云服務(wù),會(huì)讓填寫(xiě)需求類(lèi)型、心理價(jià)位、需求描述、行業(yè)領(lǐng)域等,這對(duì)一般的用戶(hù),尤其是非專(zhuān)業(yè)用戶(hù)而言,無(wú)疑是個(gè)困難的操作。另外,有些企業(yè)會(huì)找專(zhuān)業(yè)人士來(lái)分析任務(wù)需求,一般專(zhuān)業(yè)人士的專(zhuān)家費(fèi)是一筆不小的開(kāi)銷(xiāo)。這樣簡(jiǎn)單的描述并不能準(zhǔn)確地描述任務(wù)類(lèi)型和任務(wù)需求,分配的資源也達(dá)不到按需分配目的,所以亟需一種獲取應(yīng)用性能信息的分析方法:一方面為用戶(hù)提供一套準(zhǔn)確的按需分配解決方案,另一方面將信息給云提供商以更準(zhǔn)確地分配硬件資源,達(dá)到節(jié)省資源的目標(biāo)。
與傳統(tǒng)的任務(wù)遷移相比,企業(yè)任務(wù)遷移存在以下問(wèn)題:
1)大部分的企業(yè)的任務(wù)運(yùn)行在物理機(jī)上,如何準(zhǔn)確全面采集任務(wù)在物理機(jī)上的有用信息。
2)不同機(jī)器配置所表現(xiàn)出來(lái)的性能特征會(huì)有所差異,例如Intel i7和Intel i3處理器的CPU在同等利用率情況下,處理能力差距巨大。除此之外,統(tǒng)一物理機(jī)上的虛擬機(jī)之間會(huì)互相影響,如何用最少的性能特征完整地描述任務(wù)。多維度的資源需求將會(huì)增加描述任務(wù)的難度。
3)根據(jù)所獲取的任務(wù)性能特征信息,如何細(xì)分該任務(wù)類(lèi)型,以此為基礎(chǔ)分配相應(yīng)的資源,一方面提供給用戶(hù)進(jìn)行選擇,另一方面提供給云提供商進(jìn)行全局資源調(diào)度。
已經(jīng)有很多文獻(xiàn)提出了應(yīng)用性能分類(lèi)的方法:其中文獻(xiàn)[3]中對(duì)用戶(hù)的源碼進(jìn)行分類(lèi),利用浮點(diǎn)運(yùn)算關(guān)系分析程序的復(fù)雜度,鑒于云平臺(tái)下用戶(hù)安全性,源碼通常不可獲得;文獻(xiàn)[4]中根據(jù)網(wǎng)絡(luò)服務(wù)響應(yīng)時(shí)間,通過(guò)基于分析模型的排隊(duì)理論分析;在此基礎(chǔ)之上,文獻(xiàn)[5]中提出了多類(lèi)排序預(yù)測(cè)在線虛擬機(jī)工作負(fù)載響應(yīng)時(shí)間和吞吐量。針對(duì)云環(huán)境下資源需求預(yù)測(cè)許多研究學(xué)者分別利用回歸模型[6]、時(shí)間序列分析[7]、基于狀態(tài)分析[8]、機(jī)器學(xué)習(xí)模型[9]、模式匹配[10]等方法研究上。這些方法都是基于預(yù)測(cè)機(jī)制,因?yàn)檫\(yùn)行時(shí)間短,預(yù)測(cè)準(zhǔn)確度難以保障。除此之外,文獻(xiàn)[11]中采用決策樹(shù)的軟件分類(lèi)方法,但是只是針對(duì)CPU和內(nèi)存進(jìn)行粗粒度分類(lèi);文獻(xiàn)[12]中比較全面地提出許多任務(wù)類(lèi)型,但是劃分方法過(guò)于簡(jiǎn)單;文獻(xiàn)[13]中基于利用率特征分析,并沒(méi)有全面地進(jìn)行描述任務(wù)特征。
針對(duì)以上問(wèn)題,本文提出了任務(wù)性能的最小參數(shù)集合,從計(jì)算、網(wǎng)絡(luò)、硬盤(pán)三個(gè)大方面,全方位更細(xì)粒度地描述任務(wù)。并利用開(kāi)發(fā)的低負(fù)載的性能采集工具采集該任務(wù)性能,將采集的性能映射到云上性能。根據(jù)采集的性能參數(shù),利用奧姆剃須刀原理,即實(shí)際應(yīng)用中,模型越簡(jiǎn)單越高效[14]。使用權(quán)重可配的多KD(K-Dimension)樹(shù) KNN(K-Nearest Neighbors)算法,詳細(xì)劃分任務(wù)類(lèi)型。使用KD樹(shù)減少存儲(chǔ)量和計(jì)算量[15],使用交叉驗(yàn)證方法提高準(zhǔn)確度[16]。最后結(jié)合云上性能屬性和任務(wù)類(lèi)型,給用戶(hù)提供虛擬機(jī)配置的詳細(xì)信息,給云提供商提供任務(wù)性能相關(guān)的詳細(xì)信息。
服務(wù)性能 QoS(Quality of Service)指標(biāo)通常使用 SLA(Service Level Agreement)協(xié)議來(lái)描述,為了滿足SLA協(xié)議相關(guān)內(nèi)容,單獨(dú)考慮某一個(gè)硬件的性能達(dá)標(biāo)是不準(zhǔn)確的。通過(guò)預(yù)測(cè)的方法得到的性能屬性只適應(yīng)在同一云環(huán)境下進(jìn)行[17],并且數(shù)據(jù)準(zhǔn)確性不高。本文使用歷史數(shù)據(jù)判斷遷移所需配置和任務(wù)類(lèi)型,既能準(zhǔn)確根據(jù)實(shí)際使用情況給用戶(hù)提供虛擬機(jī)選擇方案,又能根據(jù)任務(wù)種類(lèi)和表現(xiàn)出來(lái)的性能特征為云提供商分配方案作參考。具體如圖1所示。
本文根據(jù)云計(jì)算提供的服務(wù)將資源分為計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源,并且有該三大資源引申出具體可測(cè)量的硬件特征,即計(jì)算表現(xiàn)硬件特征為CPU和內(nèi)存;存儲(chǔ)表現(xiàn)為硬盤(pán)和讀寫(xiě)I/O;網(wǎng)絡(luò)表現(xiàn)為網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)帶寬。這些硬件特征不能很好得到控制和測(cè)量,所以根據(jù)實(shí)際需求本文提出了任務(wù)數(shù)據(jù)特征,并且建立性能向量。根據(jù)所選的數(shù)據(jù)特征通過(guò)模型映射到云平臺(tái)上,提供虛擬機(jī)的配置信息。除此之外,將這些數(shù)據(jù)特征輸入到用基準(zhǔn)測(cè)試數(shù)據(jù)的訓(xùn)練集中,細(xì)粒度劃分任務(wù)類(lèi)型。最終,給用戶(hù)提供資源申請(qǐng)建議同時(shí)給云提供商提供虛擬機(jī)分配調(diào)度建議。
圖1 邏輯框架Fig.1 Logical framework
想要全面準(zhǔn)確地描述任務(wù)信息,最為直觀和重要的就是任務(wù)的性能數(shù)據(jù)特征,硬件的性能數(shù)據(jù)特征包含了描述任務(wù)的各種信息。
有很多性能特征可以來(lái)描述這個(gè)任務(wù),如果參數(shù)選擇不準(zhǔn)確,那么將不能準(zhǔn)確描述任務(wù);如果參數(shù)選擇過(guò)少,那么不能全面地描述任務(wù);如果參數(shù)選擇過(guò)多,那么將增大采集工具的負(fù)載,使得數(shù)據(jù)不準(zhǔn)確。所以在性能特征選擇上,本文認(rèn)為應(yīng)該注意以下幾點(diǎn):1)所選的數(shù)據(jù)特征應(yīng)該可以全方面地描述負(fù)載情況,并且必須是容易觀察和控制;2)所選的硬件參數(shù)必須可以通過(guò)云平臺(tái)動(dòng)態(tài)配置;3)應(yīng)該需要確立能夠捕捉任務(wù)性能的最小參數(shù)集合;4)考慮任務(wù)的服務(wù)質(zhì)量是由CPU、內(nèi)存等多維因素共同決定的,并不和某一個(gè)單維度的資源成特定的關(guān)系。
根據(jù)阿里云服務(wù),資源分為基礎(chǔ)資源和額外附加資源。基礎(chǔ)資源分為實(shí)例信息、磁盤(pán)信息、網(wǎng)絡(luò)資源選擇。實(shí)例信息選擇包括CPU核數(shù)、內(nèi)存大小、I/O是否優(yōu)化。磁盤(pán)信息選擇包括系統(tǒng)盤(pán)和數(shù)據(jù)盤(pán)選擇、磁盤(pán)大小、磁盤(pán)類(lèi)型(普通云盤(pán)、高效云盤(pán)、SSD云盤(pán)和本地SSD磁盤(pán))。網(wǎng)絡(luò)資源選擇包括包月或按量類(lèi)型、寬帶規(guī)格等。額外附加資源包括對(duì)象存儲(chǔ)、云數(shù)據(jù)庫(kù)、安全網(wǎng)絡(luò)等。本文僅針對(duì)基礎(chǔ)資源中的計(jì)算、磁盤(pán)、網(wǎng)絡(luò)分別進(jìn)行數(shù)據(jù)特征提取和描述:
1)計(jì)算資源。CPU的運(yùn)算能力不但CPU利用率有關(guān),而且和CPU的類(lèi)型、主頻、外頻、高速緩存等相關(guān)。本文直接利用CPU的服務(wù)質(zhì)量表示所需要的速度,如FLOPS(Floating-Point Operations Per Second),或?qū)撛诘腃PU性能的利用。阿里云采用的是 Intel Xeon E5-2420 CPU,主頻1.9 GHz,啟用了超線程。本文在阿里云的虛擬機(jī)進(jìn)行了測(cè)試,使用LINX工具針對(duì)操作系統(tǒng)為WindowsServer 2012版本不同核數(shù)CPU進(jìn)行測(cè)試。計(jì)算規(guī)模為10 000,重復(fù)次數(shù)為5,得到了該平臺(tái)所給的 1核、2核、4核平均 GFLOPS分別為 21.503 6、41.5510、85.5912,并且方差分別為 0.426、0.201、0.107,由此可以驗(yàn)證虛擬機(jī)的FLOPS隨著核數(shù)的增加穩(wěn)定線性地增加。
2)存儲(chǔ)資源。根據(jù)中國(guó)信息化周報(bào)統(tǒng)計(jì),阿里SSD云盤(pán)可以提供15 000的IOPS(Input/Output Operations Per Second),高效云盤(pán)IOPS為3000,而普通云磁盤(pán)讀的IOPS大約為800,寫(xiě)的大約為400。
3)網(wǎng)絡(luò)資源。阿里云提供總網(wǎng)絡(luò)帶寬大小選擇。
本模型使用 (F,M,U,D,S,N)六維向量來(lái)描述任務(wù)的整體運(yùn)行情況。其中:F表示CPU的浮點(diǎn)運(yùn)行能力作為虛擬機(jī)和物理機(jī)的統(tǒng)一標(biāo)準(zhǔn),M表示內(nèi)存總量,U表示內(nèi)存使用率,D表示磁盤(pán)大小,S表示磁盤(pán)的讀寫(xiě)速度,N表示網(wǎng)絡(luò)帶寬。針對(duì)以上六維性能向量進(jìn)行數(shù)據(jù)采集,若使用成熟工具Ganglia等,會(huì)存在如磁盤(pán)讀寫(xiě)信息不能獲取等問(wèn)題。大部分工具都是只對(duì)一方面數(shù)據(jù)參數(shù)進(jìn)行采集,不滿足全面描述的需求,所以本文實(shí)現(xiàn)了Lbenchmark采集工具,將對(duì)所需計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源統(tǒng)一采集。
對(duì)比分布式信息采集Ganglia,Lbenchmark減少了機(jī)群之間的通信,針對(duì)特定的應(yīng)用程序,可以減少信息采集項(xiàng)的個(gè)數(shù)[18],降低信息采集頻率[19],進(jìn)而降低整體監(jiān)控的負(fù)載。
該工具通過(guò)UI(User Interface)和用戶(hù)交互,內(nèi)部控制模塊提供對(duì)外接口。在不同的節(jié)點(diǎn)上部署采集工具,采集數(shù)據(jù)并分析處理。該分布式采集工具邏輯框架如圖2所示。
圖2 采集工具模塊Fig.2 Collection tool module
為了對(duì)比Ganglia監(jiān)控系統(tǒng)和Lbenchmark系統(tǒng)產(chǎn)生負(fù)載對(duì)機(jī)器的影響,使用CPU占用時(shí)間作為測(cè)試的指標(biāo),利用top工具可以查看到進(jìn)程所占用的CPU時(shí)間長(zhǎng)度,分別在機(jī)器上做無(wú)監(jiān)控系統(tǒng)、有Lbenchmark監(jiān)控和有Ganglia監(jiān)控的負(fù)載情況測(cè)試,得出的測(cè)試結(jié)果如圖3所示。
從圖3可以看出,Lbenchmark采集工具占用的CPU時(shí)間相對(duì)較短,可以低負(fù)載地運(yùn)行采集工具,進(jìn)而減少采集工具對(duì)任務(wù)的影響。
圖3 CPU占用時(shí)間比較Fig.3 Comparison of CPU occupancy time
傳統(tǒng)提高利用率的方法為調(diào)度,但是現(xiàn)在的云資源調(diào)度基本上都是對(duì)臨時(shí)的狀態(tài)信息作出調(diào)度策略。為了得到最優(yōu)的有效調(diào)度策略,已知任務(wù)的類(lèi)型和資源需求是必不可少的,本文針對(duì)已知任務(wù)使用特定的負(fù)載生成工具進(jìn)行負(fù)載任務(wù)特征收集,在任務(wù)遷移之前,提供任務(wù)特征。
根據(jù)任務(wù)的性能不同,本文細(xì)分任務(wù)類(lèi)型,將傳統(tǒng)的粗粒度劃分機(jī)制,即計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)更詳細(xì)地劃分。首先根據(jù)負(fù)載的時(shí)間變化,分為密集型和隨機(jī)型。密集型指即在一定長(zhǎng)時(shí)間內(nèi)硬件都處在高負(fù)載狀態(tài)下;隨機(jī)型是指硬件的負(fù)載在一定長(zhǎng)時(shí)間情況隨機(jī),例如Web應(yīng)用任務(wù)。針對(duì)硬件不同可將任務(wù)細(xì)分為以下類(lèi)型:1)CPU密集型;2)硬盤(pán)密集型;3)內(nèi)存密集型;4)計(jì)算密集型(CPU+內(nèi)存);5)I/O密集型;6)全負(fù)載密集型。
本文將標(biāo)準(zhǔn)負(fù)載生成工具和Linux基礎(chǔ)命令作為訓(xùn)練任務(wù),在測(cè)試服務(wù)器上運(yùn)行得到性能數(shù)據(jù)特征,利用KNN算法建立歷史數(shù)據(jù)的訓(xùn)練集。所選用負(fù)載生成工具如表1所示。
表1 Benchmark用例Tab.1 Benchmark templates
本文針對(duì)數(shù)量巨大且分類(lèi)清晰的訓(xùn)練數(shù)據(jù),采用基于屬性權(quán)重的KD 樹(shù) KNN優(yōu)化算法。K近鄰模型的特征空間一般是n維實(shí)數(shù)向量空間,使用的距離一般使用歐氏距離來(lái)表示:
KNN簡(jiǎn)單算法存在問(wèn)題有:1)計(jì)算量和存儲(chǔ)量巨大。2)K值選擇問(wèn)題,K值的減小就意味著整體模型變得復(fù)雜,容易發(fā)生過(guò)擬合;K值的增大就意味著整體的模型變得簡(jiǎn)單;K=N,則完全不足取,因?yàn)榇藭r(shí)無(wú)論輸入實(shí)例是什么,都只是簡(jiǎn)單的預(yù)測(cè),它屬于在訓(xùn)練實(shí)例中最多的類(lèi),模型過(guò)于簡(jiǎn)單,忽略了訓(xùn)練實(shí)例中大量有用信息。針對(duì)K的取值,數(shù)據(jù)挖掘領(lǐng)域通常使用交叉驗(yàn)證方法來(lái)選擇最優(yōu)的K值。3)專(zhuān)用性不強(qiáng),對(duì)特定的分類(lèi)任務(wù)沒(méi)有很好地優(yōu)化。
在KNN簡(jiǎn)單算法中,對(duì)于每一個(gè)待測(cè)樣本點(diǎn),都要逐一地計(jì)算其與對(duì)整個(gè)樣本集中的每一個(gè)點(diǎn)的距離,計(jì)算并存儲(chǔ)好以后,再查找K近鄰。KD樹(shù)是一種分割K維數(shù)據(jù)空間的數(shù)據(jù)結(jié)構(gòu),有助于減少存儲(chǔ)空間和計(jì)算量。即對(duì)樣本集進(jìn)行組織與整理,分群分層,盡可能將計(jì)算壓縮到在接近測(cè)試樣本鄰域的小范圍內(nèi),避免盲目地與訓(xùn)練樣本集中每個(gè)樣本進(jìn)行距離計(jì)算。
本文提出了一種基于屬性權(quán)重的KD樹(shù) KNN,將屬性對(duì)距離的影響根據(jù)任務(wù)的類(lèi)型分配權(quán)重,比如測(cè)試數(shù)據(jù)在和類(lèi)型不同的訓(xùn)練數(shù)據(jù)進(jìn)行比較,距離公式則成為加權(quán)歐拉公式。1/sk為每一個(gè)屬性的權(quán)重。
因?yàn)樵破脚_(tái)的任務(wù)類(lèi)型固定,所以本文采用按任務(wù)類(lèi)型建立不同權(quán)重KNN分類(lèi)器,并且采用交叉驗(yàn)證尋找每個(gè)分類(lèi)器權(quán)重大小,避免了KNN簡(jiǎn)單算法中的K值選擇問(wèn)題,選擇出最優(yōu)K值,并根據(jù)分類(lèi)器的數(shù)量N決定分類(lèi)器K值大小。然后將每個(gè)分類(lèi)器選出的數(shù)據(jù)輸入到距離排序器中,因?yàn)槊總€(gè)分類(lèi)器所使用的距離公式統(tǒng)一,所以將排序器從小到大順序排列,選取前K個(gè)數(shù)據(jù)進(jìn)行選舉,最終獲得未知任務(wù)的類(lèi)型。偽代碼如下:
預(yù)處理數(shù)據(jù),將類(lèi)型不同的數(shù)據(jù)分開(kāi)
調(diào)整每個(gè)類(lèi)型中每個(gè)屬性參數(shù)r[N][M]
FOR 0→N:
建立KD樹(shù)
根據(jù)屬性參數(shù)調(diào)整值
歸一化處理
將訓(xùn)練數(shù)據(jù)加入KD樹(shù)中
建成N個(gè)KD樹(shù)的分類(lèi)器
For 0→L組測(cè)試數(shù)據(jù):
For 0→N組分類(lèi)器:
根據(jù)屬性參數(shù)調(diào)整測(cè)試數(shù)據(jù)
歸一化處理測(cè)試數(shù)據(jù)
找出前B個(gè)最近距離列表D[B]
合并N個(gè)D[B]列表
篩選出前K個(gè)距離最小的值
根據(jù)前K個(gè)值進(jìn)行選舉,得到該測(cè)試數(shù)據(jù)的類(lèi)型根據(jù)L組數(shù)據(jù)類(lèi)型進(jìn)行選舉,得到該任務(wù)類(lèi)型
所有基于KNN的算法的分類(lèi)器,都不需要訓(xùn)練集進(jìn)行訓(xùn)練,所以訓(xùn)練的時(shí)間復(fù)雜度是0,假設(shè)該訓(xùn)練集數(shù)為n。
簡(jiǎn)單KNN算法 KNN分類(lèi)的計(jì)算復(fù)雜度和訓(xùn)練集中的文檔數(shù)目成正比,也就是說(shuō)簡(jiǎn)單KNN的分類(lèi)時(shí)間復(fù)雜度為O(n)。
KD樹(shù) KNN算法 采用了 KD樹(shù)的時(shí)間復(fù)雜度為O(lb n)。
多KD樹(shù) KNN算法 因?yàn)閷劃分為m類(lèi),所以該時(shí)間負(fù)載度應(yīng)該為O(lb n/m)。
本文實(shí)驗(yàn)采用的測(cè)試節(jié)點(diǎn)機(jī)器,硬件環(huán)境為4個(gè)雙核英特爾 CPU,主頻為1.8 GHz,16 GB 內(nèi)存,160 GB 硬盤(pán)。
本文分別采用Lbenchmark和Ganglia的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),并且分別使用該訓(xùn)練數(shù)據(jù)的80%作為測(cè)試數(shù)據(jù),對(duì)簡(jiǎn)單KNN算法、KD 樹(shù) KNN算法、加權(quán)衡的多KD樹(shù) KNN算法進(jìn)行比較,結(jié)果如圖4~5所示。
從圖4可以看出,多KD樹(shù)的權(quán)值可配置的KNN算法準(zhǔn)確度明顯高于KD 樹(shù) KNN算法。從圖5可以看出,簡(jiǎn)單KNN的時(shí)間負(fù)載極高,單線程下KD 樹(shù) KNN算法和多KD樹(shù)KNN算法的時(shí)間復(fù)雜度相近。多KD樹(shù)可以采用多線程機(jī)制加速,進(jìn)一步減少運(yùn)行時(shí)間。
圖4 不同算法的準(zhǔn)確度比較Fig.4 Accuracy comparison of different algorithms
圖5 不同算法的運(yùn)行時(shí)間比較Fig.5 Running time comparison of different algorithms
通過(guò)對(duì)比大部分云平臺(tái)上的輸入?yún)?shù),用戶(hù)主要的選擇參數(shù)向量如下:
其中:CV表示CPU類(lèi)型;CNV表示核數(shù);MV表示內(nèi)存類(lèi)型;MNV表示內(nèi)存大小;DV表示磁盤(pán)類(lèi)型;DNV表示磁盤(pán)大小;NV表示網(wǎng)絡(luò)帶寬;IOV表示是否進(jìn)行網(wǎng)絡(luò)優(yōu)化。
根據(jù)獲取的(F,M,U,D,S,N)六維采集向量和任務(wù)類(lèi)型綜合考慮,給出用戶(hù)選擇參數(shù)向量,所以本文提供了不同服務(wù)器到虛擬機(jī)的映射方法,如下所示。
#有關(guān)CPU的信息
查詢(xún)或計(jì)算該云計(jì)算平臺(tái)不同CPU數(shù)組L[n],計(jì)算能力升序數(shù)組 F[n]
WHLIE TRUE:
查找出云平臺(tái)上CPU核數(shù)np* 計(jì)算能力F[i]略小于F的值。退
出循環(huán)
Cv=L[i]
CNv=np
#有關(guān)內(nèi)存
MNv=M*U
#有關(guān)網(wǎng)絡(luò)
Nv=N
#有關(guān)磁盤(pán)
DNv=D
FOR PS in磁盤(pán)類(lèi)型列表:
查找出PS的IOPS略小于S的值。退出循環(huán)
Dv=PS
#有關(guān)任務(wù)
IF類(lèi)型為CPU密集型負(fù)載:
CPU類(lèi)型升級(jí)Cv=L[i+1]
ELIF類(lèi)型為內(nèi)存密集型負(fù)載:
內(nèi)存類(lèi)型升級(jí)Mv=K[1]
ELIF類(lèi)型為計(jì)算密集型負(fù)載:
內(nèi)存類(lèi)型升級(jí)Mv=K[1]
CPU類(lèi)型升級(jí)Cv=L[i+1]
ELIF類(lèi)型為網(wǎng)絡(luò)密集型負(fù)載:
IOv=TRUE
ELIF類(lèi)型為磁盤(pán)密集型負(fù)載:
磁盤(pán)類(lèi)型升級(jí)Dv=PS+1
ELIF類(lèi)型為全負(fù)載密集型負(fù)載:
磁盤(pán)類(lèi)型升級(jí)Dv=PS+1
IOv=TRUE
內(nèi)存類(lèi)型升級(jí)Mv=K[1]
CPU類(lèi)型升級(jí)Cv=L[i+1]
本文給出能體現(xiàn)任務(wù)的數(shù)據(jù)特征向量,并根據(jù)其硬件特征對(duì)任務(wù)進(jìn)行細(xì)粒度劃分。使用輕量級(jí)的采集工具Lbenchmark采集所需要硬件數(shù)據(jù)特征,采用簡(jiǎn)單的多KD樹(shù)KNN算法,對(duì)未知任務(wù)類(lèi)型進(jìn)行準(zhǔn)確分類(lèi)。與現(xiàn)有的KNN算法相比,本文提出可以主動(dòng)調(diào)整參數(shù)的方法來(lái)提高預(yù)測(cè)類(lèi)型的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表示Lbenchmark可以比較全方面地以較低的負(fù)載波動(dòng)獲取到任務(wù)的數(shù)據(jù)特征。使用該特征和屬性可調(diào)的多KD樹(shù)KNN算法進(jìn)行分類(lèi),準(zhǔn)確度得到了有效提高,計(jì)算量和存儲(chǔ)量相對(duì)減少。之后,利用數(shù)據(jù)特征映射將資源建議提供給用戶(hù)和云提供商,進(jìn)而提高云平臺(tái)整體的利用率。
在今后的研究中,將在該文的基礎(chǔ)之上對(duì)云平臺(tái)內(nèi)部調(diào)度進(jìn)行更加深入的研究。將任務(wù)信息和任務(wù)類(lèi)型與不同的調(diào)度算法結(jié)合,以達(dá)到全局能耗最低。