一種云計(jì)算平臺中計(jì)算資源能力動(dòng)態(tài)評估方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,涉及云計(jì)算平臺中的資源監(jiān)控及管理系統(tǒng),特別涉及計(jì) 算資源能力評估方法。
【背景技術(shù)】
[0002] 云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過這種方式,用戶可以按需獲取計(jì)算資 源、計(jì)算能力。云計(jì)算平臺的基礎(chǔ)設(shè)施一般由許多計(jì)算機(jī)節(jié)點(diǎn)通過高性能網(wǎng)絡(luò)互聯(lián)而成,其 將眾多節(jié)點(diǎn)組織成高性能、高可用、可擴(kuò)展的單一映像,提供給用戶使用。
[0003] 隨著云計(jì)算應(yīng)用的日益廣泛,用戶的需求也日益增長,云計(jì)算平臺會對其基礎(chǔ)設(shè) 施進(jìn)行更新?lián)Q代及規(guī)模擴(kuò)充,這造成平臺中的各個(gè)計(jì)算機(jī)節(jié)點(diǎn)的計(jì)算資源能力存在先天差 異。另外,負(fù)載在節(jié)點(diǎn)間的分布不同,也導(dǎo)致原本計(jì)算能力相同的節(jié)點(diǎn)在運(yùn)行時(shí)出現(xiàn)性能差 異。
[0004] 各種因素導(dǎo)致的節(jié)點(diǎn)計(jì)算資源能力的差異給云計(jì)算資源管理及作業(yè)調(diào)度帶來了 新的問題:
[0005] 首先,云計(jì)算平臺分配資源時(shí),無法精確衡量計(jì)算資源(CPU、內(nèi)存、磁盤帶寬、網(wǎng)絡(luò) 帶寬等)與負(fù)載資源需求的適配性,分配資源少于需求時(shí),共享計(jì)算資源的負(fù)載間發(fā)生競 爭,造成性能低下;分配資源多于需求時(shí),計(jì)算資源未被充分利用,存在資源浪費(fèi)。
[0006] 其次,云計(jì)算平臺負(fù)載均衡時(shí),無法準(zhǔn)確獲得各節(jié)點(diǎn)計(jì)算資源情況,負(fù)載分布的調(diào) 整、迀移均缺乏依據(jù),大大降低了負(fù)載均衡的有效性。
[0007] 最后,云計(jì)算平臺負(fù)載容錯(cuò)時(shí),為了避免單個(gè)任務(wù)拖慢整個(gè)作業(yè),需要挑選性能較 好的節(jié)點(diǎn)啟動(dòng)任務(wù)的冗余執(zhí)行,由于計(jì)算資源能力的持續(xù)變化的差異性,執(zhí)行冗余任務(wù)的 節(jié)點(diǎn)的選擇也缺乏依據(jù)。
[0008] 因此,如何對計(jì)算資源的能力進(jìn)行量化評估,并在管理、調(diào)度、負(fù)載均衡、容錯(cuò)時(shí)屏 蔽計(jì)算資源的差異性,成為了云計(jì)算平臺研究中的重要問題。對計(jì)算資源能力進(jìn)行動(dòng)態(tài)的 量化評估可以為資源管理、作業(yè)調(diào)度、負(fù)載均衡、任務(wù)容錯(cuò)等方面提供有力支持,從而提高 系統(tǒng)的吞吐率。
[0009] 亞馬遜公司的彈性云計(jì)算平臺EC2使用E⑶衡量CPU計(jì)算資源的性能,E⑶被定義為 一顆1.0-1 ? 2GHz 2007年生產(chǎn)的Opteron或者Xeon處理器的計(jì)算能力。ECU被用于申請和配 置計(jì)算資源,但是并不能動(dòng)態(tài)評價(jià)運(yùn)行中計(jì)算資源能力。
[0010] 開源云計(jì)算平臺YARN中使用虛擬核作為CPU資源的分配單位,但是物理CPU對應(yīng)的 虛擬核數(shù)目由管理員指定,因此也不能動(dòng)態(tài)評價(jià)運(yùn)行中計(jì)算資源能力。
【發(fā)明內(nèi)容】
[0011] 針對上述現(xiàn)有技術(shù)存在的缺陷和不足,本發(fā)明的目的在于提供一種云計(jì)算平臺中 計(jì)算資源能力動(dòng)態(tài)評估方法。
[0012] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:
[0013] 本發(fā)明依據(jù)云計(jì)算負(fù)載含有多個(gè)執(zhí)行邏輯相同或相似的任務(wù)的特性,通過分析執(zhí) 行邏輯相同或相似的任務(wù)在不同節(jié)點(diǎn)計(jì)算資源上執(zhí)行的信息和節(jié)點(diǎn)運(yùn)行時(shí)信息,對節(jié)點(diǎn)計(jì) 算資源的能力進(jìn)行運(yùn)行時(shí)動(dòng)態(tài)評估,得到節(jié)點(diǎn)計(jì)算資源能力的動(dòng)態(tài)評估值。
[0014] 所述計(jì)算資源為CPU資源、內(nèi)存資源或磁盤帶寬資源。
[0015]對CPU資源能力的動(dòng)態(tài)評估按照CPU型號分別進(jìn)行,CPU資源能力的評估因素包括 CPU空閑時(shí)間百分比、IPC、10等待時(shí)間百分比、節(jié)點(diǎn)平均負(fù)載、cache失效率和上下文切換次 數(shù),CPU資源能力的動(dòng)態(tài)評估值與CPU空閑時(shí)間百分比、IPC成正比,而與10等待時(shí)間百分比、 節(jié)點(diǎn)平均負(fù)載、cache失效率、上下文切換次數(shù)成反比。
[0016] CPU資源能力的動(dòng)態(tài)評估值按以下公式計(jì)算:
[0018] 其中,AvailableCapacitycpu為某節(jié)點(diǎn)CPU資源能力的動(dòng)態(tài)評估值,idle為空閑CPU 時(shí)間百分比,load為節(jié)點(diǎn)的平均負(fù)載,iowait為節(jié)點(diǎn)上10等待時(shí)間占 CPU時(shí)間的百分比,ipc 為任務(wù)平均每個(gè)時(shí)鐘周期完成的指令數(shù)(IPC),miss為任務(wù)的cache失效率,switch為任務(wù) 執(zhí)行時(shí)上下文切換次數(shù),TASK表示所述某節(jié)點(diǎn)上執(zhí)行的任務(wù)集合,MSTO表示取云計(jì)算負(fù)載 中所有與TASK中第task個(gè)任務(wù)具有相同或相似執(zhí)行邏輯的當(dāng)前執(zhí)行任務(wù)對應(yīng)評估因素的 中位數(shù),size()表示取集合元素個(gè)數(shù)。
[0019] 內(nèi)存資源能力的評估因素包括可用內(nèi)存空間大小和任務(wù)內(nèi)存缺頁頻率,內(nèi)存資源 能力的動(dòng)態(tài)評估值與可用內(nèi)存空間大小成正比,而與任務(wù)內(nèi)存缺頁頻率成反比。
[0020] 內(nèi)存資源能力的動(dòng)態(tài)評估值按以下公式計(jì)算:
[0022] 其中,六¥3;1131316〇3口3(3;^5^111。;^表示某節(jié)點(diǎn)內(nèi)存資源能力的動(dòng)態(tài)評估值,1:(^31表 示節(jié)點(diǎn)總物理內(nèi)存大小,used表示節(jié)點(diǎn)被占用的物理內(nèi)存大小,cached表示cache緩存占用 的內(nèi)存大小,buffer表示buffer緩存占用的內(nèi)存大小,pagefault表示任務(wù)發(fā)生的缺頁頻 率,TASK表示所述某節(jié)點(diǎn)上執(zhí)行的任務(wù)集合,MST()表示取云計(jì)算負(fù)載中所有與TASK中第 task個(gè)任務(wù)具有相同或相似執(zhí)行邏輯的當(dāng)前執(zhí)行任務(wù)對應(yīng)評估因素的中位數(shù),sizeO表示 取集合元素個(gè)數(shù)。
[0023]磁盤帶寬資源能力的評估因素包括節(jié)點(diǎn)磁盤未使用TPS、磁盤未利用的傳輸帶寬、 磁盤的傳輸請求平均等待時(shí)間、請求隊(duì)列平均長度和傳輸請求的平均執(zhí)行時(shí)間,磁盤帶寬 資源能力的動(dòng)態(tài)評估值與節(jié)點(diǎn)磁盤未使用TPS、磁盤未利用的傳輸帶寬成正比,而與磁盤的 傳輸請求平均等待時(shí)間、請求隊(duì)列平均長度、傳輸請求的平均執(zhí)行時(shí)間成反比。
[0024]磁盤帶寬資源能力的動(dòng)態(tài)評估值按以下公式計(jì)算:
[0026] 其中,4¥3;[13131603口30;^731;。1^6表示某節(jié)點(diǎn)磁盤帶寬資源能力的動(dòng)態(tài)評估值, peak表示測出的磁盤傳輸能力峰值,current表示當(dāng)前磁盤傳輸速度,avgqu表示磁盤10請 求的平均隊(duì)列長度,await表示磁盤10請求的平均處理時(shí)間,svctm表示磁盤10請求的平均 執(zhí)行時(shí)間,peakTPS表示磁盤每秒鐘傳輸次數(shù)峰值,currentTPS表示磁盤平均每秒鐘的傳輸 次數(shù),MN()表示取所有當(dāng)前運(yùn)行任務(wù)節(jié)點(diǎn)對應(yīng)評估因素的中位數(shù)。
[0027]所述評估方法還包括以下步驟:
[0028]取得所有當(dāng)前運(yùn)行任務(wù)節(jié)點(diǎn)計(jì)算資源能力的動(dòng)態(tài)評估值的中位數(shù),并按以下公式 進(jìn)行處理:
[0030]其中,Capacityr,i為節(jié)點(diǎn)i上資源r能力的歸一化評估值,Cr,i為節(jié)點(diǎn)i上資源r能力 的動(dòng)態(tài)評估值,M(r)為所有當(dāng)前運(yùn)行任務(wù)節(jié)點(diǎn)資源r能力的動(dòng)態(tài)評估值的中位數(shù),i = 1,2, 3…,L,L為所有當(dāng)前運(yùn)行任務(wù)節(jié)點(diǎn)數(shù)目,資源r為CPU資源、內(nèi)存資源或磁盤帶寬資源。
[0031] 將需要取中位數(shù)的計(jì)算資源的評估因素以及計(jì)算資源能力的動(dòng)態(tài)評估值作為元 素分別構(gòu)建中位堆,中位堆由一個(gè)大頂堆和一個(gè)小頂堆組成,大頂堆中堆頂元素大于等于 大頂堆中所有元素,而小頂堆中堆頂元素小于等于小頂堆中所有元素,并且滿足:
[0032] heap_size(min_heap)<heap_size(max_heap)<heap_size(min_heap)+l
[0033] root(max_heap)< root(min_heap)
[0034] 其中,min_heap表示小頂堆,max_heap表示大頂堆,heap_size()表示取大頂堆或 小頂堆的元素個(gè)數(shù),r 〇〇t()表示取得堆頂元素。
[0035]本發(fā)明的有益效果體現(xiàn)在:
[0036]本發(fā)明提出了一種可以對云計(jì)算平臺中各節(jié)點(diǎn)計(jì)算資源能力進(jìn)行量化的動(dòng)態(tài)評 估方法,該方法依據(jù)云計(jì)算負(fù)載大多為大規(guī)模并行而設(shè)計(jì),并且通常含有多個(gè)執(zhí)行邏輯相 同或相似任務(wù)的特性,通過分析任務(wù)在不同計(jì)算資源上執(zhí)行的信息對計(jì)算資源的能力進(jìn)行 運(yùn)行時(shí)動(dòng)態(tài)評估。本發(fā)明所述方法可以在任務(wù)執(zhí)行過程中實(shí)時(shí)進(jìn)行,實(shí)施靈活方便且代價(jià) 小。同時(shí),本發(fā)明所述方法評估出的結(jié)果可為細(xì)粒度、精確地計(jì)算資源管理、用戶作業(yè)調(diào)度、 平臺負(fù)載均衡、任務(wù)冗余容錯(cuò),以及異常節(jié)點(diǎn)發(fā)現(xiàn)等方面提供數(shù)值依據(jù),從而提高計(jì)算資源 利用率,最終提升云計(jì)算平臺的整體吞吐率。
【附圖說明】
[0037]圖1為云計(jì)算平臺中計(jì)算資源能力評估方法的流程框圖。
[0038]圖2為中位堆中插入元素的邏輯圖。
[0039] 圖3為中位堆的修改元素的邏輯圖。
【具體實(shí)施方式】
[0040] 下面結(jié)合附圖和實(shí)施例對本發(fā)明做詳細(xì)說明。
[0041] 參見圖1,本發(fā)明依據(jù)云計(jì)算中負(fù)載大多為大規(guī)模并行而設(shè)計(jì),通常包含多個(gè)執(zhí)行 邏輯相同或相似的任務(wù)的特性,通過分析多個(gè)執(zhí)行邏輯相同或相似的任務(wù)在不同計(jì)算資源 上執(zhí)行的信息以及節(jié)點(diǎn)運(yùn)行時(shí)信息對CPU、內(nèi)存、磁盤帶寬、網(wǎng)絡(luò)帶寬等計(jì)算資源的能力進(jìn) 行動(dòng)態(tài)評估。該方法能夠在云計(jì)算平臺中對計(jì)算資源的能力進(jìn)行動(dòng)態(tài)量化評估,從而為資 源管理、作業(yè)調(diào)度、冗余容錯(cuò)等模塊提供有力的數(shù)值依據(jù),進(jìn)一步的提高資源使用效率。
[0042] 步驟1:云計(jì)算平臺向節(jié)點(diǎn)分配任務(wù),節(jié)點(diǎn)執(zhí)行任務(wù)的同時(shí)監(jiān)控任務(wù)及節(jié)點(diǎn)的信 息,并將收集到的信息匯報(bào)給云計(jì)算平臺。
[0043]監(jiān)控的節(jié)點(diǎn)信息包括:節(jié)點(diǎn)的平均負(fù)載、空閑CPU時(shí)間百分比、10等待時(shí)間占 CPU時(shí) 間百分比、當(dāng)前可用物理內(nèi)存大小、buf f er緩存占用的內(nèi)存大小、cache緩存占用的內(nèi)存大 小、當(dāng)前磁盤傳輸速度、磁盤平均每秒鐘的傳輸次數(shù)、10請求的平均處理時(shí)間、10請求的平 均隊(duì)列長度、10請求的平均執(zhí)行時(shí)間、當(dāng)前網(wǎng)絡(luò)傳輸速度、磁盤傳輸能力峰值、測試得出的 磁盤每秒鐘傳輸次數(shù)峰值等。
[0044] 監(jiān)控的任務(wù)執(zhí)行信息包括:CPU資