本發(fā)明屬于數(shù)據(jù)中心服務(wù)器調(diào)度與分配
技術(shù)領(lǐng)域:
:,特別涉及一種面向交互式工作負(fù)載的數(shù)據(jù)中心粗粒度動(dòng)態(tài)服務(wù)器預(yù)留算法。
背景技術(shù):
::隨著云計(jì)算技術(shù)的成熟,出現(xiàn)了基礎(chǔ)設(shè)施即服務(wù)(IaaS,InfrastructureasaService)的服務(wù)模式,使得互聯(lián)網(wǎng)服務(wù)提供商不再需要自己購置硬件設(shè)備,而只需要從云提供商處租用相應(yīng)的虛擬硬件資源即可。云計(jì)算數(shù)據(jù)中心的系統(tǒng)架構(gòu)如附圖1所示。數(shù)據(jù)中心內(nèi)部安放有許多物理服務(wù)器,根據(jù)物理服務(wù)器資源容量的大小,將一臺(tái)服務(wù)器分為一臺(tái)或多臺(tái)虛擬機(jī)(VM,VirtualMachine)(附圖1中僅標(biāo)出虛擬機(jī))。云用戶向云服務(wù)提供商租賃虛擬機(jī),以滿足其終端用戶的計(jì)算需求。為了降低任務(wù)請(qǐng)求響應(yīng)時(shí)間,數(shù)據(jù)中心通常采用共享隊(duì)列結(jié)構(gòu)。傳統(tǒng)服務(wù)質(zhì)量(QoS,QualityofService)描述方式主要是以期望為基礎(chǔ)的,如某個(gè)QoS指標(biāo)的期望不能超過某一閾值。然而,人們逐漸發(fā)現(xiàn)僅僅基于期望的QoS描述是不夠的,原因在于互聯(lián)網(wǎng)流量顯示出很強(qiáng)的自相似性,在不同時(shí)間尺度上存在與不同程度的突發(fā),方差較大。因此,目前普遍采用的QoS描述形式是Pr(r>th)<x(1)其中,r為請(qǐng)求的QoS指標(biāo),th與x由服務(wù)等級(jí)協(xié)議(SLA,ServiceLevelAgreement)規(guī)定,分別為QoS指標(biāo)的閾值與違約概率閾值。對(duì)于一個(gè)排隊(duì)系統(tǒng),目前只有泊松到達(dá)/泊松服務(wù)的排隊(duì)系統(tǒng)中推導(dǎo)出了類似于公式(1)的解析表達(dá)式,而當(dāng)終端用戶到達(dá)為自相似過程時(shí),還沒有有效的方法對(duì)其進(jìn)行描述。目前主流的云提供商都支持不同級(jí)別的IaaS服務(wù)。例如,IaaS服務(wù)可分為兩個(gè)層次:第一層為長期預(yù)留級(jí),即云用戶需與數(shù)據(jù)中心運(yùn)營商簽訂長期服務(wù)器租賃合同(通常時(shí)間粒度為年),第二層為短期預(yù)留級(jí),即云用戶可以小時(shí)為單位租賃服務(wù)器。僅使用長期預(yù)留的方式會(huì)產(chǎn)生極大的資源浪費(fèi),使資源租賃成本升高。而資源短期租用的單位成本又比長期租用高。因此,采用長期/短期資源租用相結(jié)合的方式可有效地降低資源租賃成本,減少資源浪費(fèi)。從云用戶的觀點(diǎn)來看,資源租賃問題主要涉及兩個(gè)方面:第一方面是確定每個(gè)時(shí)段中在滿足SLA約束前提下的資源需求量,難點(diǎn)在于形式化描述具有自相似特征的SLA約束條件。第二方面是確定長期/短期租賃的資源數(shù),需要找出一種算法,在盡量少的時(shí)間內(nèi)找到可最小化總體資源租用成本的長期/短期混合資源租賃策略。技術(shù)實(shí)現(xiàn)要素:為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種面向交互式工作負(fù)載的數(shù)據(jù)中心粗粒度動(dòng)態(tài)服務(wù)器預(yù)留算法,在交互式工作負(fù)載的數(shù)據(jù)中心中,從云用戶的角度出發(fā),長期/短期混合實(shí)現(xiàn)粗粒度動(dòng)態(tài)服務(wù)器租用,在百分比延遲的服務(wù)質(zhì)量約束下,最大幅度的減少云用戶的服務(wù)器租賃成本。為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種面向交互式工作負(fù)載的數(shù)據(jù)中心粗粒度動(dòng)態(tài)服務(wù)器預(yù)留算法,建立長期/短期虛擬服務(wù)器租用問題通用優(yōu)化模型如下:約束條件:其中,k0為長期虛擬服務(wù)器租用數(shù)量,ki,i≠0為階段i租用的短期虛擬服務(wù)器數(shù)量,N為決策階段數(shù)量,CL為長期租賃一臺(tái)虛擬服務(wù)器所需的單位時(shí)間成本,CS為短期租賃一臺(tái)虛擬服務(wù)器所需的單位時(shí)間成本,di為階段i的響應(yīng)時(shí)間,D為閾值,x為違約概率,Pr(di>D)表示系統(tǒng)響應(yīng)時(shí)間大于某個(gè)閾值D的概率;通過求解該模型函數(shù),實(shí)現(xiàn)總體資源租用成本的最小化。具體地,采用資源需求學(xué)習(xí)算法,用隨機(jī)梯度法建立資源數(shù)/違約概率映射表VP_table;然后采用動(dòng)態(tài)服務(wù)器租用算法,得到長期虛擬機(jī)租用數(shù)量M和各個(gè)階段的短期虛擬機(jī)租用數(shù)量m[N],從而求解所述模型函數(shù)。所述資源需求學(xué)習(xí)算法包括:A.建立VP_table,記該表中每個(gè)表項(xiàng)為VP_table[i][j],含義為時(shí)段i內(nèi)資源數(shù)量為j的前提下關(guān)于SLA需求的違約概率;B.算法的輸入為:1)SLA,包括響應(yīng)時(shí)間閾值th與違約概率閾值x兩個(gè)參數(shù);2)訓(xùn)練迭代次數(shù)ITE;首先建立資源數(shù)量/違約概率映射表VP_table,并確定決策次數(shù)即時(shí)段數(shù)N與每個(gè)時(shí)段內(nèi)統(tǒng)計(jì)響應(yīng)時(shí)間的時(shí)間槽長度Γ,定義兩個(gè)臨時(shí)存儲(chǔ)空間p[i][k]與counter,其中p[i][k]存儲(chǔ)一次迭代過程中階段i采用k個(gè)資源時(shí)違約概率的樣本,counter存儲(chǔ)一個(gè)階段中違約的次數(shù)用于計(jì)算p[i][k],η、i、k、j分別為迭代計(jì)數(shù)器、決策階段計(jì)數(shù)器、資源計(jì)數(shù)器、以及一個(gè)決策階段內(nèi)的時(shí)間槽計(jì)數(shù)器;C.將一個(gè)時(shí)段分為若干個(gè)時(shí)間槽,在一次迭代過程中,根據(jù)資源配置數(shù)k,統(tǒng)計(jì)時(shí)段i中時(shí)間槽j內(nèi)的平均任務(wù)響應(yīng)時(shí)間t[i][j][k],若該響應(yīng)時(shí)間大于SLA中所規(guī)定的響應(yīng)時(shí)間閾值th,則計(jì)數(shù)器counter加1;當(dāng)階段i內(nèi)所有的時(shí)間槽中的平均響應(yīng)時(shí)間都統(tǒng)計(jì)出以后,資源配置k下的違約概率樣本p[i][k]用公式計(jì)算,其中分母24/(N×Γ)的含義是一個(gè)時(shí)段內(nèi)所包含的時(shí)間槽個(gè)數(shù),最后,公式VP_table[i][k]=(1-η)VP_table[i][k]+ηp[i][k]用隨機(jī)梯度法更新VP_table中對(duì)應(yīng)的表項(xiàng),最終的輸出是資源數(shù)量/違約概率映射表VP_table。所述動(dòng)態(tài)服務(wù)器租用算法是將尋找長期資源租賃數(shù)k的問題歸結(jié)為如下函數(shù)的優(yōu)化問題:函數(shù)中的第一項(xiàng)是長期資源租用成本,第二項(xiàng)中為短期資源租用成本,[K[i]-k]+為階段i的短期資源租用數(shù)量,運(yùn)算符[x]+=max{x,0}。動(dòng)態(tài)服務(wù)器租用算法包括:第一部分:利用窮舉法在VP_table表中搜尋每個(gè)階段滿足SLA所需的最少虛擬服務(wù)器數(shù)量,并將結(jié)果存儲(chǔ)在數(shù)組K[N]中;第二部分:求解函數(shù)針對(duì)該函數(shù)的每個(gè)分界點(diǎn)即數(shù)組K[N]中的每個(gè)元素進(jìn)行求解,求解的結(jié)果為最優(yōu)長期租用虛擬服務(wù)器數(shù)量M與最低成本目標(biāo)函數(shù)值m;第三部分:根據(jù)解得的M與K[N]數(shù)組,計(jì)算每個(gè)階段所需的短期虛擬服務(wù)器租用數(shù)量。動(dòng)態(tài)服務(wù)器租用算法的最壞時(shí)間復(fù)雜度為N×(K+2),其中K=MIN_VSNUM-MAX_VSNUM為一常量,MIN_VSNUM與MAX_VSNUM分別為一事先指定的服務(wù)器數(shù)量的最小值與最大值。與現(xiàn)有技術(shù)相比,本發(fā)明從云用戶的角度,提出了一種面向交互式工作負(fù)載的粗粒度動(dòng)態(tài)服務(wù)器預(yù)留算法,在百分比延遲的約束下,最小化虛擬化實(shí)例租賃成本。由于互聯(lián)網(wǎng)流量表現(xiàn)出很強(qiáng)的自相似性,因此較難得到一個(gè)關(guān)于百分比延遲約束的解析解。為了解決此問題,本發(fā)明提出了一種基于二維表和隨機(jī)梯度法的資源學(xué)習(xí)算法來學(xué)習(xí)百分比延遲約束。同時(shí),本發(fā)明給出了一種充分利用租賃服務(wù)多樣性的粗粒度服務(wù)器預(yù)留算法,用來決定服務(wù)器租賃的策略。附圖說明圖1是云計(jì)算系統(tǒng)中數(shù)據(jù)中心結(jié)構(gòu)框架示意圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明的實(shí)施方式。1.長期/短期虛擬服務(wù)器租用問題通用優(yōu)化模型:本發(fā)明中所使用到的符號(hào)及其含義如表1所示。長期/短期虛擬服務(wù)器租用優(yōu)化問題可歸結(jié)為:約束條件:其中,k0為長期虛擬服務(wù)器租用數(shù)量,ki,i≠0為階段i租用的短期虛擬服務(wù)器數(shù)量,di為階段i的響應(yīng)時(shí)間,D為閾值,x為違約概率。表1本章中用到的符號(hào)及其含義該問題中,隨機(jī)變量di的分布和外部終端用戶到達(dá)λi與虛擬服務(wù)器數(shù)量ki相關(guān)。2.通過如下算法在盡量少的時(shí)間內(nèi)找到可最小化總體資源租用成本的長期/短期混合資源租賃策略。2.1資源需求學(xué)習(xí)算法:本發(fā)明設(shè)計(jì)以下資源需求學(xué)習(xí)算法,用隨機(jī)梯度法建立資源數(shù)/違約概率映射表VP_table。算法1:資源需求學(xué)習(xí)算法,包括:輸入:服務(wù)等級(jí)協(xié)議SLA,迭代次數(shù)ITE。輸出:VP_table。算法使用隨機(jī)梯度法學(xué)些VP_table表中的值。由于每天的工作負(fù)載具有較強(qiáng)的晝夜效應(yīng),因此可認(rèn)為每天固定時(shí)刻的任務(wù)到達(dá)為穩(wěn)態(tài)隨機(jī)過程。算法對(duì)所有可能的決策進(jìn)行模擬,并將模擬所得的違約概率樣本存儲(chǔ)在p[i][k]中。然后利用隨機(jī)梯度法對(duì)VP_table中的表項(xiàng)進(jìn)行更新(算法第15行)。當(dāng)算法進(jìn)行完畢ITE次迭代學(xué)習(xí)后,將VP_table返回,作為實(shí)時(shí)決策的依據(jù)。A.建立資源數(shù)/違約概率映射表VP_table(violationprobabilitytable)。記該表中每個(gè)表項(xiàng)為VP_table[i][j],含義為時(shí)段i內(nèi)資源數(shù)量為j的前提下關(guān)于SLA需求的違約概率。B.算法的輸入為:1)SLA,包括響應(yīng)時(shí)間閾值th與違約概率閾值x兩個(gè)參數(shù);2)訓(xùn)練迭代次數(shù)ITE。算法首先建立資源數(shù)量/違約概率映射表VP_table,并確定決策次數(shù)(時(shí)段數(shù))N與每個(gè)時(shí)段內(nèi)統(tǒng)計(jì)響應(yīng)時(shí)間的時(shí)間槽長度Γ。由于Internet每天的流量具有很強(qiáng)的相似性(即diurnalpattern),因此只需對(duì)一天之內(nèi)的各個(gè)時(shí)段進(jìn)行訓(xùn)練即可。此外,還需定義兩個(gè)臨時(shí)存儲(chǔ)空間p[i][k]與counter。其中p[i][k]存儲(chǔ)一次迭代過程中階段i采用k個(gè)資源時(shí)違約概率的樣本,counter存儲(chǔ)一個(gè)階段中違約的次數(shù)(用來計(jì)算p[i][k])。η、i、k、j分別為迭代計(jì)數(shù)器、決策階段計(jì)數(shù)器、資源計(jì)數(shù)器、以及一個(gè)決策階段內(nèi)的時(shí)間槽計(jì)數(shù)器。C.算法將一個(gè)時(shí)段分為若干個(gè)時(shí)間槽。在一次迭代過程中,根據(jù)資源配置數(shù)k,統(tǒng)計(jì)時(shí)段i中時(shí)間槽j內(nèi)的平均任務(wù)響應(yīng)時(shí)間t[i][j][k]。若該響應(yīng)時(shí)間大于SLA中所規(guī)定的響應(yīng)時(shí)間閾值th,則計(jì)數(shù)器counter加1。當(dāng)階段i內(nèi)所有的時(shí)間槽中的平均響應(yīng)時(shí)間都統(tǒng)計(jì)出以后,資源配置k下的違約概率樣本p[i][k]可用公式(2)計(jì)算,其中分母24/(N×Γ)的含義是一個(gè)時(shí)段內(nèi)所包含的時(shí)間槽個(gè)數(shù)。最后,公式(3)用隨機(jī)梯度法更新VP_table中對(duì)應(yīng)的表項(xiàng)。算法的輸出是資源數(shù)量/違約概率映射表VP_table。2.2動(dòng)態(tài)服務(wù)器租用算法得到資源數(shù)量/違約概率映射表VP_table以后,可得到時(shí)段i的資源需求量K[i]。此時(shí),尋找長期資源租賃數(shù)k的問題,可以歸結(jié)為如下優(yōu)化問題:目標(biāo)函數(shù)中的第一項(xiàng)是長期資源租用成本,第二項(xiàng)中為短期資源租用成本([K[i]-k]+為階段i的短期資源租用數(shù)量,運(yùn)算符[x]+=max{x,0})。問題(4)不是線性問題。但是,該問題是單自變量分段線性問題,其最優(yōu)解必定出現(xiàn)在分段點(diǎn)上,因此易于求解。算法2:動(dòng)態(tài)服務(wù)器租用算法,包括:輸入:VP_table。輸出:長期虛擬機(jī)租用數(shù)量M,各個(gè)階段的短期虛擬機(jī)租用數(shù)量m[N]。算法使用隨機(jī)梯度法學(xué)些VP_table表中的值。由于每天的工作負(fù)載具有較強(qiáng)的晝夜效應(yīng),因此可認(rèn)為每天固定時(shí)刻的任務(wù)到達(dá)為穩(wěn)態(tài)隨機(jī)過程。算法對(duì)所有可能的決策進(jìn)行模擬,并將模擬所得的違約概率樣本存儲(chǔ)在p[i][k]中。然后利用隨機(jī)梯度法對(duì)VP_table中的表項(xiàng)進(jìn)行更新(算法第15行)。當(dāng)算法進(jìn)行完畢ITE次迭代學(xué)習(xí)后,將VP_table返回,作為實(shí)時(shí)決策的依據(jù)。動(dòng)態(tài)虛擬服務(wù)器租用算法如算法2所示,可分為三部分:第一部分(01-09行)利用窮舉法在VP_table表中搜尋每個(gè)階段滿足SLA所需的最少虛擬服務(wù)器數(shù)量,并將結(jié)果存儲(chǔ)在數(shù)組K[N]中。第二部分(10-18行)求解問題(4)。針對(duì)問題(4)中目標(biāo)函數(shù)的每個(gè)分界點(diǎn)(即數(shù)組K[N]中的每個(gè)元素)進(jìn)行求解。求解的結(jié)果為最優(yōu)長期租用虛擬服務(wù)器數(shù)量M與最低成本目標(biāo)函數(shù)值m。第三部分(19-21行)根據(jù)第二部分解得的M與K[N]數(shù)組,計(jì)算每個(gè)階段所需的短期虛擬服務(wù)器租用數(shù)量。算法2的最壞時(shí)間復(fù)雜度為N×(K+2),其中K=MIN_VSNUM-MAX_VSNUM為一常量。MIN_VSNUM與MAX_VSNUM分別為一事先指定的服務(wù)器數(shù)量最小值與最大值。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3