【技術(shù)領(lǐng)域】
本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,尤其是涉及一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法。
背景技術(shù):
公知的,最新的成本分析表明服務(wù)器成本在云服務(wù)中心總成本中占據(jù)支配地位,提高服務(wù)器資源利用率、最大化服務(wù)效用的資源分配已成為云服務(wù)提供者降低運(yùn)營成本、獲取最大利潤的關(guān)鍵,針對(duì)云服務(wù)中心提供多種云服務(wù)時(shí),不同類型云服務(wù)請(qǐng)求的到達(dá)速率可能不同、不同用戶對(duì)服務(wù)質(zhì)量要求可能不同,提出云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,給出和云服務(wù)質(zhì)量高低相關(guān)的服務(wù)損失函數(shù)和服務(wù)收益函數(shù),促使云資源在執(zhí)行不同云服務(wù)的子服務(wù)中心之間進(jìn)行動(dòng)態(tài)資源分配,最后,以最大化整個(gè)服務(wù)中心的服務(wù)效用為目標(biāo),給出基于整數(shù)編碼的最優(yōu)分配方案求解的單親遺傳算法sopga,模擬實(shí)驗(yàn)表明所提虛擬機(jī)分配算法能夠有效提高云服務(wù)中心的服務(wù)效用,對(duì)提高資源利用率和服務(wù)質(zhì)量都具有實(shí)際意義。
云計(jì)算已成為計(jì)算資源和計(jì)算服務(wù)整合的有效方式,云計(jì)算能夠提供最具成本效益的計(jì)算資源和計(jì)算服務(wù),云計(jì)算通過使用按次計(jì)費(fèi),把信息技術(shù)轉(zhuǎn)變成普通商品,然而,云計(jì)算資源并不是免費(fèi)的,云服務(wù)提供者采取恰當(dāng)?shù)馁Y源供應(yīng)策略至關(guān)重要,云計(jì)算服務(wù)環(huán)境可看做是由三層組成:底層是虛擬機(jī)供應(yīng)商;中間層是云服務(wù)提供商;最上層云服務(wù)消費(fèi)者,虛擬機(jī)供應(yīng)商擁有大量可供租用的虛擬機(jī),服務(wù)提供商從虛擬機(jī)供應(yīng)商那里租用一些虛擬機(jī),建立多虛擬機(jī)服務(wù)系統(tǒng),向云服務(wù)消費(fèi)者提供某種云服務(wù)。
一個(gè)云服務(wù)消費(fèi)者向服務(wù)提供商提交服務(wù)請(qǐng)求,從服務(wù)提供商收到期望的處理結(jié)果后,按服務(wù)質(zhì)量協(xié)定向服務(wù)提供商支付一定的費(fèi)用,實(shí)際上,一個(gè)服務(wù)提供商通常構(gòu)建多個(gè)虛擬機(jī)系統(tǒng),同時(shí)提供多種服務(wù)。
在云環(huán)境下,服務(wù)請(qǐng)求用戶對(duì)申請(qǐng)使用的資源的關(guān)注主要包括資源的可用性、響應(yīng)時(shí)間、排隊(duì)長度以及可靠性等,在云系統(tǒng)中,用戶與服務(wù)提供者的服務(wù)交易通常是按服務(wù)級(jí)協(xié)定(servicelevelagreement,sla)的約定進(jìn)行的,服務(wù)級(jí)協(xié)定約定了服務(wù)提供者和使用者的義務(wù),以及對(duì)服務(wù)質(zhì)量(qos)性能指標(biāo)的要求,qos的性能指標(biāo)主要包括響應(yīng)時(shí)間、任務(wù)等待服務(wù)的概率、系統(tǒng)中的平均任務(wù)數(shù)等,服務(wù)提供者和使用者之間任何一方違反了sla契約,都需要根據(jù)相應(yīng)的服務(wù)條款作出賠償,因此,對(duì)云服務(wù)提供者來說,一種合理高效的資源分配策略應(yīng)能節(jié)省運(yùn)營成本同時(shí)滿足sla的約定。
然而,要想獲得最大的服務(wù)效用,云服務(wù)提供者就必須合理解決資源供應(yīng)不足和資源供應(yīng)過量的問題,資源供應(yīng)不足雖然能維持較高的資源利用率、節(jié)省資源供應(yīng)成本,但這可能使系統(tǒng)在峰值負(fù)載下服務(wù)性能低下,導(dǎo)致用戶任務(wù)等待時(shí)間過長,下次不再選用該云服務(wù),可能會(huì)影響到其朋友將來是否選取該云服務(wù),甚至用戶立即放棄使用該云服務(wù),這將給云服務(wù)效用帶來損失,相反,過量的資源供應(yīng)雖能滿足峰值負(fù)載的服務(wù)質(zhì)量要求,能給用戶提供滿意的服務(wù),進(jìn)而吸引更多用戶使用該云服務(wù),從而進(jìn)一步增加云服務(wù)的效用,但這會(huì)引起服務(wù)成本的增加,在負(fù)載較小時(shí)帶來資源浪費(fèi),因此,如何恰當(dāng)?shù)剡M(jìn)行資源供應(yīng)以獲取最大的服務(wù)效用是云服務(wù)系統(tǒng)發(fā)展中最富挑戰(zhàn)的問題之一。
隨著云計(jì)算的到來,特別是基礎(chǔ)設(shè)施即服務(wù)商業(yè)模型的到來,虛擬機(jī)分配引起許多研究團(tuán)體的格外關(guān)注,虛擬機(jī)的分配,尤其向負(fù)載動(dòng)態(tài)變化的服務(wù)中心分配虛擬機(jī),已成為在這些基礎(chǔ)設(shè)施中的關(guān)鍵操作,雖然虛擬機(jī)監(jiān)控器提供了一些機(jī)制幫客戶和服務(wù)提供者決定如何資源共享、如何平衡資源分配,但在實(shí)際操作過程中并不容易。
近幾年,開展了很多提高云服務(wù)中心服務(wù)效用的虛擬機(jī)分配機(jī)制的研究,cao等研究了云環(huán)境下利潤最大化的最優(yōu)服務(wù)器數(shù)量配置問題,其將多服務(wù)器系統(tǒng)看作m/m/m排隊(duì)模型,提出的利潤最大化的云服務(wù)定價(jià)模型考慮了服務(wù)質(zhì)量、服務(wù)級(jí)協(xié)定、低服務(wù)質(zhì)量懲罰、租用成本等因素。feng等基于sla,提出最大化服務(wù)提供者服務(wù)收益的動(dòng)態(tài)資源分配策略,其用排隊(duì)論形式化地描述資源分配問題。josé等提出距離相關(guān)的非線性效用遞減的虛擬機(jī)調(diào)度策略。許力等將云計(jì)算中的虛擬資源分配問題建模為多目標(biāo)優(yōu)化模型,針對(duì)不同特征的虛擬主機(jī)和服務(wù)器需求生成虛擬資源分配方案。文雨等提出一種面向應(yīng)用服務(wù)級(jí)目標(biāo)的虛擬化資源管理方法,通過動(dòng)態(tài)調(diào)整虛擬機(jī)資源分配來實(shí)現(xiàn)每個(gè)應(yīng)用的服務(wù)目標(biāo),通過仲裁不同應(yīng)用的資源分配請(qǐng)求來控制虛擬機(jī)在非虛擬化資源上的競爭干擾。師雪霖等提出了云效用最大化(cloudutilitymaximization,cum)資源分配模型,以達(dá)到效用最大為調(diào)度目標(biāo),通過求解cum優(yōu)化問題得到最優(yōu)的虛擬機(jī)和物理機(jī)映射關(guān)系。唐卓等針對(duì)用戶任務(wù)到達(dá)時(shí)間和任務(wù)類型的隨機(jī)性,基于線性規(guī)劃理論提出了云環(huán)境中面向用戶效用的任務(wù)調(diào)度優(yōu)化模型。
上述文獻(xiàn)從不同方面研究了提高云服務(wù)效用的方法,但這些文獻(xiàn)都沒有考慮服務(wù)質(zhì)量的高低如何影響云服務(wù)中心的服務(wù)效用、服務(wù)效用與服務(wù)完成質(zhì)量之間的關(guān)系如何、以及云服務(wù)中心服務(wù)效用最大化的最優(yōu)虛擬機(jī)數(shù)量如何求解,基于這些問題,本文分析了任務(wù)在云系統(tǒng)中逗留單位時(shí)間致使云系統(tǒng)遭受的服務(wù)損失,分析了服務(wù)中心對(duì)任務(wù)的響應(yīng)時(shí)間的長短如何影響服務(wù)效用,并給出了云服務(wù)中心服務(wù)效用最大化所需處理機(jī)數(shù)量的計(jì)算方法。
技術(shù)實(shí)現(xiàn)要素:
為了克服背景技術(shù)中的不足,本發(fā)明公開了一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,本發(fā)明做出了任務(wù)在云系統(tǒng)中逗留單位時(shí)間致使云系統(tǒng)遭受的服務(wù)損失,以及服務(wù)中心對(duì)任務(wù)的響應(yīng)時(shí)間的長短對(duì)服務(wù)效用的影響,并給出了云服務(wù)中心服務(wù)效用最大化所需處理機(jī)數(shù)量的計(jì)算方法。
為了實(shí)現(xiàn)所述發(fā)明目的,本發(fā)明采用如下技術(shù)方案:
一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,包括云服務(wù)中心、隨機(jī)任務(wù)模型、云服務(wù)中心模型和云資源分配模型,云服務(wù)中心由隨機(jī)任務(wù)模型、云服務(wù)中心模型和云資源分配模型構(gòu)成,隨機(jī)任務(wù)模型向云服務(wù)中心發(fā)送服務(wù)請(qǐng)求,云服務(wù)中心根據(jù)隨機(jī)任務(wù)模型發(fā)送的請(qǐng)求由云資源分配模型為隨機(jī)任務(wù)模型進(jìn)行服務(wù)。
所述隨機(jī)任務(wù)模型用一個(gè)三元組(t,λ,c)來表示,其中,t={ti|1≤i≤m}表示任務(wù)類型集合,ti表示第i類任務(wù),m表示任務(wù)類型的數(shù)目;λ={λi|1≤i≤m}表示任務(wù)的平均達(dá)到率集合,λi表示ti類任務(wù)單位時(shí)間內(nèi)的平均到達(dá)數(shù)量;c={ci|1≤i≤m}表示不同類型任務(wù)期望響應(yīng)時(shí)間的集合,ci表示ti類型任務(wù)的期望響應(yīng)時(shí)間,因此,第i類計(jì)算任務(wù)可表示為(ti,λi,ci),其中,ti∈t,λi∈λ,ci∈c。對(duì)于到達(dá)云系統(tǒng)的隨機(jī)任務(wù),其隨機(jī)分布和平均到達(dá)率可通過分析云系統(tǒng)的監(jiān)測數(shù)據(jù)得到。
所述云服務(wù)中心模型用三元組(p,s,e)表示,其中,p={pi|1≤i≤m}表示云服務(wù)中心中虛擬機(jī)組的集合,m表示虛擬機(jī)組的個(gè)數(shù),一個(gè)虛擬機(jī)組相當(dāng)于一個(gè)子服務(wù)中心;pi={vmij|1≤j≤ni}表示執(zhí)行第i類型任務(wù)的虛擬機(jī)的集合,ni表示執(zhí)行第i類型任務(wù)的虛擬機(jī)的個(gè)數(shù);s={μi|1≤i≤m}表示表示虛擬機(jī)平均服務(wù)率集合,其中,μi表示執(zhí)行第i類型任務(wù)的虛擬機(jī)的服務(wù)速率,一個(gè)組內(nèi)的虛擬機(jī)具有相同的服務(wù)速率;e={ei|1≤i≤m}表示云計(jì)算系統(tǒng)中虛擬機(jī)單位時(shí)間租用價(jià)格的集合,其中ei表示執(zhí)行第i類型任務(wù)的虛擬機(jī)的單位時(shí)間租用價(jià)格。
所述云資源分配模型為云服務(wù)中心根據(jù)用戶的任務(wù)處理需求,通過向iaas提供商、paas提供商租借自己所需的虛擬機(jī)來組建saas,向云用戶提供任務(wù)處理服務(wù),由于不同云資源提供商提供的資源類型、價(jià)格和性能等各不相同,因而云計(jì)算服務(wù)中心可根據(jù)任務(wù)的到達(dá)情況租用適當(dāng)數(shù)目的虛擬機(jī)機(jī)來處理用戶的任務(wù),以最大化自己的服務(wù)效用,向云服務(wù)中心請(qǐng)求服務(wù)的服務(wù)請(qǐng)求都能被安排到一個(gè)合適的虛擬機(jī)上進(jìn)行處理,直到服務(wù)請(qǐng)求處理完才離開云系統(tǒng),不同類型的服務(wù)請(qǐng)求被安排到不同的云服務(wù)中心的子服務(wù)中心的虛擬機(jī)上進(jìn)行處理,云服務(wù)中心的任務(wù)處理過程可描述為:不同類型的任務(wù)以不同的速率到達(dá)云計(jì)算服務(wù)中心隊(duì)列,全局任務(wù)調(diào)度器根據(jù)任務(wù)類型的不同,將任務(wù)調(diào)度到相應(yīng)類型的云服務(wù)中心的子服務(wù)中心任務(wù)隊(duì)列,然后由云服務(wù)中心的子服務(wù)中心任務(wù)調(diào)度器將任務(wù)調(diào)度相應(yīng)的虛擬機(jī)上進(jìn)行處理,每個(gè)任務(wù)到達(dá)云服務(wù)中心的子服務(wù)中心任務(wù)隊(duì)列的間隔相互獨(dú)立,且服從同一參數(shù)的負(fù)指數(shù)分布;虛擬機(jī)處理任務(wù)的服務(wù)時(shí)間相互獨(dú)立,且服從同一參數(shù)的負(fù)指數(shù)分布;任務(wù)到達(dá)的間隔時(shí)間與虛擬機(jī)服務(wù)的時(shí)間相互獨(dú)立,每種類型任務(wù)的處理過程,相當(dāng)于一個(gè)m/m/n型排隊(duì)模型。
所述用戶提交到服務(wù)中心任務(wù)隊(duì)列的不同類型的任務(wù)由全局調(diào)度器分別分派到相應(yīng)任務(wù)類型的子服務(wù)中心任務(wù)隊(duì)列中,然后由子任務(wù)調(diào)度器將任務(wù)調(diào)度虛擬機(jī)上進(jìn)行處理,不同類型任務(wù)ti的執(zhí)行過程可看作是m/m/n排隊(duì)系統(tǒng),即相當(dāng)于一個(gè)多服務(wù)窗排隊(duì)模型,對(duì)ti類型任務(wù),設(shè)執(zhí)行該類型任務(wù)的虛擬機(jī)有ni個(gè),各虛擬機(jī)的服務(wù)能力相同,每個(gè)虛擬機(jī)每次只處理一個(gè)任務(wù),虛擬機(jī)對(duì)ti類型任務(wù)的服務(wù)時(shí)間服從參數(shù)為μi的負(fù)指數(shù)分布;ti類型任務(wù)的到達(dá)率為λi,每個(gè)任務(wù)所需服務(wù)時(shí)間獨(dú)立;服務(wù)ti類型任務(wù)的整個(gè)服務(wù)系統(tǒng)的平均服務(wù)率應(yīng)為niμi,服務(wù)強(qiáng)度為
由k氏代數(shù)方程,可求出得出服務(wù)ti類型任務(wù)的子服務(wù)中心中有k個(gè)任務(wù)的概率:
服務(wù)ti類型任務(wù)的子服務(wù)中心中排隊(duì)等待服務(wù)的平均任務(wù)數(shù)
服務(wù)ti類型任務(wù)的子服務(wù)中心中任務(wù)數(shù)的均值
服務(wù)ti類型任務(wù)的子服務(wù)中心中任務(wù)的平均排隊(duì)時(shí)間
服務(wù)ti類型任務(wù)的子服務(wù)中心對(duì)任務(wù)的平均響應(yīng)時(shí)間
所述云服務(wù)中心還包括服務(wù)損失,服務(wù)損失通過問卷調(diào)查的方式得到可能減少的用戶數(shù),從而算出等候時(shí)間與損失的關(guān)系,云服務(wù)損失的計(jì)算如下:對(duì)ti類型任務(wù),記ei為處理機(jī)pi的單位時(shí)間租用價(jià)格,ti類型任務(wù)在云服務(wù)中心中逗留單位時(shí)間致使云服務(wù)中心遭受的服務(wù)損失sli定義為:
所述云服務(wù)中心還包括服務(wù)收益,云服務(wù)中心完成每個(gè)任務(wù)所獲得的服務(wù)收益sri與完成任務(wù)的響應(yīng)時(shí)間有關(guān),響應(yīng)時(shí)間越小,收益值越大,云服務(wù)中心完成ti類型任務(wù)所獲得的服務(wù)收益sri定義為:
其中bi是一個(gè)表示任務(wù)價(jià)值大小的常數(shù),任務(wù)的價(jià)值越大,bi值越大,wi為ti類型任務(wù)所能容忍的最大響應(yīng)時(shí)間,
所述云服務(wù)中心還包括服務(wù)效用,服務(wù)效用為云服務(wù)中心用ni個(gè)虛擬機(jī)處理到達(dá)率為λi的ti類型任務(wù),單位時(shí)間所獲得的服務(wù)效用f(λi,ni,μi)定義為:
其中,ni是離散的,且λi/(niμi)<1,
由上式即可求出最優(yōu)的
所述服務(wù)效用最大化的計(jì)算為:對(duì)ti類型任務(wù),假設(shè)用戶所能容忍的最長平均等待時(shí)間為
式子一:
假定云服務(wù)中心總的虛擬機(jī)個(gè)數(shù)為n,將這些虛擬機(jī)分配給m類型的任務(wù),使整個(gè)云服務(wù)中心的服務(wù)效用
式子二:
從上式可以看出為了最大化整個(gè)云服務(wù)中心的服務(wù)效用,需要將n個(gè)虛擬機(jī)在m類型任務(wù)之間做出恰當(dāng)?shù)膭澐?,即通過動(dòng)態(tài)調(diào)整租用的虛擬機(jī)數(shù)量、最大化云服務(wù)中心服務(wù)效用的實(shí)質(zhì)是:實(shí)時(shí)監(jiān)測不同類型任務(wù)的到達(dá)速率和服務(wù)質(zhì)量要求,按服務(wù)效用最大化在子云服務(wù)中心之間增加或減少租用的虛擬機(jī)數(shù);若在不同子云服務(wù)中心之間經(jīng)過虛擬機(jī)數(shù)量的調(diào)整分配仍舊不能滿足個(gè)別類型任務(wù)的服務(wù)質(zhì)量要求時(shí),按效用最大化租用新的虛擬機(jī)分配給這些子云服務(wù)中心,也就是說服務(wù)中心要不斷監(jiān)測不同類型任務(wù)的到達(dá)速率,為不同子云服務(wù)中心配置恰當(dāng)數(shù)目的虛擬機(jī),從而最大化整個(gè)云服務(wù)中心的服務(wù)效用;滿足式子二的各子服務(wù)中心最優(yōu)ni的求解是np問題,通過啟發(fā)式算法來求解為每個(gè)子服務(wù)中心分配的虛擬機(jī)數(shù)ni,求解各子服務(wù)中心最優(yōu)虛擬機(jī)數(shù)ni的問題表示為:對(duì)于給定的各類型任務(wù)的到達(dá)率λi(從過去時(shí)間窗的到達(dá)率數(shù)據(jù)預(yù)測得到),各類型任務(wù)的服務(wù)損失sli、服務(wù)收益sri,裁決各子服務(wù)中心應(yīng)分配虛擬機(jī)數(shù)量的分配向量n1,n2,…,nm使得各子服務(wù)中心服務(wù)效用f(λi,ni,μi)總的服務(wù)效用f(λ,m,n)最大,對(duì)每種分配方案計(jì)算總的服務(wù)效用f(λ,m,n),從中選出有最大服務(wù)效用的虛擬機(jī)分配方案,n個(gè)虛擬機(jī)分配到m個(gè)服務(wù)中心的不同分配方案數(shù)s等于整數(shù)n的有序m分拆的個(gè)數(shù)
第一步,分配方案的染色體編碼,由于每個(gè)子服務(wù)中心虛擬機(jī)數(shù)的取值只有s個(gè),即ni∈{xi(ki)|ki=1,2,…,s}。因此,可在xi(ki)與整數(shù)ki∈{1,2,…,s}之間建立一一對(duì)應(yīng)關(guān)系:
式子三:
ni=xi(ki),i=1,2,…,m
將分配給m個(gè)服務(wù)中心sc1,sc2,..,scm虛擬機(jī)數(shù)的一組取值作為分配方案的染色體編碼,通過這樣的編碼,問題的解空間共有sm個(gè)編碼串;
第二步,父代群體的初始化,構(gòu)造初始父代群體時(shí),初始父代個(gè)體應(yīng)盡可能均勻分布于解空間,以保證遺傳算法的搜索效率,且每個(gè)父代個(gè)體應(yīng)滿足式x1(k1)+x2(k2)+…+xm(km)≤n的總量約束條件,設(shè)群體規(guī)模為w,采用隨機(jī)方法產(chǎn)生初始父代群體{y(i,j)|i=1,2,…,w;j=1,2,…,m},其中,i為父代個(gè)體標(biāo)號(hào),j為服務(wù)中心標(biāo)號(hào),首先在[0,1]區(qū)間上生成m個(gè)均勻隨機(jī)數(shù){u(i,j)|j=1,2,…,m},令y(i,j)=int[u(i,j)×s+1],若不能滿足總量約束條件,則重新生成隨機(jī)數(shù),直到條件滿足為止,這樣就得到第i個(gè)父代個(gè)體,同理可得其它w-1個(gè)初始父代個(gè)體,int[]為取整函數(shù);
第三步,父代群體的適應(yīng)度評(píng)價(jià),把父代個(gè)體代入式子三得到每個(gè)服務(wù)中心分配的虛擬機(jī)數(shù),再由f(λ,m,n)得到該分配方案對(duì)應(yīng)的服務(wù)效用值f(i),并將其作為適應(yīng)度函數(shù)值,即服務(wù)效用f(i)值越大,表示該個(gè)體的適應(yīng)度值越高,i=1,2,…,w;
第四步,換位變異,正比于父代個(gè)體的服務(wù)效用值,選取一個(gè)父代個(gè)體進(jìn)行換位變異。所謂換位變異就是在父代個(gè)體的1~m基因位上隨機(jī)選取不同的兩個(gè)基因位,并交換這兩個(gè)基因位的值,這樣可得到第1個(gè)子代群體{c1(i,j)|i=1,2,…,w;j=1,2,…,m}。換位變異的物理意義是交換任意兩服務(wù)中心的虛擬機(jī)數(shù)量;
第五步,隨機(jī)變異,對(duì)任意父代個(gè)體,若它的適應(yīng)度函數(shù)值f(i)較小,則選擇概率sp越小,則對(duì)該個(gè)體進(jìn)行變異的概率mp應(yīng)越大。隨機(jī)變異操作就是用第(2)步隨機(jī)生成個(gè)體的方法產(chǎn)生一個(gè)新個(gè)體,并以pm=1-sp的概率代替父代個(gè)體,從而得到第2個(gè)子代群體{c2(i,j)|i=1,2,…,w;j=1,2,…,m}。隨機(jī)變異的物理意義是隨機(jī)產(chǎn)生一個(gè)虛擬機(jī)分配方案,并以某概率替換一個(gè)舊的虛擬機(jī)分配方案;
第六步,倒位變異,在父代個(gè)體c(i,j)的1~m基因位上隨機(jī)選取不同的兩個(gè)基因位g1和g2,設(shè)g1<g2,然后對(duì)g1~g2基因位上的值反序排列,得到第3個(gè)子代群體{c3(i,j)|i=1,2,…,w;j=1,2,…,m};
第七步,演化,將由第四步到第六步得到的三個(gè)子代群體,按其適應(yīng)度函數(shù)值從大到小進(jìn)行統(tǒng)一排序,取適應(yīng)度函數(shù)值最大的m個(gè)子代個(gè)體作為新的父代群體,轉(zhuǎn)入第三步,進(jìn)入下一輪次的演化過程,如此反復(fù)演化,直至最優(yōu)個(gè)體對(duì)應(yīng)的服務(wù)效用值大于某一設(shè)定值或算法運(yùn)行達(dá)到預(yù)定演化代數(shù),結(jié)束整個(gè)算法的運(yùn)行,并把當(dāng)前群體中最優(yōu)個(gè)體所對(duì)應(yīng)的虛擬機(jī)分配方案作為sopga的結(jié)果。
由于采用了上述技術(shù)方案,本發(fā)明具有如下有益效果:
本發(fā)明所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,包括,通過的目的;本發(fā)明實(shí)用性強(qiáng),使用都非常的方便,針對(duì)云服務(wù)中心提供多種云服務(wù)時(shí),不同云服務(wù)請(qǐng)求強(qiáng)度的不同、用戶服務(wù)質(zhì)量要求的不同,提出最大化服務(wù)中心總服務(wù)效用的虛擬機(jī)分配方案,給出和云服務(wù)質(zhì)量高低相關(guān)的服務(wù)損失函數(shù)和服務(wù)收益函數(shù),促使云資源在執(zhí)行不同云服務(wù)的子服務(wù)中心之間的動(dòng)態(tài)資源分配,最后,以最大化整個(gè)服務(wù)中心的服務(wù)效用為目標(biāo),給出基于整數(shù)編碼的最優(yōu)分配方案求解的單親遺傳算法sopga,模擬實(shí)驗(yàn)表明所提虛擬機(jī)分配算法能夠有效提高云服務(wù)中心的服務(wù)效用,對(duì)提高資源利用率和服務(wù)質(zhì)量都具有實(shí)際意義。
【附圖說明】
圖1為本發(fā)明的云服務(wù)中心的任務(wù)排隊(duì)調(diào)度模型;
圖2為本發(fā)明的云服務(wù)中心遭受損失的變化情況示意圖;
圖3為本發(fā)明的云服務(wù)中心獲得的服務(wù)收益變化情況示意圖;
圖4為本發(fā)明的子服務(wù)中心平均響應(yīng)時(shí)間與虛擬機(jī)數(shù)量變化情況示意圖;
圖5為本發(fā)明的子服務(wù)中心單位時(shí)間的服務(wù)效用與虛擬機(jī)數(shù)量變化情況示意圖;
圖6為本發(fā)明的子服務(wù)中心的平均響應(yīng)時(shí)間與λ的值變化情況示意圖;
圖7為本發(fā)明的子服務(wù)中心的單位時(shí)間的服務(wù)效用與λ的值變化情況示意圖;
圖8為本發(fā)明的子服務(wù)中心在sopga和服務(wù)效用最大(optimal)兩種虛擬機(jī)分配方案下服務(wù)中心總的服務(wù)效用變化情況示意圖;
【具體實(shí)施方式】
通過下面的實(shí)施例可以詳細(xì)的解釋本發(fā)明,公開本發(fā)明的目的旨在保護(hù)本發(fā)明范圍內(nèi)的一切技術(shù)改進(jìn)。
結(jié)合附圖1~8所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,包括云服務(wù)中心、隨機(jī)任務(wù)模型、云服務(wù)中心模型和云資源分配模型,云服務(wù)中心由隨機(jī)任務(wù)模型、云服務(wù)中心模型和云資源分配模型構(gòu)成,隨機(jī)任務(wù)模型向云服務(wù)中心發(fā)送服務(wù)請(qǐng)求,云服務(wù)中心根據(jù)隨機(jī)任務(wù)模型發(fā)送的請(qǐng)求由云資源分配模型為隨機(jī)任務(wù)模型進(jìn)行服務(wù)。
由于云用戶可以隨時(shí)隨地向云計(jì)算系統(tǒng)提交服務(wù)請(qǐng)求,導(dǎo)致任務(wù)達(dá)到云計(jì)算系統(tǒng)是隨機(jī)的,任務(wù)到達(dá)云計(jì)算系統(tǒng)的時(shí)間間隔可能服從負(fù)指數(shù)分布、erlang分布等其它隨機(jī)分布,云用戶提交的任務(wù)類型可分為計(jì)算密集型、通信密集型、數(shù)據(jù)密集型和i/o密集型等,不同類型任務(wù)要處理的數(shù)據(jù)形式和問題規(guī)模一般不同,為了簡化問題的討論,本文假定同一類型任務(wù)的計(jì)算量相同,不同用戶提交的任務(wù)之間是相互獨(dú)立的。
云服務(wù)中心根據(jù)用戶的任務(wù)處理需求,通過向iaas提供商、paas提供商租借自己所需的虛擬機(jī)來組建saas,向云用戶提供任務(wù)處理服務(wù),由于不同云資源分配模塊提供商提供的資源類型、價(jià)格和性能等各不相同,因而云計(jì)算服務(wù)中心可根據(jù)任務(wù)的到達(dá)情況租用適當(dāng)數(shù)目的虛擬機(jī)機(jī)來處理用戶的任務(wù),以最大化自己的服務(wù)效用,我們假定向云服務(wù)中心請(qǐng)求服務(wù)的服務(wù)請(qǐng)求都能被安排到一個(gè)合適的虛擬機(jī)上進(jìn)行處理,直到服務(wù)請(qǐng)求處理完才離開云系統(tǒng),不同類型的服務(wù)請(qǐng)求被安排到不同子服務(wù)中心的虛擬機(jī)上進(jìn)行處理。
云服務(wù)中心的任務(wù)處理過程可描述為:不同類型的任務(wù)以不同的速率到達(dá)云計(jì)算服務(wù)中心隊(duì)列,全局任務(wù)調(diào)度器根據(jù)任務(wù)類型的不同,將任務(wù)調(diào)度到相應(yīng)類型的子服務(wù)中心任務(wù)隊(duì)列,然后由子服務(wù)中心任務(wù)調(diào)度器將任務(wù)調(diào)度相應(yīng)的虛擬機(jī)上進(jìn)行處理,結(jié)合附圖1所示,為了便于研究,假定每個(gè)任務(wù)到達(dá)子服務(wù)中心任務(wù)隊(duì)列的間隔相互獨(dú)立,且服從同一參數(shù)的負(fù)指數(shù)分布;虛擬機(jī)處理任務(wù)的服務(wù)時(shí)間相互獨(dú)立,且服從同一參數(shù)的負(fù)指數(shù)分布;任務(wù)到達(dá)的間隔時(shí)間與虛擬機(jī)服務(wù)的時(shí)間相互獨(dú)立,每種類型任務(wù)的處理過程,相當(dāng)于一個(gè)m/m/n型排隊(duì)模型。
一般來說,提高虛擬機(jī)的處理速度或增加虛擬機(jī)數(shù)量均能提高云服務(wù)中心的服務(wù)效率,從而減少任務(wù)的等待時(shí)間以及任務(wù)沒能得到及時(shí)處理而給云服務(wù)中心帶來的經(jīng)濟(jì)損失,如用戶提交的任務(wù)長時(shí)間得不到處理可能導(dǎo)致用戶下次選擇別處的云服務(wù)中心,但是,增加虛擬機(jī)數(shù)量可能導(dǎo)致云服務(wù)中心的運(yùn)行成本的增加,那么,如何既使服務(wù)中心的服務(wù)費(fèi)用不高,又使顧客等待而給云服務(wù)中心帶來的損失最少,這是云服務(wù)中心首要考慮的問題。
云服務(wù)中心的成本可以通過所租用的虛擬機(jī)數(shù)以及虛擬機(jī)的租用價(jià)格計(jì)算出來,任務(wù)沒能及時(shí)處理而帶來的損失,可通過問卷調(diào)查的方式得到可能減少的用戶數(shù),從而算出等候時(shí)間與損失的關(guān)系。
定義3服務(wù)損失:對(duì)ti類型任務(wù),記ei為處理機(jī)pi的單位時(shí)間租用價(jià)格,ti類型任務(wù)在云服務(wù)中心中逗留單位時(shí)間致使云服務(wù)中心遭受的服務(wù)損失sli定義為:
從服務(wù)損失的定義式可以看出:完成任務(wù)的平均響應(yīng)時(shí)間越長,云服務(wù)中心遭受的損失越大;在平均響應(yīng)時(shí)間相同的情況下,最大容忍響應(yīng)時(shí)間越小,云服務(wù)中心遭受的損失越大;在平均響應(yīng)時(shí)間和最大容忍響應(yīng)時(shí)間相同的情況下,ai值越大,云服務(wù)中心遭受的損失越大,在最大容忍響應(yīng)時(shí)間取不同數(shù)值時(shí),隨著服務(wù)中心對(duì)任務(wù)的平均響應(yīng)時(shí)間的增加,云服務(wù)中心遭受的損失的變化情況如附圖2所示,從圖中可以看出隨著平均響應(yīng)時(shí)間的增加,云服務(wù)中心遭受的損失越來越大,增速越來越快;最大容忍響應(yīng)時(shí)間越小,隨著平均響應(yīng)時(shí)間的增加,服務(wù)中心遭受損失的增速越來越大。
通常云服務(wù)中心完成每個(gè)任務(wù)所獲得的服務(wù)收益sri與完成任務(wù)的響應(yīng)時(shí)間有關(guān),響應(yīng)時(shí)間越小,收益值越大,則云服務(wù)中心完成ti類型任務(wù)所獲得的服務(wù)收益sri定義為:
其中bi是一個(gè)表示任務(wù)價(jià)值大小的常數(shù),任務(wù)的價(jià)值越大bi值越大,wi為ti類型任務(wù)所能容忍的最大響應(yīng)時(shí)間,
從服務(wù)收益的定義式可以看出:完成任務(wù)的平均響應(yīng)時(shí)間越短,云服務(wù)中心所獲得的服務(wù)收益越大;在平均響應(yīng)時(shí)間相同的情況下,最大容忍響應(yīng)時(shí)間越大,云服務(wù)中心所獲得的服務(wù)收益越大;在平均響應(yīng)時(shí)間和最大容忍響應(yīng)時(shí)間相同的情況下,bi值越大,云服務(wù)中心所獲得的服務(wù)收益越大,在最大容忍響應(yīng)時(shí)間w取不同數(shù)值時(shí),隨著服務(wù)中心對(duì)任務(wù)的平均響應(yīng)時(shí)間的增加,云服務(wù)中心所獲得的服務(wù)收益的變化情況如附圖3所示,從圖中可以看出隨著平均響應(yīng)時(shí)間的增加,云服務(wù)中心所獲得的服務(wù)收益越來越小,最大容忍響應(yīng)時(shí)間越大服務(wù)收益減少地越快。
云服務(wù)中心用ni個(gè)虛擬機(jī)處理到達(dá)率為λi的ti類型任務(wù),單位時(shí)間所獲得的服務(wù)效用f(λi,ni,μi)義為:
其中,ni是離散的,且λi/(niμi)<1,
由上式即可求出最優(yōu)的
結(jié)合附圖4和5所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,一個(gè)子服務(wù)中心配置不同數(shù)量的虛擬機(jī)時(shí),子服務(wù)中心服務(wù)效用情況。在每個(gè)虛擬機(jī)的服務(wù)速率為3個(gè)/單位時(shí)間,任務(wù)到達(dá)率分別為9個(gè)/單位時(shí)間、10個(gè)/單位時(shí)間和11個(gè)/單位時(shí)間,a=1,b=10,租用成本200,最壞響應(yīng)時(shí)間10,為子服務(wù)中心配置不同數(shù)量的虛擬機(jī)時(shí),隨著為服務(wù)中心配置的虛擬機(jī)數(shù)量的增加,服務(wù)中心對(duì)任務(wù)的平均響應(yīng)時(shí)間逐漸變小,但虛擬機(jī)數(shù)量達(dá)到7之后再配置更多的虛擬機(jī),平均響應(yīng)時(shí)間幾乎沒什么變化,從附圖5可以看出:剛開始,λ越大,即負(fù)載越大,增加配置的虛擬機(jī)數(shù)量,服務(wù)效用值增加越快,為負(fù)載重的服務(wù)中心配置更多的虛擬機(jī)越重要,此外,對(duì)于不同的任務(wù)到達(dá)率,都有一個(gè)最優(yōu)的虛擬機(jī)數(shù)量值,配置該數(shù)量的虛擬機(jī)服務(wù)中心服務(wù)效用有最大值,之后再分配更多的虛擬機(jī)帶來的服務(wù)收益的增加小于虛擬機(jī)租用成本的增加,總的服務(wù)效用越來越小。
結(jié)合附圖6和7所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,一個(gè)子服務(wù)中心在相同的虛擬機(jī)配置下,不同任務(wù)到達(dá)率下服務(wù)中心的效用變化情況。當(dāng)為一個(gè)子服務(wù)中心配置的虛擬機(jī)數(shù)量k=10,虛擬機(jī)服務(wù)速率分別為3個(gè)/單位時(shí)間、3.2個(gè)/單位時(shí)間和3.4個(gè)/單位時(shí)間時(shí),a=1,b=10,租用成本200,最壞響應(yīng)時(shí)間10,隨著λ值的增大,平均響應(yīng)時(shí)間逐漸增大,在λ=27之后,總服務(wù)能力最小的k=10、μ=3所對(duì)應(yīng)的平均響應(yīng)時(shí)間迅速增加,從附圖7可以看出:對(duì)不同配置的服務(wù)中心,都對(duì)應(yīng)一個(gè)最優(yōu)任務(wù)達(dá)到率,將服務(wù)中心的任務(wù)接收率控制在該任務(wù)到達(dá)率時(shí),服務(wù)中心的服務(wù)效用最大。
結(jié)合附圖8所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,由三個(gè)子云服務(wù)中心構(gòu)成的服務(wù)中心,在sopga和服務(wù)效用最大(optimal)兩種虛擬機(jī)分配方案下服務(wù)中心總的服務(wù)效用變化情況如附圖8所示,其中,虛擬機(jī)總數(shù)是30,虛擬機(jī)對(duì)類型1任務(wù)的處理速率是μ1=2個(gè)/單位時(shí)間,虛擬機(jī)對(duì)類型2任務(wù)的處理速率是μ2=3個(gè)/單位時(shí)間,虛擬機(jī)對(duì)類型3任務(wù)的處理速率是μ2=4個(gè)/單位時(shí)間;類型1任務(wù)的最壞響應(yīng)時(shí)間20,類型2任務(wù)的最壞響應(yīng)時(shí)間15,類型3任務(wù)的最壞響應(yīng)時(shí)間15,類型1任務(wù)的到達(dá)率固定在λ1=20個(gè)/每單位時(shí)間,類型2任務(wù)的到達(dá)率固定在λ2=14個(gè)/每單位時(shí)間,類型3任務(wù)的到達(dá)率λ3從13變化到18個(gè)/單位時(shí)間,對(duì)三種類型的任務(wù)設(shè)定a=1,b=10,虛擬機(jī)租用成本200,隨著λ2值的增大,服務(wù)中心總的服務(wù)效用逐漸增加;和optimal服務(wù)效用最大的最優(yōu)分配方案相比,sopga所求出的分配方案表現(xiàn)出較好的服務(wù)效用性能,基本上都比較接近optimal的最優(yōu)分配方案;只是在λ2的值大于等于17時(shí),即服務(wù)中心總的負(fù)載較重時(shí),sopga和最優(yōu)分配方案相比,有較大的偏差,這是因?yàn)樨?fù)載較重時(shí),對(duì)染色體的基因進(jìn)行變異時(shí),變異后的子代個(gè)體較難滿足x1(k1)+x2(k2)+…+xm(km)≤n的總量約束條件,即不易產(chǎn)生更優(yōu)的新個(gè)體。
本發(fā)明針對(duì)云服務(wù)中心提供多種云服務(wù)時(shí),不同云服務(wù)請(qǐng)求強(qiáng)度的不同、用戶服務(wù)質(zhì)量要求的不同,提出最大化服務(wù)中心總服務(wù)效用的虛擬機(jī)分配方案,給出和云服務(wù)質(zhì)量高低相關(guān)的服務(wù)損失函數(shù)和服務(wù)收益函數(shù),促使云資源在執(zhí)行不同云服務(wù)的子服務(wù)中心之間的動(dòng)態(tài)資源分配,最后,以最大化整個(gè)服務(wù)中心的服務(wù)效用為目標(biāo),給出基于整數(shù)編碼的最優(yōu)分配方案求解的單親遺傳算法sopga,模擬實(shí)驗(yàn)表明所提虛擬機(jī)分配算法能夠有效提高云服務(wù)中心的服務(wù)效用,對(duì)提高資源利用率和服務(wù)質(zhì)量都具有實(shí)際意義。
實(shí)施例1,實(shí)施本發(fā)明所述的一種云服務(wù)中心服務(wù)效用最大化的虛擬機(jī)分配方法,下面通過模擬實(shí)驗(yàn)來測試所提出的虛擬機(jī)按需物理資源分配方法的效果,我們用云仿真軟件cloudsim3.0來進(jìn)行模擬實(shí)驗(yàn),cloudsim3.0是基于java的離散事件模擬工具包,支持云計(jì)算的資源管理和調(diào)度模擬,cloudsim3.0提供了以下功能:第一,支持在一個(gè)物理計(jì)算節(jié)點(diǎn)上對(duì)大規(guī)模云計(jì)算基礎(chǔ)設(shè)施和數(shù)據(jù)中心的建模與仿真;第二一個(gè)建模數(shù)據(jù)中心、服務(wù)代理、調(diào)度和分配策略的獨(dú)立平臺(tái);第三,在一個(gè)數(shù)據(jù)中心節(jié)點(diǎn)內(nèi)為服務(wù)生成和管理虛擬機(jī),cloudsim3.0模擬程序運(yùn)行在intel奔騰雙核e5800、3.2ghz、2gbddr3、windowsxp專業(yè)版32位sp3操作系統(tǒng)的戴爾臺(tái)式機(jī)上。
實(shí)施例1驗(yàn)證為一個(gè)子服務(wù)中心配置不同數(shù)量的虛擬機(jī)時(shí),子服務(wù)中心服務(wù)效用情況。在每個(gè)虛擬機(jī)的服務(wù)速率為3個(gè)/單位時(shí)間,任務(wù)到達(dá)率分別為9個(gè)/單位時(shí)間、10個(gè)/單位時(shí)間和11個(gè)/單位時(shí)間,a=1,b=10,租用成本200,最壞響應(yīng)時(shí)間10,為子服務(wù)中心配置不同數(shù)量的虛擬機(jī)時(shí),隨著為服務(wù)中心配置的虛擬機(jī)數(shù)量的增加,服務(wù)中心對(duì)任務(wù)的平均響應(yīng)時(shí)間逐漸變小,但虛擬機(jī)數(shù)量達(dá)到7之后再配置更多的虛擬機(jī),平均響應(yīng)時(shí)間幾乎沒什么變化。從圖5可以看出:剛開始,λ越大,即負(fù)載越大,增加配置的虛擬機(jī)數(shù)量,服務(wù)效用值增加越快,為負(fù)載重的服務(wù)中心配置更多的虛擬機(jī)越重要,此外,對(duì)于不同的任務(wù)到達(dá)率,都有一個(gè)最優(yōu)的虛擬機(jī)數(shù)量值,配置該數(shù)量的虛擬機(jī)服務(wù)中心服務(wù)效用有最大值,之后再分配更多的虛擬機(jī)帶來的服務(wù)收益的增加小于虛擬機(jī)租用成本的增加,總的服務(wù)效用越來越小。
實(shí)施例1驗(yàn)證一個(gè)子服務(wù)中心在相同的虛擬機(jī)配置下,不同任務(wù)到達(dá)率下服務(wù)中心的效用變化情況,當(dāng)為一個(gè)子服務(wù)中心配置的虛擬機(jī)數(shù)量k=10,虛擬機(jī)服務(wù)速率μ分別為3個(gè)/單位時(shí)間、3.2個(gè)/單位時(shí)間和3.4個(gè)/單位時(shí)間時(shí),a=1,b=10,租用成本200,最壞響應(yīng)時(shí)間10,隨著λ的增大,隨著λ值的增大,平均響應(yīng)時(shí)間逐漸增大,在λ=27之后,總服務(wù)能力最小的k=10、μ=3所對(duì)應(yīng)的平均響應(yīng)時(shí)間迅速增加,對(duì)不同配置的服務(wù)中心,都對(duì)應(yīng)一個(gè)最優(yōu)任務(wù)達(dá)到率,將服務(wù)中心的任務(wù)接收率控制在該任務(wù)到達(dá)率時(shí),服務(wù)中心的服務(wù)效用最大。
實(shí)施例1驗(yàn)證由三個(gè)子云服務(wù)中心構(gòu)成的服務(wù)中心,在sopga和服務(wù)效用最大(optimal)兩種虛擬機(jī)分配方案下服務(wù)中心總的服務(wù)效用變化情況,其中,虛擬機(jī)總數(shù)是30,虛擬機(jī)對(duì)類型1任務(wù)的處理速率是μ1=2個(gè)/單位時(shí)間,虛擬機(jī)對(duì)類型2任務(wù)的處理速率是μ2=3個(gè)/單位時(shí)間,虛擬機(jī)對(duì)類型3任務(wù)的處理速率是μ2=4個(gè)/單位時(shí)間;類型1任務(wù)的最壞響應(yīng)時(shí)間20,類型2任務(wù)的最壞響應(yīng)時(shí)間15,類型3任務(wù)的最壞響應(yīng)時(shí)間15,類型1任務(wù)的到達(dá)率固定在λ1=20個(gè)/每單位時(shí)間,類型2任務(wù)的到達(dá)率固定在λ2=14個(gè)/每單位時(shí)間,類型3任務(wù)的到達(dá)率λ3從13變化到18個(gè)/單位時(shí)間,對(duì)三種類型的任務(wù)設(shè)定a=1,b=10,虛擬機(jī)租用成本200,隨著λ2值的增大,服務(wù)中心總的服務(wù)效用逐漸增加;和optimal服務(wù)效用最大的最優(yōu)分配方案相比,sopga所求出的分配方案表現(xiàn)出較好的服務(wù)效用性能,基本上都比較接近optimal的最優(yōu)分配方案;只是在λ2的值大于等于17時(shí),即服務(wù)中心總的負(fù)載較重時(shí),sopga和最優(yōu)分配方案相比,有較大的偏差,這是因?yàn)樨?fù)載較重時(shí),對(duì)染色體的基因進(jìn)行變異時(shí),變異后的子代個(gè)體較難滿足x1(k1)+x2(k2)+…+xm(km)≤n的總量約束條件,即不易產(chǎn)生更優(yōu)的新個(gè)體。
本發(fā)明未詳述部分為現(xiàn)有技術(shù),盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,具體實(shí)現(xiàn)該技術(shù)方案方法和途徑很多,以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對(duì)本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。