李天宇
(國網(wǎng)上海電力公司信息通信公司, 上海 200030)
云計(jì)算是一種新興的領(lǐng)先信息技術(shù),云計(jì)算是在“云”上分配計(jì)算任務(wù),通過專用軟件實(shí)現(xiàn)的自動(dòng)化管理使用戶能夠按需訪問計(jì)算能力、存儲(chǔ)空間和信息服務(wù),用戶可以專注于自己的業(yè)務(wù),無需考慮復(fù)雜的技術(shù)細(xì)節(jié),有助于提高效率、降低成本和技術(shù)創(chuàng)新。
云計(jì)算研究的關(guān)鍵技術(shù)有:虛擬化技術(shù)、數(shù)據(jù)存儲(chǔ)技術(shù)、資源管理技術(shù)、能源管理技術(shù)、云監(jiān)控技術(shù)等。其中,系統(tǒng)資源調(diào)度是云計(jì)算中的關(guān)鍵問題之一。然而,由于云計(jì)算平臺(tái)上應(yīng)用程序的多樣性和用戶負(fù)載的動(dòng)態(tài)變化,可能發(fā)生節(jié)點(diǎn)之間負(fù)載不平衡的問題,一些節(jié)點(diǎn)負(fù)載不足、資源不足,而另一些節(jié)點(diǎn)負(fù)載閑置空閑,極大地影響了云計(jì)算系統(tǒng)的整體性能。此外,隨著云計(jì)算資源規(guī)模的擴(kuò)大,資源集群的人工或手動(dòng)管理變得非常不現(xiàn)實(shí)。因此,如何通過適當(dāng)?shù)乃惴ㄗ詣?dòng)協(xié)調(diào)服務(wù)器之間的負(fù)載,以提升云計(jì)算平臺(tái)的資源利用率已成為云計(jì)算領(lǐng)域迫切需要解決的問題[1-3]。
與傳統(tǒng)的虛擬機(jī)資源調(diào)度策略算法不同,強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)算法是一種無模型調(diào)度方法,不需要系統(tǒng)的先驗(yàn)知識(shí)和模型。該算法通過設(shè)定馬爾可夫決策模型,定義強(qiáng)化模型中的智能體(Agent)和環(huán)境(Environment),通過使智能體與環(huán)境交互學(xué)習(xí),獲得系統(tǒng)的模型和動(dòng)態(tài)特性。交互過程中,通過設(shè)定獎(jiǎng)勵(lì)(Reward)和懲罰(Punishment)來約束智能體的行為,并通過最大化累計(jì)獎(jiǎng)賞獲得最優(yōu)控制策略[4]。文獻(xiàn)[5-6]研究了強(qiáng)化學(xué)習(xí)和動(dòng)態(tài)規(guī)劃模型在云計(jì)算資源管理中的應(yīng)用,以云計(jì)算虛擬資源的配置問題為學(xué)習(xí)對(duì)象,從控制規(guī)劃的角度進(jìn)行了研究。文獻(xiàn)[6]著重于每個(gè)虛擬機(jī)的計(jì)算資源分配,并將其作為學(xué)習(xí)對(duì)象,構(gòu)建了分布式虛擬機(jī)資源自動(dòng)配置系統(tǒng)。但是,該方法僅從每個(gè)虛擬機(jī)資源啟動(dòng),忽略了虛擬集群的整體資源性能。
本文針對(duì)具有用戶負(fù)載動(dòng)態(tài)的云計(jì)算虛擬機(jī)資源調(diào)度問題,設(shè)計(jì)了一種基于Q值強(qiáng)化學(xué)習(xí)的云計(jì)算虛擬機(jī)資源調(diào)度方法。將系統(tǒng)虛擬機(jī)的配置管理過程描述為馬爾可夫決策過程(Markov Decision Process,MDP),并根據(jù)系統(tǒng)中的運(yùn)行狀態(tài)和輸入負(fù)載的動(dòng)態(tài)變化引入Q值強(qiáng)化學(xué)習(xí)機(jī)制。智能體通過與服務(wù)器虛擬機(jī)資源環(huán)境的持續(xù)交互來獲得最佳虛擬機(jī)調(diào)度策略。 最后,本文以按需增減虛擬機(jī)數(shù)量和虛擬機(jī)動(dòng)態(tài)遷移兩種場景為例,進(jìn)行了仿真研究,并分析了不同場景下強(qiáng)化學(xué)習(xí)的性能。
本文研究的云計(jì)算虛擬機(jī)資源調(diào)度模型由用戶服務(wù)器、監(jiān)視器、調(diào)度器和虛擬機(jī)資源池等組成。虛擬機(jī)資源調(diào)度結(jié)構(gòu)如圖1所示。其中,調(diào)度程序自動(dòng)將虛擬機(jī)的決策模塊配置為強(qiáng)化學(xué)習(xí)的智能體結(jié)構(gòu),發(fā)揮虛擬機(jī)的資源決策調(diào)度作用。根據(jù)動(dòng)態(tài)負(fù)載平衡,當(dāng)用戶負(fù)載與所需虛擬機(jī)服務(wù)器不匹配時(shí),虛擬機(jī)調(diào)度策略將通過控制器調(diào)節(jié)相應(yīng)節(jié)點(diǎn)的虛擬機(jī)個(gè)數(shù),以達(dá)到用戶負(fù)載平衡。
圖1 虛擬機(jī)資源調(diào)度結(jié)構(gòu)示意
強(qiáng)化學(xué)習(xí)方法側(cè)重于學(xué)習(xí)解決問題的策略。與一般機(jī)器學(xué)習(xí)方法相比,強(qiáng)化學(xué)習(xí)算法更注重與環(huán)境的交互。本文構(gòu)建的強(qiáng)化學(xué)習(xí)智能體將虛擬機(jī)資源調(diào)度問題轉(zhuǎn)化為有限時(shí)間序列的馬爾可夫決策過程,智能體觀測量為數(shù)據(jù)提取的特征。
馬爾可夫決策過程具有馬爾可夫性,同時(shí)考慮動(dòng)作和獎(jiǎng)勵(lì)的影響。基于馬爾可夫決策過程,本文定義了虛擬機(jī)調(diào)度策略問題,在每個(gè)時(shí)間步長上,智能體觀測量包含強(qiáng)化學(xué)習(xí)中的狀態(tài)st,動(dòng)作at和獎(jiǎng)勵(lì)函數(shù)rt。系統(tǒng)在當(dāng)前狀態(tài)st下采取動(dòng)作at并通過P函數(shù)轉(zhuǎn)移到下一狀態(tài)st+1,即
st+1=P(st,at),?t∈{0,1,2,…,T-1}
(1)
獎(jiǎng)勵(lì)函數(shù)rt與狀態(tài)轉(zhuǎn)移函數(shù)ρ相關(guān)聯(lián),可表示為
rt=ρ(st,at,st+1),?t∈{0,1,2,…,T-1}
(2)
本文研究的問題是尋找最優(yōu)策略h*,使得整個(gè)優(yōu)化范圍內(nèi)獲得的獎(jiǎng)勵(lì)Gt最大。Gt的表達(dá)式為
(3)
式中:γ——折扣因子,根據(jù)未來獎(jiǎng)勵(lì)在學(xué)習(xí)中的重要性而設(shè)定,γ∈[0,1]。
當(dāng)智能體采用策略h時(shí),累計(jì)回報(bào)服從一個(gè)分布,累計(jì)回報(bào)在狀態(tài)s處的期望值定義為狀態(tài)-動(dòng)作值函數(shù)Qh(s,a)。
(4)
定義最優(yōu)Q值函數(shù)為Q*(所有策略中最大的狀態(tài)-動(dòng)作效用值函數(shù)),即
(5)
若已知Q*,則最優(yōu)策略h*可通過直接最大化Q*(s,a)來確定,即
(6)
虛擬機(jī)資源調(diào)度問題的學(xué)習(xí)目標(biāo)是通過使用調(diào)度系統(tǒng)模塊的時(shí)間序列來添加或刪除虛擬機(jī)作為決策變量,利用智能體的反饋信號(hào),不斷與環(huán)境互動(dòng),調(diào)整和改善智能決策行為從而獲得最佳調(diào)度策略。
文獻(xiàn)[5-6]將強(qiáng)化學(xué)習(xí)引入到云計(jì)算虛擬資源的配置中,文獻(xiàn)[7-10]將強(qiáng)化學(xué)習(xí)引入到實(shí)際應(yīng)用場景的綜合研究中。本文采用深度Q值學(xué)習(xí)算法來解決虛擬機(jī)資源自動(dòng)配置決策問題,即通過當(dāng)前云計(jì)算應(yīng)用系統(tǒng)中的運(yùn)行狀態(tài),調(diào)度決策模塊,并根據(jù)特定標(biāo)準(zhǔn)從動(dòng)作空間中選擇最優(yōu)動(dòng)作,以改善系統(tǒng)的狀態(tài)和處理能力。對(duì)于Q值函數(shù)解,即最優(yōu)策略求解問題,通常使用諸如神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)逼近器來近似值函數(shù)或策略。
深度Q值強(qiáng)化學(xué)習(xí)算法使用的是雙重Q值網(wǎng)絡(luò)結(jié)構(gòu)。圖2為雙重Q值網(wǎng)絡(luò)的培訓(xùn)流程圖,介紹了系統(tǒng)模型培訓(xùn)過程。由于雙重Q值網(wǎng)絡(luò)將動(dòng)作選擇和動(dòng)作評(píng)估用不同的值函數(shù)來實(shí)現(xiàn),因此雙重Q值網(wǎng)絡(luò)解決了值函數(shù)的過估計(jì)問題,如圖2所示。
在值函數(shù)更新中,目標(biāo)值可以表示為
(7)
當(dāng)前值網(wǎng)絡(luò)的參數(shù)θ是實(shí)時(shí)更新的,每經(jīng)過N輪迭代,即可將當(dāng)前值網(wǎng)絡(luò)的參數(shù)復(fù)制給目標(biāo)值網(wǎng)絡(luò)。通過最小化當(dāng)前Q值和目標(biāo)Q值之間的均方誤差來更新網(wǎng)絡(luò)參數(shù)。誤差函數(shù)θt為
(8)
圖2 雙重Q值網(wǎng)絡(luò)培訓(xùn)流程
強(qiáng)化學(xué)習(xí)過程中,Q值學(xué)習(xí)算法采用隨機(jī)梯度下降法不斷修正網(wǎng)絡(luò)參數(shù),使網(wǎng)絡(luò)計(jì)算的Q值不斷接近目標(biāo)值。最后,更新動(dòng)作值網(wǎng)絡(luò)參數(shù)為
(9)
2.2.1 狀態(tài)空間
根據(jù)文獻(xiàn)[7-8],虛擬機(jī)自動(dòng)調(diào)度決策需要解決狀態(tài)空間中的最佳虛擬機(jī)資源配置行為,因此將當(dāng)前虛擬機(jī)集群中的虛擬機(jī)資源數(shù)用作配置決策模型中的狀態(tài)空間。調(diào)度決策模型的狀態(tài)空間S表示為
S={s1,s1,s3,…,sn}
(10)
2.2.2 動(dòng)作空間
根據(jù)用戶需求,對(duì)不同的物理資源和虛擬資源進(jìn)行動(dòng)態(tài)劃分或釋放。當(dāng)用戶不需要這部分資源時(shí),可以將其釋放。云計(jì)算為用戶提供的這種服務(wù)實(shí)現(xiàn)了資源利用的可擴(kuò)展性。根據(jù)文獻(xiàn)[9-10],在每個(gè)時(shí)間步長上,強(qiáng)化學(xué)習(xí)智能體采取的離散化動(dòng)作包括添加虛擬機(jī)、虛擬機(jī)保持閑置和刪除虛擬機(jī)3種狀態(tài)。本文將動(dòng)作空間a劃分成3個(gè)數(shù)值,即a∈[0,1,2]。a=0指示調(diào)度決策模塊添加虛擬機(jī),a=1指示虛擬機(jī)保持空閑,a=2指示調(diào)度決策模塊刪除虛擬機(jī)。
2.2.3 獎(jiǎng)勵(lì)函數(shù)
由強(qiáng)化學(xué)習(xí)中的獎(jiǎng)勵(lì)函數(shù)可以立即得到動(dòng)作和環(huán)境的優(yōu)劣評(píng)估值。它是一種即時(shí)獎(jiǎng)勵(lì)函數(shù)[11]。在應(yīng)用系統(tǒng)添加或刪除虛擬機(jī)后,虛擬機(jī)資源的系統(tǒng)狀態(tài)(例如CPU,內(nèi)存和帶寬利用率)會(huì)相應(yīng)地發(fā)生變化。此時(shí),若增加應(yīng)用系統(tǒng)的處理能力,則可以滿足云計(jì)算應(yīng)用提供商所需的系統(tǒng)處理要求,還可以滿足用戶的實(shí)時(shí)加載請(qǐng)求,并設(shè)置較大的正獎(jiǎng)勵(lì)值;反之,經(jīng)過調(diào)整后,產(chǎn)生了負(fù)荷損失,可設(shè)定為負(fù)的懲罰值。
rt=r(at,dt)=r+(at,dt)+r-(at,dt)
(11)
式中:at——?jiǎng)幼骷又?
dt——負(fù)荷需求;
r+(at,dt)——滿足用戶負(fù)荷需求的獎(jiǎng)勵(lì);
r-(at,dt)——不能滿足負(fù)荷需求的懲罰。
令δt=at-dt,當(dāng)δt<0時(shí),r-(at,dt)=kδt。
即時(shí)獎(jiǎng)勵(lì)模型針對(duì)的是一個(gè)時(shí)間點(diǎn)信息做出的評(píng)價(jià),無法說明整體策略的好壞。因此,需要定義狀態(tài)-動(dòng)作值函數(shù)來表征策略對(duì)于狀態(tài)的長期效果。
(12)
Q值函數(shù)是強(qiáng)化學(xué)習(xí)的學(xué)習(xí)目標(biāo),選擇的最優(yōu)策略就是基于最大Q值的策略。
(13)
在電力系統(tǒng)云計(jì)算平臺(tái)基礎(chǔ)設(shè)施中,服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)資源通過虛擬化形成了龐大的資源池。分布式算法通過分配資源,消除了物理邊界,提高了資源利用率,并統(tǒng)一了資源池分配。在實(shí)施云計(jì)算基礎(chǔ)設(shè)施的過程中,資源池的構(gòu)建尤為重要,將有助于實(shí)現(xiàn)云計(jì)算的最終目標(biāo)——按需動(dòng)態(tài)分配資源[11-12]。
本文以國家電網(wǎng)公司上海數(shù)據(jù)中心開展的“云平臺(tái)”系統(tǒng)為例,進(jìn)行仿真分析,采集的歷史數(shù)據(jù)為小時(shí)級(jí)云平臺(tái)服務(wù)器節(jié)點(diǎn)處的用戶負(fù)荷量和剩余虛擬機(jī)數(shù)量,如圖3所示。圖3中,動(dòng)作值線表示控制虛擬機(jī)數(shù)量的最優(yōu)控制策略。試驗(yàn)結(jié)果表明,強(qiáng)化學(xué)習(xí)算法提升了云平臺(tái)虛擬機(jī)系統(tǒng)的資源使用率,降低了云平臺(tái)虛擬機(jī)系統(tǒng)的整體運(yùn)維成本。
強(qiáng)化學(xué)習(xí)算法中,學(xué)習(xí)率初始值設(shè)為0.000 5,折扣因子初始值設(shè)為0.9,貪婪策略概率ε初始值設(shè)為1。智能體通過增加折扣因子、減小學(xué)習(xí)率,以獲得更好的學(xué)習(xí)表現(xiàn)。
圖3 虛擬機(jī)動(dòng)態(tài)遷移數(shù)量訓(xùn)練結(jié)果
通過調(diào)度策略仿真結(jié)果可知:對(duì)于不同的用戶負(fù)荷使用初始值,服務(wù)器都能有效工作;在負(fù)荷消耗量沒有或較少時(shí),虛擬機(jī)的個(gè)數(shù)能夠滿足負(fù)荷需求,虛擬機(jī)配置保持空閑;當(dāng)負(fù)載較多時(shí),開始增加虛擬機(jī)個(gè)數(shù),為后面的負(fù)荷消耗提供保障;智能體觀測量的有效信息有所增加,使得智能體可以更加準(zhǔn)確地選擇動(dòng)作,從而使系統(tǒng)更有效地增減虛擬機(jī)個(gè)數(shù),提高調(diào)度策略的性能。因此,智能體觀測的有效信息越多,則強(qiáng)化學(xué)習(xí)調(diào)度策略的性能越好。
在深度強(qiáng)化學(xué)習(xí)機(jī)制的基礎(chǔ)上,提出了云計(jì)算虛擬機(jī)資源調(diào)度策略,提取了有效特征,構(gòu)建了強(qiáng)化學(xué)習(xí)模型,實(shí)現(xiàn)了云計(jì)算虛擬機(jī)資源的調(diào)度。首先,以云計(jì)算虛擬機(jī)資源為環(huán)境信息,以增減虛擬機(jī)為動(dòng)作,以狀態(tài)環(huán)境收益獎(jiǎng)勵(lì)和動(dòng)作獎(jiǎng)勵(lì)為獎(jiǎng)勵(lì)函數(shù),構(gòu)建了強(qiáng)化學(xué)習(xí)模型;然后,提取輸入數(shù)據(jù)的特征,使用Q值強(qiáng)化學(xué)習(xí)算法計(jì)算Q值,得到最優(yōu)的虛擬機(jī)調(diào)度策略。試驗(yàn)結(jié)果表明,在不同環(huán)境狀態(tài)下,強(qiáng)化學(xué)習(xí)算法都能充分發(fā)揮模型的自主性,主動(dòng)學(xué)習(xí)環(huán)境信息,調(diào)整自身參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu),獲得較好的控制策略。