徐東紅 花旭
摘 要:隨著無服務(wù)器計算技術(shù)的快速發(fā)展,無服務(wù)器計算以其按需付費、自動擴(kuò)展等特性吸引了越來越多用戶的關(guān)注,研究人員正在探索將無服務(wù)器架構(gòu)應(yīng)用于日漸完善的邊緣計算系統(tǒng)。然而,在分布式的無服務(wù)器系統(tǒng)中如何有效地進(jìn)行無服務(wù)器函數(shù)放置并為用戶提供優(yōu)質(zhì)的服務(wù)仍是該領(lǐng)域一個亟需解決的問題。采用基于用戶意圖的DQN(deep Qnetwork)無服務(wù)器函數(shù)放置算法來解決分布式無服務(wù)器系統(tǒng)中的函數(shù)放置問題。該算法將用戶意圖作為學(xué)習(xí)目標(biāo),利用DQN算法進(jìn)行函數(shù)放置的優(yōu)化。仿真實驗表明,基于用戶意圖的DQN無服務(wù)器函數(shù)放置算法在計算時延和放置開銷方面顯著降低。相較于傳統(tǒng)方法,該算法能夠有效滿足用戶的不同需求,并取得了較好的函數(shù)放置效果,在分布式無服務(wù)器系統(tǒng)中具有較高的適應(yīng)性和性能優(yōu)勢。
關(guān)鍵詞:云計算; 無服務(wù)器計算; 深度強(qiáng)化學(xué)習(xí); 用戶意圖; 函數(shù)放置
中圖分類號:TP18?? 文獻(xiàn)標(biāo)志碼:A?? 文章編號:1001-3695(2023)12-035-3747-07
doi:10.19734/j.issn.1001-3695.2023.03.0143
Research on function placement based on DQN and user intention in serverless environment
Abstract:With the rapid development of serverless computing technology, serverless computing has attracted more and more users attention with its payasyougo, automatic extension and other features. Researchers are exploring serverless architectures for increasingly sophisticated edge computing systems. However, how to effectively place serverless functions in distributed serverless systems and provide users with highquality services is still an urgent problem in this field. This paper applied user intentbased DQN serverless function placement algorithm to solve the function placement problem in distributed serverless systems. The algorithm took user intention as the learning objective and used DQN algorithm to optimize function placement. Simulation experiments show that, the user intentbased DQN serverless function placement algorithm achieves significant reduction in computing delay and placement cost. Compared with traditional methods, this algorithm can effectively meet the different needs of users and achieve better function placement effect, and has higher adaptability and performance advantages in distributed serverless systems.
Key words:cloud computing; serverless computing; deep reinforcement learning; user intention; function placement
0 引言
云計算技術(shù)起源于網(wǎng)格、并行和分布式系統(tǒng)、虛擬化、互聯(lián)網(wǎng)技術(shù),相較于傳統(tǒng)方式,云計算具有規(guī)模大、虛擬化、可靠性高、通用性強(qiáng)、高可擴(kuò)展性和廉價的優(yōu)點。云計算技術(shù)使企業(yè)能夠快速擴(kuò)展和適應(yīng)業(yè)務(wù),加速創(chuàng)新,提高業(yè)務(wù)敏捷性,簡化運營,并降低成本。因此越來越多的服務(wù)和應(yīng)用遷移到云端。由于云計算廣闊的發(fā)展前景,吸引了眾多學(xué)者和工業(yè)界的注意力。在過去十年間,工業(yè)界涌現(xiàn)了一大批云服務(wù)器提供商(如Amazon Web Services(AWS)、Google Cloud Platform(GCP)和Microsoft Azure)[1]。
隨著容器化、面向服務(wù)和事件驅(qū)動的逐漸普及,云計算的范式由基礎(chǔ)設(shè)施即服務(wù)(IaaS)轉(zhuǎn)向容器即服務(wù)(CaaS)和平臺即服務(wù)(PaaS),再到函數(shù)即服務(wù)(FaaS)[2]。FaaS也被稱做serverless computing(無服務(wù)器計算),是指構(gòu)建和運行不需要服務(wù)器管理的應(yīng)用程序的概念,它描述了一種更細(xì)粒度的部署模型,應(yīng)用程序捆綁一個或多個無服務(wù)器函數(shù)上傳到平臺,然后執(zhí)行和計費,以響應(yīng)當(dāng)前所需的確切需求。由于無服務(wù)器函數(shù)的細(xì)粒度特性,其在按需付費、自動擴(kuò)展等方面具有優(yōu)勢。目前主要的云服務(wù)提供商都提供了FaaS平臺,諸如AWS Lambda、Google Cloud Functions和Azure Functions。在使用無服務(wù)器應(yīng)用時,傳統(tǒng)的應(yīng)用被分解為一些具有獨立功能的小型代碼單元,這些代碼單元被稱為函數(shù),F(xiàn)aaS提供事件驅(qū)動計算,并由事件或HTTP 請求觸發(fā)的函數(shù)來運行和管理應(yīng)用程序代碼。開發(fā)人員將代碼的小型單元部署到FaaS 平臺,這些代碼根據(jù)需要作為離散動作執(zhí)行,無須管理服務(wù)器或任何其他底層基礎(chǔ)設(shè)施即可進(jìn)行擴(kuò)展。從無服務(wù)器提供商獲得后端服務(wù)的用戶將根據(jù)計算量來付費。傳統(tǒng)的后端服務(wù)(服務(wù)器分配)模式經(jīng)常導(dǎo)致用戶為未使用的空間或空閑的CPU時間付費;由于無服務(wù)器計算是自動擴(kuò)展的,用戶不必預(yù)留和付費購買固定的帶寬或者服務(wù)器,這大大減少了用戶的開銷。同時,由于開發(fā)人員通過逐個添加和修改代碼來修復(fù)錯誤或發(fā)布新功能而不涉及復(fù)雜的部署,所以使得應(yīng)用無服務(wù)器架構(gòu)可以大大縮短產(chǎn)品上市的時間。
近些年來全球數(shù)字化浪潮蓬勃興起,截至2021年入網(wǎng)終端一年可產(chǎn)生高達(dá)847 ZB的數(shù)據(jù),這些數(shù)據(jù)呈現(xiàn)分散性、碎片化的特點,有超過50%的數(shù)據(jù)需要在網(wǎng)絡(luò)邊緣進(jìn)行處理[3]。傳統(tǒng)云計算模式雖然具有強(qiáng)大的數(shù)據(jù)處理能力,但是面對如此海量的數(shù)據(jù)以及網(wǎng)絡(luò)帶寬帶來的阻礙時,對實現(xiàn)計算的全面覆蓋,數(shù)據(jù)的就近分析處理以滿足實時性要求顯得力不從心。由于邊緣計算在減少延遲、降低開銷、提高效率方面相較于傳統(tǒng)云計算模式具有獨特的優(yōu)勢,所以受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,目前其已逐步成為了計算體系發(fā)展的新方向,整體上處于高速發(fā)展的新階段,正邁向?qū)嶋H部署。一些學(xué)者已經(jīng)嘗試將無服務(wù)器計算應(yīng)用于邊緣計算環(huán)境下:AWS IoT Greengrass允許在邊緣設(shè)備上運行AWS Lambda功能;Azure Functions提供了在物聯(lián)網(wǎng)設(shè)備上部署功能的指南,將其作為預(yù)發(fā)布功能;此外,一個基于OpenWhisk 的FaaS 邊緣計算開源項目已經(jīng)啟動,其將云服務(wù)器組織成一個分層的分布式體系結(jié)構(gòu),通過在地理上分布的云服務(wù)器上運行的多個功能的協(xié)作來提供服務(wù)[4,5]。
盡管無服務(wù)器計算在邊緣計算環(huán)境下應(yīng)用前景廣闊,但仍然存在許多問題阻礙其發(fā)展。在分布式的無服務(wù)器系統(tǒng)中,存在各類不同的計算節(jié)點,如何將不同類型的無服務(wù)器函數(shù)放置到不同的節(jié)點,以獲取相對較小的計算時延和相對較低的使用開銷是一個亟待解決的問題。
在現(xiàn)有的無服務(wù)器平臺上采用了不同的函數(shù)放置策略:在AWS Lambda平臺上執(zhí)行的操作表明,函數(shù)放置決策目前被視為裝箱問題,以最大限度提高虛擬機(jī)內(nèi)存利用率;Azure Functions采用一種分散的函數(shù)放置策略,該策略盡量將同一函數(shù)的不同并發(fā)實例放置到不同的虛擬機(jī)上[6];IBM OpenWhisk 使用基于散列的FirstFit 啟發(fā)式方法,該方法按函數(shù)類型聚合應(yīng)用程序執(zhí)行,旨在提高實例重用和緩存命中率[7];Docker Sarm采用了一種分散放置算法,該算法試圖將任務(wù)均勻分布在集群中的節(jié)點上。以上方法均不能很好地解決分布式無服務(wù)器系統(tǒng)中的函數(shù)放置問題。該問題建模和優(yōu)化的挑戰(zhàn)主要存在于以下三個方面:
a)由于無服務(wù)器函數(shù)細(xì)粒度的特性,無服務(wù)器函數(shù)放置的問題規(guī)模將大大增加,在邊緣云系統(tǒng)中各類節(jié)點以及用戶數(shù)量龐大,函數(shù)放置的問題規(guī)模將進(jìn)一步擴(kuò)大;b)用戶在使用無服務(wù)器應(yīng)用時,函數(shù)類型往往種類繁多,使用場景也不盡相同,這要求無服務(wù)器函數(shù)放置算法具有良好的動態(tài)適應(yīng)能力;c)由于用戶使用無服務(wù)器應(yīng)用時對實時性要求較高,這要求無服務(wù)器函數(shù)放置算法具有較高的效率,能在較短的時間內(nèi)精準(zhǔn)地完成函數(shù)放置任務(wù)。
為了解決以上問題,本文提出了基于用戶意圖的深度強(qiáng)化學(xué)習(xí)算法解決無服務(wù)器系統(tǒng)中的函數(shù)放置問題。首先建立分布式無服務(wù)器系統(tǒng)的MDP模型(MDP模型是強(qiáng)化學(xué)習(xí)理想的數(shù)學(xué)模型)用于強(qiáng)化學(xué)習(xí)算法的實現(xiàn),本文通過將無服務(wù)器系統(tǒng)建模為MDP數(shù)學(xué)模型,將強(qiáng)化學(xué)習(xí)算法應(yīng)用到函數(shù)放置的決策過程中;其次參數(shù)化對無服務(wù)器系統(tǒng)中用戶意圖的認(rèn)知,用戶意圖體現(xiàn)用戶的需求,對用戶意圖的清晰認(rèn)知有助于合理的強(qiáng)化學(xué)習(xí)獎勵函數(shù)的設(shè)計;最后將用戶意圖與強(qiáng)化學(xué)習(xí)算法結(jié)合的無服務(wù)器函數(shù)放置優(yōu)化算法,本文將研究其在決策過程中起到的相關(guān)作用。
1 相關(guān)工作
許多研究已經(jīng)嘗試了將無服務(wù)器架構(gòu)應(yīng)用于邊緣計算的環(huán)境中[8~18],因此許多邊緣計算領(lǐng)域的任務(wù)調(diào)度算法具有借鑒意義。在邊緣計算領(lǐng)域中,經(jīng)典任務(wù)調(diào)度算法如隨機(jī)調(diào)度算法、輪詢調(diào)度算法、最早調(diào)度算法以及通過它們改進(jìn)的一些算法適用范圍較廣[8,9]、邏輯簡單,在一些場景下可以獲得較好的性能,但其不能針對不同任務(wù)類型使用場景進(jìn)行改進(jìn),導(dǎo)致其使用時不夠靈活,不能完成對特定目標(biāo)的優(yōu)化。許多學(xué)者把任務(wù)調(diào)度看成是NP 完全問題,使用啟發(fā)式任務(wù)調(diào)度算法,例如粒子群優(yōu)化算法、遺傳算法、蟻群優(yōu)化算法和模擬退火算法[10~12]。這些啟發(fā)式算法可以針對特定的目標(biāo)進(jìn)行優(yōu)化,相比于經(jīng)典的任務(wù)調(diào)度算法,可以自適應(yīng)地改變自己的策略,但啟發(fā)式算法往往在實現(xiàn)上比較困難,程序運行時計算量較大,雖然在離線任務(wù)調(diào)度上已經(jīng)有了很好的應(yīng)用,但并不適合對延遲要求較高的實時在線函數(shù)放置。基于機(jī)器學(xué)習(xí)的調(diào)度算法常見的有基于深度學(xué)習(xí)、基于強(qiáng)化學(xué)習(xí)以及結(jié)合了兩者的基于深度強(qiáng)化學(xué)習(xí)的方法[13~17],在這一領(lǐng)域有眾多學(xué)者進(jìn)行了研究。這類調(diào)度算法是在近幾年興起的,算法的自適應(yīng)能力強(qiáng),調(diào)度效率高,能夠滿足無服務(wù)器函數(shù)放置的需求。Anupama同時從無服務(wù)器提供商和用戶兩個角度出發(fā),提出了一種無服務(wù)器函數(shù)放置策略(deadline based function placement,DBP) ,其目標(biāo)是最大限度地降低服務(wù)器提供商的資源消耗成本并同時滿足用戶的應(yīng)用需求,用是否在截止時間內(nèi)完成函數(shù)放置來表示是否完成用戶需求,但單單通過截止時間而不考慮用戶對于應(yīng)用成本的預(yù)期并不能很好地滿足用戶的需求[18]。Bermbach等人[19]提出了一種基于拍賣理論的函數(shù)放置策略,考慮了用戶請求的執(zhí)行成本和到達(dá)率,以最大化用戶在邊緣云和云數(shù)據(jù)中心上執(zhí)行無服務(wù)器函數(shù)放置的收益,但僅考慮了如何降低用戶的使用成本,忽視了用戶應(yīng)用程序的時延。類似地,Cheng等人[20]提出了以數(shù)據(jù)為中心的編程模型,用于根據(jù)數(shù)據(jù)上下文、系統(tǒng)上下文和使用上下文放置無服務(wù)器函數(shù)。同時其考慮了延遲和靈活性因素,研究的主要方向是減少延遲和面向數(shù)據(jù)的需求,但忽視了對用戶執(zhí)行成本的優(yōu)化。Xu等人[21]提出了基于MDP的函數(shù)放置算法,考慮了影響函數(shù)放置的多種因素,如放置開銷、不同函數(shù)種類對于放置的影響等,但其提出的函數(shù)放置算法在較為復(fù)雜的現(xiàn)實情況下適應(yīng)性較差。
上述研究給了本文很大啟發(fā),但這些研究仍然存在不足之處。上述算法中的大多數(shù)都僅僅從單方面考慮了時延或者能量消耗的優(yōu)化,將兩者結(jié)合的比較少見。由于實際情況的復(fù)雜性、多樣性和不確定性,深度強(qiáng)化學(xué)習(xí)很難應(yīng)用于實際場景。在學(xué)習(xí)過程中DRL智能體可以通過一定的行為策略選擇隨機(jī)的動作,這對于智能體探索動作狀態(tài)空間來說是必不可少的,然而在復(fù)雜系統(tǒng)與實際情況中,這些隨機(jī)動作有可能會對系統(tǒng)造成相當(dāng)嚴(yán)重的破壞。這些禁止的危險行為使智能體不可能積累后續(xù)狀態(tài)或?qū)W習(xí)如何避免潛在的嚴(yán)重威脅。在無服務(wù)器系統(tǒng)模型中對動作空間的探索也是如此,如若在智能體進(jìn)行探索時選擇一些不被接受的動作可能會對系統(tǒng)造成不可逆的損害或?qū)е路胖玫臅r延或開銷急劇增加。在復(fù)雜的現(xiàn)實環(huán)境中,人類專家在學(xué)習(xí)效率和決策表現(xiàn)方面具有顯著優(yōu)勢,最近的研究[22]表明,結(jié)合用戶意圖是增強(qiáng)DRL模型對復(fù)雜任務(wù)適應(yīng)性的潛在解決方案。為了解決上述問題并更好地利用用戶意圖,本文將深度強(qiáng)化學(xué)習(xí)算法DQN應(yīng)用到函數(shù)放置領(lǐng)域,提出了基于DQN的無服務(wù)器函數(shù)放置算法。本文考慮了時延、開銷以及用戶的意圖對于函數(shù)放置的影響,使得應(yīng)用無服務(wù)器服務(wù)的用戶可以在一定程度上影響函數(shù)放置的具體方位,從而達(dá)到令用戶更加滿意的函數(shù)放置效果。
2 研究方法
2013年谷歌的DeepMind團(tuán)隊將深度學(xué)習(xí)與Qlearning算法相結(jié)合[23],首次提出了DQN算法,該文借助深度學(xué)習(xí)來處理高維的視覺輸入,使得DQN算法可以玩Atari游戲。2015年的改進(jìn)版本中DeepMind團(tuán)隊提出了DQN的第一個改進(jìn)版本[24],提出了經(jīng)驗回放機(jī)制和雙網(wǎng)絡(luò)兩個重要技術(shù)。
a)經(jīng)驗回放機(jī)制(experience replay)。在強(qiáng)化學(xué)習(xí)中所得到的數(shù)據(jù)都是具有關(guān)聯(lián)性的,其并不符合深度學(xué)習(xí)中關(guān)于數(shù)據(jù)獨立性的要求,因此DQN算法在這里建立一個經(jīng)驗回放機(jī)制,當(dāng)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,從經(jīng)驗池里隨機(jī)抽取一個batch的經(jīng)驗用于當(dāng)前的訓(xùn)練,通過隨機(jī)抽取的操作打亂了原始數(shù)據(jù)的順序,將數(shù)據(jù)的關(guān)聯(lián)性減弱。經(jīng)過訓(xùn)練網(wǎng)絡(luò)獲得的數(shù)據(jù)又將通過轉(zhuǎn)換存入經(jīng)驗池中用于下一次訓(xùn)練中獲得新的經(jīng)驗。
b)建立兩個結(jié)構(gòu)一樣的神經(jīng)網(wǎng)絡(luò)。一直在更新神經(jīng)網(wǎng)絡(luò)參數(shù)的網(wǎng)絡(luò)和用于更新Q值的網(wǎng)絡(luò)TargetNet。由于DQN算法在進(jìn)行學(xué)習(xí)時會存在Q值不斷發(fā)生變化的情況,所以如果使用一組不斷移動的值(values)來更新Qnetwork,則價值估計可能會失去控制,最終導(dǎo)致算法的不穩(wěn)定。為了解決這個問題,目標(biāo)Q網(wǎng)絡(luò)TargetNet被用來緩慢地更新主Q網(wǎng)絡(luò)的值。這樣,目標(biāo)和估計Q值之間的相關(guān)性顯著降低,從而穩(wěn)定了算法。
傳統(tǒng)Qlearning算法因為Q表的維度限制,從而無法適用于狀態(tài)空間或者動作空間較大的任務(wù),DQN利用神經(jīng)網(wǎng)絡(luò)代替Q值函數(shù),在一定程度上解決了空間爆炸的問題。該算法首先用了一個帶參數(shù)的神經(jīng)網(wǎng)絡(luò)來擬合Q表中的Q值。在DQN中通過深度學(xué)習(xí)計算預(yù)測數(shù)據(jù)與標(biāo)簽數(shù)據(jù)的損失,并通過反向傳播計算梯度,通過隨機(jī)梯度下降等算法更新神經(jīng)網(wǎng)絡(luò)的參數(shù)。從而使神經(jīng)網(wǎng)絡(luò)逼近最優(yōu)動作值函數(shù),實現(xiàn)對強(qiáng)化學(xué)習(xí)最優(yōu)策略的學(xué)習(xí)。Qlearning 算法是一個基于價值的強(qiáng)化學(xué)習(xí)算法,其迭代計算的是動作值函數(shù)(Q函數(shù))對于一個確定策略π動作值函數(shù)定義為
Qπ(s,a)=Eπ[G(t)|S=s,A=a](1)
最優(yōu)策略π*定義為
π(a|s)=argmaxa∈AQ(s,a)(2)
因此找到一個最優(yōu)的策略π*就等價于找到了最優(yōu)的動作價值函數(shù)Qπ(s,a)。由貝爾曼方程可知最優(yōu)動作價值函數(shù)可寫為
Qπ(s,a)=Eπ[Rt+1+γ×maxa′Q(s′,a′)|S=s,A=a](3)
其中:0<γ<1是折扣率。最優(yōu)動作價值函數(shù)通過TD方法進(jìn)行迭代更新:
Q(s,a)←Q(s,a)+α[R(s,a)+γ(maxa′Q(s′,a′)-Q(s,a))](4)
由式(4)可以看出,其迭代目標(biāo)是最優(yōu)動作價值函數(shù),且與策略π無直接關(guān)聯(lián)。由于Qlearning算法在迭代的過程中要維護(hù)一個Q表,導(dǎo)致其在狀態(tài)空間較大的情況下,容易產(chǎn)生維數(shù)災(zāi)難問題。DQN算法通過一個帶有參數(shù)的神經(jīng)網(wǎng)絡(luò)來擬合Q函數(shù)即Q(s,a,θ)≈Q(s,a),θ是神經(jīng)網(wǎng)絡(luò)的權(quán)重,神經(jīng)網(wǎng)絡(luò)的輸入是狀態(tài)s,而輸出是相應(yīng)動作的Q值。另一個網(wǎng)絡(luò)被稱為targetnetwork(目標(biāo)網(wǎng)絡(luò)),在DQN算法中使用此網(wǎng)絡(luò)來計算Q函數(shù)更新的目標(biāo)。目標(biāo)網(wǎng)絡(luò)的參數(shù)θ′間隔一定的輪次與θ同步。這樣可以保證更新目標(biāo)不會因為參數(shù)更新而頻繁改變,進(jìn)而導(dǎo)致訓(xùn)練過程的不穩(wěn)定。DQN的損失函數(shù)可以定義為
L(θ)=[R(s,a)+γ×maxa′Q(s′,a′,θ′)-Q(s,a,θ)]2(5)
DQN算法將神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)結(jié)合起來,開創(chuàng)了深度強(qiáng)化學(xué)習(xí)的先河,引領(lǐng)了強(qiáng)化學(xué)習(xí)的發(fā)展方向,為強(qiáng)化學(xué)習(xí)的發(fā)展作出了重要貢獻(xiàn)。
3 系統(tǒng)模型
本文考慮了一個多用戶、多任務(wù)的無服務(wù)器函數(shù)放置系統(tǒng)模型,如圖1所示。在該系統(tǒng)模型中不同的用戶向無服務(wù)器系統(tǒng)發(fā)送不同的請求,這些請求用于構(gòu)建無服務(wù)器應(yīng)用。這些無服務(wù)器應(yīng)用通常可以分解為一系列的函數(shù),這些函數(shù)都是一些具有獨立功能的代碼塊。無服務(wù)器系統(tǒng)根據(jù)請求的不同以及函數(shù)的不同特點與需求,將函數(shù)放置到不同的計算節(jié)點上運行,以保證任意一個函數(shù)都放置到最佳位置,即綜合考慮函數(shù)放置的時延、放置開銷等因素之后的代價最小。
由于網(wǎng)絡(luò)邊緣數(shù)據(jù)量的激增,處理位于網(wǎng)絡(luò)邊緣的數(shù)據(jù)密集型應(yīng)用程序的需求正在挑戰(zhàn)流行的以云為中心的計算模式,將所有的計算任務(wù)分流到云數(shù)據(jù)中心可能不切實際或不可行,因為數(shù)據(jù)將不得不離開邊緣網(wǎng)絡(luò),從而導(dǎo)致隱私問題,或招致高延遲和帶寬使用。為了應(yīng)對這一變化本文提出了一個具有多種異構(gòu)計算節(jié)點的分層無服務(wù)器系統(tǒng)模型。
在無服務(wù)器系統(tǒng)模型中存在多種異構(gòu)的計算節(jié)點。終端設(shè)備作為網(wǎng)絡(luò)中靠近用戶的計算節(jié)點,是系統(tǒng)中數(shù)量最多且分布最為廣泛的節(jié)點。隨著硬件技術(shù)的不斷提高,這些終端設(shè)備也具有了可觀的計算能力,且一些具備特殊硬件加速器的終端設(shè)備在處理某些特定應(yīng)用時具有較大優(yōu)勢。充分利用這些本地資源不僅在一定程度上保障了數(shù)據(jù)的隱私,并且可以在一些特定的環(huán)境下大幅減少用戶的開銷與時延,減少數(shù)據(jù)傳輸?shù)膲毫亩纳朴脩舻氖褂皿w驗,但仍要看到的是其相較于云端仍在計算存儲能力等方面具有較大差距,并不能滿足所有任務(wù)的需求。云數(shù)據(jù)中心作為基于超級計算機(jī)構(gòu)建的計算系統(tǒng),其功能是對外提供計算資源和存儲資源等服務(wù)并以高性能計算機(jī)為基礎(chǔ),面向各個用戶提供高性能計算服務(wù)。邊緣設(shè)備位于該系統(tǒng)的中間層,其地理位置相較于云數(shù)據(jù)中心更貼近終端用戶。因此相較于云數(shù)據(jù)中心其具有相對較低的傳輸時延和開銷。
根據(jù)系統(tǒng)中異構(gòu)計算節(jié)點的不同特性,可以將其描述為
(Arch,Accelerator,CPU,MEM,Network)(6)
計算節(jié)點的CPU架構(gòu)使用Arch表示。在無服務(wù)系統(tǒng)中存在許多異構(gòu)的計算節(jié)點,這些節(jié)點具有不同的CPU架構(gòu)如X86、 ARM32 等,對于相同的無服務(wù)器函數(shù)在不同架構(gòu)的計算節(jié)點上運行需要不同的鏡像版本,并且由于架構(gòu)的不同其所需的計算存儲資源以及運行的時間可能不同。Accelerator表示計算節(jié)點存在何種硬件加速器,無服務(wù)器系統(tǒng)中的異構(gòu)設(shè)備都有各自獨特的功能,因此這些設(shè)備往往存在各類不同的硬件加速設(shè)備,這些加速器對于特定的無服務(wù)器函數(shù)的執(zhí)行是必不可少的或具有顯著的加速作用。CPU與MEM分別表示該計算節(jié)點的CPU核心數(shù)量以及運行內(nèi)存大小,這兩個參數(shù)衡量了計算節(jié)點的計算能力。Network表示該計算節(jié)點接入網(wǎng)絡(luò)的方式,不同的接入方式對于數(shù)據(jù)的傳輸速率與穩(wěn)定性相當(dāng)重要。
在無服務(wù)器系統(tǒng)模型中參考了OpenFaas工作流程。無服務(wù)器函數(shù)運行在系統(tǒng)的函數(shù)容器中,開發(fā)人員需要為這些容器構(gòu)建鏡像,構(gòu)建好的無服務(wù)器函數(shù)鏡像上傳到無服務(wù)器函數(shù)池中,用戶則通過FunctionRequest來調(diào)用這些無服務(wù)器函數(shù)。用戶上傳自己的無服務(wù)器函數(shù)到無服務(wù)器函數(shù)池,無服務(wù)器函數(shù)池負(fù)責(zé)擴(kuò)展和部署POD,這些將會提交給無服務(wù)器系統(tǒng)中的強(qiáng)化學(xué)習(xí)智能體模塊,這個模塊負(fù)責(zé)選擇集群中合適的節(jié)點進(jìn)行函數(shù)放置。
強(qiáng)化學(xué)習(xí)模塊在無服務(wù)器系統(tǒng)中扮演著調(diào)度器的角色,其任務(wù)是將一個個POD(無服務(wù)器系統(tǒng)中部署的原子單元分配給集群節(jié)點,POD可以是由一個或者多個容器組成的,它們共享存儲卷的網(wǎng)絡(luò)配置和元數(shù)據(jù)組成)調(diào)度到無服務(wù)器系統(tǒng)中進(jìn)行函數(shù)放置操作。類似于K8S的調(diào)度器,本文使用SFdelay來? 表示執(zhí)行用戶提交代碼的持續(xù)時間。每個無服務(wù)器函數(shù)的調(diào)用都以用戶發(fā)送的服務(wù)請求開始,下一個時間戳指示服務(wù)器的接收和隨后的轉(zhuǎn)發(fā),然后調(diào)用執(zhí)行該函數(shù)并將結(jié)果返回給用戶,用戶收到執(zhí)行結(jié)果后本輪調(diào)用結(jié)束。除了測量SFdelay還對CPU內(nèi)存網(wǎng)絡(luò)I/O進(jìn)行檢測,跟蹤了CPU的使用時間、內(nèi)存使用率和GPU負(fù)載等,這些信息將作為強(qiáng)化學(xué)習(xí)智能體衡量放置動作好壞的重要依據(jù)。
4 基于深度Q學(xué)習(xí)的無服務(wù)器函數(shù)放置算法
本文將無服務(wù)器函數(shù)放置性能優(yōu)化問題描述為MDP。MDP模型的環(huán)境包括幾個關(guān)鍵要素即狀態(tài)空間、動作空間以及獎勵函數(shù)。其中狀態(tài)空間代表了智能體所能感知到的環(huán)境信息,以及自身作出的動作給環(huán)境帶來的變化,狀態(tài)空間是智能體制定決策和評估長期收益的依據(jù)。對于本文研究的無服務(wù)器函數(shù)放置性能優(yōu)化問題,采用無服務(wù)器函數(shù)狀態(tài)信息以及無服務(wù)器系統(tǒng)中計算節(jié)點的信息來作為MDP環(huán)境中狀態(tài)信息的描述。強(qiáng)化學(xué)習(xí)智能體與無服務(wù)器系統(tǒng)交互如圖2所示。
4.1 狀態(tài)空間
無服務(wù)器函數(shù)狀態(tài)信息:
SF={FI,cI,mI,aI}(7)
FI={DdI,RuI}(8)
其中:FI代表此無服務(wù)器函數(shù)的函數(shù)鏡像FI∈F(全體鏡像集合),這些鏡像來自于開發(fā)人員的上傳,儲存在無服務(wù)器系統(tǒng)的函數(shù)池中當(dāng)無服務(wù)器系統(tǒng)接收到對應(yīng)服務(wù)請求時將其發(fā)送到對應(yīng)的計算節(jié)點;DdI表示計算節(jié)點在拉取該無服務(wù)器函數(shù)鏡像時需從函數(shù)池中下載的數(shù)據(jù)量;RuI表示計算節(jié)點在完成該無服務(wù)器函數(shù)的計算時需提交的日志信息、計算結(jié)果等數(shù)據(jù)量;cI代表著運行該無服務(wù)器函數(shù)所需的CPU資源數(shù);mI代表運行該無服務(wù)器函數(shù)所需的運行內(nèi)存資源數(shù),將服務(wù)器函數(shù)放置到計算節(jié)點將消耗該節(jié)點一定的CPU資源與運行內(nèi)存,當(dāng)該計算節(jié)點剩余資源不能滿足無服務(wù)器函數(shù)的請求時,將會導(dǎo)致無服務(wù)器函數(shù)無法立即運行,從而使其變?yōu)閽炱馉顟B(tài),在計算節(jié)點處等待運行從而產(chǎn)生額外的等待時間;aI代表運行該無服務(wù)器函數(shù)時對其具有加速效果的加速設(shè)備信息,這些加速設(shè)備專為特定任務(wù)設(shè)計其可以以相對較低的成本加速該類無服務(wù)器函數(shù)的運行。
無服務(wù)器系統(tǒng)中計算節(jié)點的狀態(tài)信息:
SN={UJ,DJ,CJ,MJ,F(xiàn)LJ,COSTJ,AJ}(9)
該節(jié)點的網(wǎng)絡(luò)信息上傳速度與下載速度為UJ、DJ,這兩個參數(shù)衡量了該計算節(jié)點的網(wǎng)絡(luò)狀況,下載速度關(guān)系到計算節(jié)點拉取無服務(wù)器鏡像的速度,當(dāng)本地并沒有該無服務(wù)器函數(shù)鏡像時,計算節(jié)點需要從系統(tǒng)中拉取無服務(wù)器鏡像,上傳速度則與上傳無服務(wù)器函數(shù)日志信息以及計算結(jié)果等相關(guān);在無服務(wù)器函數(shù)放置系統(tǒng)中其上下行傳輸速率主要指其與云數(shù)據(jù)中心之間進(jìn)行數(shù)據(jù)傳輸?shù)乃俾剩?/p>
其中:BJ表示計算節(jié)點J的帶寬;PuJ表示計算節(jié)點J的數(shù)據(jù)傳輸功率;HJ表示其在無線信道中的信道增益;H0表示信道中的噪聲功率;gu表示目標(biāo)誤碼率;Γ(gu)表示滿足上述鏈路誤碼率的信噪比余量;d表示計算節(jié)點與數(shù)據(jù)中心的鏈路長度;ε表示傳輸信道路徑的損耗指數(shù)。類似地可以計算:
該節(jié)點的可用計算資源信息為CJ、MJ,當(dāng)智能體在選擇合適的計算節(jié)點進(jìn)行函數(shù)放置時需要考慮的就是該計算節(jié)點的計算剩余資源是否可以滿足該無服務(wù)器函數(shù)的資源請求,如若滿足請求則無須進(jìn)行等待直接運行該無服務(wù)器函數(shù),否則無服務(wù)器函數(shù)進(jìn)入掛起狀態(tài);某一時刻t,該計算節(jié)點可用資源信息可表示為
其中:CPUJ、MEMJ分別代表計算節(jié)點J所擁有的CPU與運行內(nèi)存資源總量;It表示在t時刻該計算節(jié)點上運行的無服務(wù)器函數(shù)的集合。
該節(jié)點的函數(shù)鏡像列表FLJ,這個參數(shù)是指該計算節(jié)點已經(jīng)從系統(tǒng)中下載的函數(shù)鏡像信息,當(dāng)有新的放置請求時應(yīng)首先判斷是否有鏡像存在該計算節(jié)點的函數(shù)鏡像列表,如果不存在則需要重新下載。
COSTJ={μJ,κJ,ηJ,νJ}(14)
節(jié)點的資源使用單價信息COSTJ,該參數(shù)定義了使用該計算節(jié)點需要向無服務(wù)器服務(wù)提供商支付的費用,本文在這里參照AWS的定價規(guī)則制定相關(guān)使用價格;μJ表示通信鏈路使用單價;κJ表示CPU資源使用單價;ηJ表示運行內(nèi)存使用單價;νJ表示加速器使用單價;AJ表示節(jié)點上的可用加速設(shè)備信息,在每個計算節(jié)點上存在一個或多個加速設(shè)備,這些加速設(shè)備或是GPU、TPU或是其他設(shè)備,這些加速設(shè)備對于特定無服務(wù)器函數(shù)的處理具有加速作用。
4.2 動作空間
在強(qiáng)化學(xué)習(xí)中,動作空間定義了智能體可選擇動作的集合。在智能體進(jìn)行函數(shù)放置決策時,需要考慮將無服務(wù)器函數(shù)放置到某個計算節(jié)點以獲得獎賞,在該模型中可以將動作空間定義為各類可用計算節(jié)點的集合。
Action∈[n1,n2,…,ni](15)
4.3 獎勵函數(shù)
獎勵函數(shù)是強(qiáng)化學(xué)習(xí)中極其重要的一環(huán),通過將任務(wù)目標(biāo)具體化與數(shù)值化,實現(xiàn)了目標(biāo)與算法之間的溝通,決定了智能體最終是否能夠?qū)W到期望的技能,達(dá)到事先預(yù)想的放置效果。在無服務(wù)器函數(shù)放置模型中,獎勵函數(shù)決定了對某個放置動作的具體評價,智能體根據(jù)這些評價最終確定放置動作的優(yōu)劣。
時延模型為
SFD=TD+CD+WD(16)
其中:
其中:CD表示無服務(wù)函數(shù)放置到計算節(jié)點上運行產(chǎn)生的時間開銷;TD如若智能體選擇的放置節(jié)點上原本不存在該無服務(wù)器函數(shù)的鏡像,那么需要其從函數(shù)池中下載該鏡像,此時會產(chǎn)生一定的傳輸時延,相當(dāng)一部分無服務(wù)器函數(shù)在完成函數(shù)的運行之后需要向用戶返回其計算結(jié)果,這些計算的結(jié)果反饋給用戶也會產(chǎn)生一部分的時延開銷;WD在智能體選擇計算節(jié)點進(jìn)行放置時,該時隙內(nèi)選擇的計算節(jié)點可能會存在資源已被占用的問題,需要等待,可用資源數(shù)量滿足該無服務(wù)器函數(shù)的需求才能進(jìn)行正常的函數(shù)放置,故此時無服務(wù)函數(shù)處于掛起狀態(tài),產(chǎn)生了一部分的等待時延。
開銷模型為
其中:UDC表示無服務(wù)器函數(shù)鏡像下載開銷結(jié)果及運行日志上傳開銷等;AC表示當(dāng)該計算節(jié)點恰好擁有無服務(wù)器函數(shù)所需的硬件加速設(shè)備時,在進(jìn)行函數(shù)放置后需要計算使用硬件加速器設(shè)備的開銷;CC與MC分別表示無服務(wù)函數(shù)放置在計算節(jié)點上時占用的CPU資源與運行內(nèi)存資源的開銷。
用戶意圖是用戶在選擇無服務(wù)器函數(shù)放置節(jié)點時根據(jù)自身認(rèn)知、心理感受等因素對無服務(wù)器函數(shù)放置效果的具有個人傾向性的預(yù)估。本文基于不同用戶的使用經(jīng)驗建模用戶意圖并對用戶意圖進(jìn)行學(xué)習(xí),以強(qiáng)化無服務(wù)器函數(shù)放置模型?;谟脩粢鈭D的獎勵函數(shù)設(shè)置為
其中:ΔC、ΔD分別表示基于用戶使用經(jīng)驗設(shè)置的開銷、時延閾值,超過此閾值則認(rèn)為在該次無服務(wù)器函數(shù)放置任務(wù)中用戶沒有獲得符合其預(yù)期的良好使用體驗。當(dāng)該次放置任務(wù)中無服務(wù)器函數(shù)放置的時延消耗大于時延閾值時,由于該次任務(wù)產(chǎn)生超出用戶預(yù)期的時間消耗,所以給予該次放置動作PenatlyD的懲罰;當(dāng)該次放置任務(wù)中無服務(wù)器函數(shù)放置的開銷大于開銷閾值時,該次任務(wù)產(chǎn)生超出用戶預(yù)期的開銷,所以對于該次放置動作給予PenatlyC的懲罰。此外,不同用戶對于無服務(wù)器函數(shù)放置時延及開銷的重視程度也不盡相同,所以對于這兩項指標(biāo)公式中采用權(quán)重系數(shù)α與1-α表示開銷、時延的重要性權(quán)重。
4.4 基于DQN的無服務(wù)器函數(shù)放置算法
4.1、4.2、4.3節(jié)分別介紹了無服務(wù)器函數(shù)放置模型中的狀態(tài)空間、動作空間、獎勵函數(shù)的設(shè)置。在基于DQN的無服務(wù)器函數(shù)放置算法中,智能體通過觀測所處環(huán)境得到狀態(tài)信息,并根據(jù)這些狀態(tài)信息和智能體的策略選擇動作空間中的相應(yīng)動作,最后從環(huán)境中得到一定的獎勵?;贒QN的無服務(wù)器函數(shù)放置算法通過最大化智能體從環(huán)境中得到的獎勵,來選擇最優(yōu)的函數(shù)放置行為。
算法1 基于DQN的函數(shù)放置算法
輸入:
user intent factor α, time delay threshold ΔD,cost threshold ΔC,serverless functions set F。
初始化:
serverless function f upload to serverless functions pool
initialize the experience replay D with capacity N
initialize policy network Q with parameter δ
initialize target network Q′ with parameter δ′=δ
for 1→M do
observe serverless state, initialize state information S1={x1},φ1=φ(s1)
for t=1,1-T do
randomly select with a ε chance to functions place actions;
otherwise, choose the action with the greatest value according to at=max aQ(s,a,δ)
to perform an action at, calculate the placement reward according to Rt=α×(ΔCOST-SFCOST)+(1-α)×(Δdelay-SFdelay)and update state xt+1;
updated the serverless system state st+1=st, set up the at,xt+1,pretreatment φt+1=φ(st+1);
store transition(φt,at,Rt,φt+1) into experience replay D;
take a random transition (φj,aj,Rj,φj+1)from D;
在基于DQN的無服務(wù)器函數(shù)放置算法中,完成對神經(jīng)網(wǎng)絡(luò)和經(jīng)驗回放池的初始化工作之后開始進(jìn)行深度強(qiáng)化學(xué)習(xí)的迭代過程。該算法中使用ε貪心算法:以ε的概率選擇隨機(jī)動作,以1-ε的概率根據(jù)公式at=maxaQ(φ(st),a;δ)選擇Q值最大的動作。對ε使用退火算法,使其逐漸從0.99減小至0.01,使得該算法在一開始可以盡可能多地進(jìn)行探索,獲取更多的經(jīng)驗以存儲到經(jīng)驗回放池中;而后慢慢地減少選擇動作的隨機(jī)性,使算法獲得更好的收斂效果。在經(jīng)驗回放池中存儲的是智能體與環(huán)境交互產(chǎn)生的經(jīng)驗,并在使用時對其進(jìn)行隨機(jī)抽樣,減少了數(shù)據(jù)之間的關(guān)聯(lián)性,使數(shù)據(jù)之間處于近似獨立同分布的狀態(tài)以滿足神經(jīng)網(wǎng)絡(luò)的要求。使用從經(jīng)驗回放池中采樣而得到的數(shù)據(jù)首先計算目標(biāo)值yj,結(jié)合策略網(wǎng)絡(luò)輸出的Q(φj,aj,δ)根據(jù)公式(yj-Q(φj,aj,δ))2對策略網(wǎng)絡(luò)進(jìn)行梯度下降并更新策略網(wǎng)絡(luò)參數(shù)δ。為了使目標(biāo)值yj保持相對穩(wěn)定有利于算法收斂,算法間隔C步同步策略網(wǎng)絡(luò)參數(shù)和目標(biāo)網(wǎng)絡(luò)參數(shù)。最后算法輸出可用于完成無服務(wù)器函數(shù)放置任務(wù)的神經(jīng)網(wǎng)絡(luò)Q。
5 仿真實驗
5.1 實驗配置
本文基于FaaSSim[25]開發(fā)了無服務(wù)器函數(shù)放置仿真系統(tǒng),該系統(tǒng)使用了Ether[26]來生成網(wǎng)絡(luò)拓?fù)?。Ether 是一種綜合了不同條件下邊緣計算系統(tǒng)基礎(chǔ)設(shè)施配置的框架,其中包含了許多對應(yīng)不同邊緣系統(tǒng)特征的邊緣設(shè)備;Ether可應(yīng)用于配置不同的邊緣網(wǎng)絡(luò)架構(gòu)以幫助研究人員對于不同場景下的邊緣系統(tǒng)進(jìn)行評估。本文使用Ether模擬了云邊端的分層無服務(wù)器系統(tǒng),在該系統(tǒng)中存在大量異構(gòu)的網(wǎng)絡(luò)節(jié)點,其配置如表1所示。
實驗中采用的預(yù)制場景為城市感知場景,城市感知是一種智慧城市的概念,為市民和政府部門提供環(huán)境和背景城市數(shù)據(jù)。在該場景下每個節(jié)點是一個具有兩個SBC(single board computers)的物聯(lián)網(wǎng)計算小區(qū),并連接到附近的移動基站(移動基站由具有Intel NUC作為存儲節(jié)點的移動基站的計算箱組成)。此外每個節(jié)點配置了兩個嵌入式GPU設(shè)備用于處理視頻任務(wù),這些單元通過移動網(wǎng)絡(luò)連接到Internet,并且該場景還提供了光纖連接的Cloudlet。本文采用Ether工具構(gòu)建的城市感知場景來評估基于不同的無服務(wù)器函數(shù)放置策略。
本文使用了多種無服務(wù)器函數(shù)負(fù)載,這些無服務(wù)器函數(shù)可以應(yīng)用于不同的任務(wù)需求,其在一定程度上可以代表不同種類的無服務(wù)器函數(shù)對于系統(tǒng)資源的請求,本文使用的無服務(wù)函數(shù)負(fù)載如表2所示。
5.2 實驗結(jié)果
基于DQN的無服務(wù)器函數(shù)放置算法智能體訓(xùn)練結(jié)果如圖3所示??梢钥吹剑诨贒QN的無服務(wù)器函數(shù)放置算法剛開始運行時,由于智能體作出大量隨機(jī)的探索動作,導(dǎo)致其函數(shù)放置的效果較差,獲得獎勵數(shù)值較小。隨著訓(xùn)練輪數(shù)的增加,該智能體較好地學(xué)習(xí)了如何進(jìn)行函數(shù)放置以得到最好的獎勵,在訓(xùn)練輪次達(dá)到700輪左右時智能體已經(jīng)學(xué)習(xí)到了所需的函數(shù)放置策略。
圖4、5分別是該算法訓(xùn)練中時延及開銷變化圖,前700輪的訓(xùn)練中智能體作出隨機(jī)動作以探索狀態(tài)—動作空間,700輪之后智能體學(xué)習(xí)到相應(yīng)策略,此時時延與開銷開始穩(wěn)定。從圖中可以看出,時延與開銷相較于訓(xùn)練初始時分別下降了約45%與40%。
圖6是不同算法下函數(shù)放置時延與開銷的結(jié)果對比。圖中四種函數(shù)放置算法分別為skippyopt算法[24]、遺傳算法(GA)[12]、基于DQN的無服務(wù)器函數(shù)放置算法、隨機(jī)函數(shù)放置算法。從實驗效果可知,相較于僅單方面考慮時延需求的skippyopt算法,本文算法可在增加相對較少延遲的情況下,在減少開銷方面獲得巨大提升;并且可以看到,無論在時延還是開銷方面都優(yōu)于算法隨機(jī)函數(shù)放置算法;遺傳算法雖然可以在放置開銷與時延取得相對優(yōu)越的放置效果,但由于其受計算復(fù)雜度影響,當(dāng)無服務(wù)器系統(tǒng)較復(fù)雜情況下求解時間將急劇增加。表3為不同無服務(wù)器系統(tǒng)計算復(fù)雜度下兩種算法的求解時間對比(F為無服務(wù)器系統(tǒng)中計算節(jié)點個數(shù),K為無服務(wù)器系統(tǒng)中待放置服務(wù)數(shù)量)。
圖7為不同用戶意圖下時延與開銷訓(xùn)練效果圖。在該實驗中,設(shè)置不同的獎勵函數(shù)參數(shù)以模擬用戶意圖對于函數(shù)放置的影響。從圖中可以看出,用戶1希望獲得價格相對較低的無服務(wù)器服務(wù),但對于單價較低的硬件設(shè)備來說,其計算效率往往也較低,并且可能也不存在相應(yīng)的硬件加速設(shè)備,因此其完成同一計算任務(wù)會花費更多的時間;相比較而言,用戶2則更在乎使用體驗,希望獲得延遲更低的服務(wù),則該算法為其選擇計算能力更強(qiáng),且具有相應(yīng)硬件加速設(shè)備的計算節(jié)點,但正因為如此,他也需要為此付出更多費用。參數(shù)設(shè)置如表4所示。實驗結(jié)果顯示該算法能較好地完成基于用戶意圖的函數(shù)放置決策。
6 結(jié)束語
隨著無服務(wù)計算和邊緣計算的快速發(fā)展,如何將無服務(wù)器應(yīng)用部署到邊緣計算系統(tǒng)正在成為一個新的熱點領(lǐng)域。需要首先解決的問題是,如何將無服務(wù)器函數(shù)最優(yōu)地放置到邊緣計算的各個計算節(jié)點上去,使得無服務(wù)器函數(shù)放置所需的函數(shù)放置時延與放置開銷符合用戶意圖。本文提出了基于DQN 的無服務(wù)器函數(shù)放置算法,在一定程度上解決了無服務(wù)器應(yīng)用在邊緣計算系統(tǒng)中函數(shù)放置問題?;贒QN的無服務(wù)器函數(shù)放置算法考慮到了用戶意圖對于函數(shù)放置位置的影響,在算法中將對于用戶意圖的完成程度作為強(qiáng)化學(xué)習(xí)獎勵的一部分,完成了對于用戶意圖的學(xué)習(xí),從而達(dá)到了令用戶滿意的函數(shù)放置效果;本文將深度強(qiáng)化學(xué)習(xí)算法DQN 應(yīng)用到無服務(wù)器函數(shù)放置領(lǐng)域,一定程度上避免了傳統(tǒng)強(qiáng)化學(xué)習(xí)方法產(chǎn)生的維數(shù)災(zāi)難問題。實驗表明該算法相較于隨機(jī)函數(shù)放置算法和輪詢函數(shù)放置算法,在函數(shù)放置效果方面具有優(yōu)勢。
本文對于無服務(wù)器應(yīng)用在邊緣計算系統(tǒng)中的部署問題考慮仍存在不足。首先,在無服務(wù)器應(yīng)用中不同的函數(shù)應(yīng)具有不同的執(zhí)行關(guān)系,它們之間的關(guān)系可以用DAG圖表示[27],在本文并未對其進(jìn)行考慮;其次,在進(jìn)行函數(shù)放置時由于計算節(jié)點資源不足或由于數(shù)據(jù)傳輸時延等問題,導(dǎo)致函數(shù)不能正常運行的情況尚未進(jìn)行考慮;最后,本文并沒有對所提出的無服務(wù)器函數(shù)放置模型系統(tǒng)驗證其優(yōu)越性,仍需大量實驗來評估所提系統(tǒng),并對其進(jìn)行改進(jìn)和創(chuàng)新。
參考文獻(xiàn):
[1]Senyo P K, Addae E, Boateng R. Cloud computing research: a review of research themes, frameworks, methods and future research directions[J].International Journal of Information Management,2018,38(1):128-139.
[2]Varghese B, Buyya R. Next generation cloud computing:new trends and research directions[J].Future Generations Computer Systems,2018,79:849-861.
[3]王哲.邊緣計算發(fā)展現(xiàn)狀與趨勢展望[J].自動化博覽,2021,38(2):22-29.(Wang Zhe. Development status and trend prospect of edge computing[J].Automation Expo,2021,38(2):22-29.)
[4]Glikson A, Nastic S, Dustdar S. Deviceless edge computing:extending serverless computing to the edge of the network[C]//Proc of the 10th ACM International Systems and Storage Conference.New York:ACM Press,2017:article No.28.
[5]Jeon H, Cho C, Shin S, et al. A CloudSimextension for simulating distributed functionsasaservice[C]//Proc of the 20th International Conference on Parallel and Distributed Computing,Applications and Technologies.Piscataway,NJ:IEEE Press,2019:386-391.
[6]Wang Liang, Li Mengyuan, Zhang Yinqian, et al. Peeking behind the curtains of serverless platforms[C]//Proc of USENIX Annual Technical Conference.[S.l.]:USENIX Association,2018:133-145.
[7]Stein M. Adaptive event dispatching in serverless computing infrastructures[EB/OL].(2019-01-10).https://arxiv.org/abs/1901.03086.
[8]Shi Xuelin, Zhao Ying. Stochastic model and evolutionary optimization algorithm for grid scheduling[C]//Proc of the 7th International Conference on Fuzzy Systems & Knowledge Discovery.Piscataway,NJ:IEEE Press,2010:424-428.
[9]Xu Zongyu, Wang Xingxuan. A predictive modified round robin scheduling algorithm for web server clusters[C]//Proc of the 34th Chinese Control Conference.Piscataway,NJ:IEEE Press,2015:5804-5808.
[10]Rahbari D, Kabirzadeh S, Nickray M. A security aware scheduling in fog computing by hyper heuristic algorithm[C]//Proc of the 3rd Iranian Conference on Intelligent Systems & Signal Processing.Piscataway,NJ:IEEE Press,2017:87-92.
[11]Wang Tingting , Liu Zhaobin, Chen Yi, et al. Load balancing task scheduling based on genetic algorithm in cloud computing[C]//Proc of the 12th IEEE International Conference on Dependable,Autonomic and Secure Computing.Piscataway,NJ:IEEE Press,2014:146-152.
[12]Du Chen, Chen Yifan, Li Zhiyong, et al. Joint optimization of offloading and communication resources in mobile edge computing[C]//Proc of IEEE Symposium Series on Computational Intelligence.Piscataway,NJ:IEEE Press,2019:2729-2734.
[13]Wei Ziling, Zhao Baokang, Su Jinshu, et al. Dynamic edge computation offloading for Internet of Things with energy harvesting: a learning method[J].IEEE Internet of Things Journal, 2018, 6(3): 4436-4447.
[14]Yang Tianyu, Hu Yulin, Gursoy M C, et al. Deep reinforcement learning based resource allocation in low latency edge computing networks[C]//Proc of the 15th International Symposium on Wireless Communication Systems.Piscataway,NJ:IEEE Press,2018:1-5.
[15]Liu Yi, Yu Huimin, Xie Shengli, et al. Deep reinforcement learning for offloading and resource allocation in vehicle edge computing and networks[J].IEEE Trans on Vehicular Technology,2019,68(11):11158-11168.
[16]鄺祝芳,陳清林,李林峰,等.基于深度強(qiáng)化學(xué)習(xí)的多用戶邊緣計算任務(wù)卸載調(diào)度與資源分配算法[J].計算機(jī)學(xué)報,2022,45(4):812-824.(Kuang Zhufang, Chen Qinglin, Li Linfeng, et al. Multiuser edge computing task unloading scheduling and resource allocation algorithm based on deep reinforcement learning[J].Chinese Journal of Computers,2022,45(4):812-824.)
[17]尚玉葉,袁家斌.深空環(huán)境中基于云邊端協(xié)同的任務(wù)卸載方法[J].計算機(jī)科學(xué),2023,50(2):80-88.(Shang Yuye, Yuan Jiabin. Task unloading method based on cloud edge collaboration in deep space environment[J].Computer Science,2023,50(2):80-88.)
[18]Mampage A, Karunasekera S, Buyya R. Deadlineaware dynamic resource management in serverless computing environments[C]//Proc of the 21st IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing.Piscataway,NJ:IEEE Press,2021:483-492.
[19]Bermbach D, Maghsudi S, Hasenburg J, et al. Towards auctionbased function placement in serverless fog platforms[C]//Proc of IEEE International Conference on Fog Computing.Piscataway,NJ:IEEE Press,2020:25-31.
[20]Cheng Bin, Fürst J, Solmaz G, et al. Fog function: serverless fog computing for data intensive IoT services[C]//Proc of International Conference on Services Computing.Piscataway,NJ:IEEE Press,2019:28-35.
[21]Xu Donghong, Sun Zhongbin. An adaptive function placement in serverless computing[J].Cluster Computing,2022,25(5):3161-3174.
[22]Byk E, Losey D P, Palan M, et al. Learning reward functions from diverse sources of human feedback:optimally integrating demonstrations and preferences[EB/OL].(2021-08-04).https://arxiv.org/abs/2006.14091.
[23]Mnih V, Kavukcuoglu K, Silver D, et al. Playing Atari with deep reinforcement learning[EB/OL].(2013-12-19).https://arxiv.org/abs/1312.5602.
[24]Mnih V, Kavukcuoglu K, Silver D, et al. Humanlevel control through deep reinforcement learning[J].Nature,2015,518(7540):529-533.
[25]Rausch T, Rashed A, Dustdar S. Optimized container scheduling for dataintensive serverless edge computing[J].Future Generation Computer Systems,2021,114:259-271.
[26]Rausch T, Lachner C, Frangoudis P A, et al. Synthesizing plausible infrastructure configurations for evaluating edge computing systems[C]//Proc of the 3rd USENIX Workshop on Hot Topics in Edge Computing.2020.
[27]Lin Changyuan, Khazaei H. Modeling and optimization of performance and cost of serverless applications[J].IEEE Trans on Parallel and Distributed Systems,2020,32(3):615-632.