高明 陳國(guó)揚(yáng)
摘 要:隨著邊緣計(jì)算的不斷發(fā)展,其在資源管理配置方面逐漸出現(xiàn)相關(guān)問(wèn)題,無(wú)服務(wù)器計(jì)算作為一種新的方式可以有效解決邊緣計(jì)算的相關(guān)問(wèn)題。然而,無(wú)服務(wù)器計(jì)算不具備在分布式邊緣場(chǎng)景中高效處理請(qǐng)求所需服務(wù)負(fù)載調(diào)度的能力,針對(duì)這一問(wèn)題,提出了一種基于無(wú)服務(wù)器邊緣計(jì)算的服務(wù)負(fù)載調(diào)度算法(service load scheduling algorithm,SLSA)。SLSA的核心是通過(guò)隱式建模充分考慮了動(dòng)態(tài)變化的節(jié)點(diǎn)狀態(tài)、負(fù)載調(diào)度器放置等影響因素來(lái)優(yōu)化整體時(shí)延,然后通過(guò)改進(jìn)的平滑加權(quán)輪詢調(diào)度(smooth weighted round robin,SWRR)算法進(jìn)行服務(wù)調(diào)度。經(jīng)仿真實(shí)驗(yàn)分析,SLSA在資源消耗上有著明顯下降,同時(shí)在單城市場(chǎng)景與多城市場(chǎng)景下均有良好的性能表現(xiàn),其中在單城市場(chǎng)景中相對(duì)于集中式輪詢調(diào)度(round robin centralized,RRC)算法提升了43.01%,在多城市場(chǎng)景中提升了53.81%。實(shí)驗(yàn)結(jié)果表明,SLSA可以有效降低資源消耗率并提升性能。
關(guān)鍵詞:邊緣計(jì)算; 無(wú)服務(wù)器計(jì)算; 負(fù)載調(diào)度; 性能對(duì)比
中圖分類號(hào):TP393?? 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2024)03-024-0811-07
doi:10.19734/j.issn.1001-3695.2023.07.0295
Service load scheduling algorithm based on serverless edge computing
Gao Ming, Chen Guoyang
(School of Information & Electronic Engineering, Zhejiang Gongshang University, Hangzhou 310018, China)
Abstract:With the continuous development of edge computing, there are gradually related problems in resource management and configuration. As a new way, serverless computing can effectively solve the related problems of edge computing. However, serverless computing does not have the ability to efficiently process requests in distributed edge scenarios. To solve this problem, this paper proposed a service load scheduling algorithm(SLSA) based on serverless edge computing. The core of SLSA was to fully consider the dynamic changes of node status, load scheduler placement and other influencing factors through implicit modeling to optimize the overall delay, and then used the improved smooth weighted round robin(SWRR) scheduling algorithm for service scheduling. The simulation results show that SLSA has a significant reduction in resource consumption, and has good performance in both single-city scenarios and multi-city scenarios. In the single-city scenario, SLSA is 43.01% higher than the RRC algorithm. It improves 53.81% in multi-city scenarios. Experimental results show that SLSA can effectively reduce the resource consumption rate and improve the performance.
Key words:edge computing; serverless computing; load scheduling; performance comparison
0 引言
隨著大量互聯(lián)網(wǎng)應(yīng)用(如虛擬現(xiàn)實(shí)、人工智能等)的不斷發(fā)展,數(shù)據(jù)量日益增長(zhǎng),由于網(wǎng)絡(luò)遠(yuǎn)距離傳輸?shù)牟淮_定性,云計(jì)算這種集中處理模式對(duì)于那些實(shí)時(shí)性和可靠性要求比較高的應(yīng)用場(chǎng)景非常不適用[1]。邊緣計(jì)算在此背景下應(yīng)運(yùn)而生,它在靠近用戶側(cè)的網(wǎng)絡(luò)邊緣部署云計(jì)算環(huán)境,就近處理數(shù)據(jù)和計(jì)算任務(wù),可以有效處理大量任務(wù)需求,相比于傳統(tǒng)的云計(jì)算更高效、更安全[2]。但也正是由于邊緣計(jì)算靠近數(shù)據(jù)源頭,其工作環(huán)境更為復(fù)雜,存在大量的分布式異構(gòu)設(shè)備和資源,這為管理和維護(hù)這些設(shè)備以確保它們的正常運(yùn)行和安全性帶來(lái)了極大的困難。此時(shí),無(wú)服務(wù)計(jì)算(serverless computing)[3]進(jìn)入業(yè)界視線當(dāng)中。無(wú)服務(wù)計(jì)算是指在構(gòu)建和應(yīng)用程序時(shí)不需要管理服務(wù)器的一種計(jì)算范式,它描述了細(xì)粒度部署模型,由一個(gè)或多個(gè)函數(shù)組成的應(yīng)用可上傳到平臺(tái),并執(zhí)行、擴(kuò)縮容和基于實(shí)際運(yùn)行時(shí)的資源消耗及進(jìn)行計(jì)費(fèi)[4]。無(wú)服務(wù)器計(jì)算并不是沒(méi)有服務(wù)器,Serverless架構(gòu)的背后依然是虛擬機(jī)和容器,只不過(guò)服務(wù)器部署、runtime安裝、編譯等工作,都由Serverless平臺(tái)負(fù)責(zé)完成,對(duì)開(kāi)發(fā)人員來(lái)說(shuō),只需維護(hù)源代碼和Serverless執(zhí)行環(huán)境的相關(guān)配置即可。同時(shí),相比于基礎(chǔ)設(shè)施即服務(wù)(infrastructure as a service,IaaS)、平臺(tái)即服務(wù)(platform as a service,PaaS)等計(jì)算架構(gòu),Serverless計(jì)算架構(gòu)能提供更細(xì)粒度的資源管理和部署模型,通過(guò)計(jì)算資源的按需分配,實(shí)現(xiàn)計(jì)算資源的動(dòng)態(tài)調(diào)整和高效利用[5]。
基于該思路,業(yè)界逐漸意識(shí)到邊緣計(jì)算和無(wú)服務(wù)器計(jì)算融合的價(jià)值和必要性[6]。邊緣設(shè)備上的計(jì)算和存儲(chǔ)資源是相對(duì)有限的,且在傳統(tǒng)的邊緣計(jì)算框架下,用戶仍然承擔(dān)著繁重的資源配置和管理負(fù)擔(dān),因此迫切需要一種方法來(lái)有效利用邊緣資源。無(wú)服務(wù)器計(jì)算提供了一種新的方式,基于輕量級(jí)抽象(含容器、Unikernel等),Serverless 會(huì)滿足較小的占用空間,細(xì)粒度自動(dòng)擴(kuò)縮容,因此創(chuàng)建/終止副本的開(kāi)銷相對(duì)是非常小的[7]。同時(shí),將無(wú)服務(wù)器計(jì)算集成到邊緣計(jì)算場(chǎng)景中,可以讓應(yīng)用在使用邊緣計(jì)算資源時(shí)不考慮運(yùn)行環(huán)境、負(fù)載均衡和可擴(kuò)展性,從而有效提高邊緣資源的利用率,為用戶提供更靈活的服務(wù)。
隨著兩者進(jìn)一步的融合,無(wú)服務(wù)器邊緣計(jì)算的概念也隨之提出[6]。但是,無(wú)服務(wù)器計(jì)算設(shè)計(jì)的初衷是為云計(jì)算服務(wù)的,將其應(yīng)用在邊緣計(jì)算場(chǎng)景中仍存在挑戰(zhàn)。邊緣計(jì)算的基礎(chǔ)設(shè)施資源是受限且異構(gòu)的,每個(gè)邊緣計(jì)算節(jié)點(diǎn)會(huì)對(duì)所部署的服務(wù)類型具有限制,無(wú)服務(wù)器計(jì)算不具備在分布式邊緣場(chǎng)景中高效處理請(qǐng)求所需服務(wù)負(fù)載調(diào)度的能力[1]。因此,在無(wú)服務(wù)器邊緣計(jì)算中,如何在分布式的網(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)高效的服務(wù)調(diào)度成為了亟待解決的問(wèn)題,為此,本文提出了一種基于無(wú)服務(wù)器邊緣計(jì)算環(huán)境的服務(wù)負(fù)載調(diào)度算法。首先把工作過(guò)程中的服務(wù)負(fù)載調(diào)度響應(yīng)時(shí)間看成黑盒,然后基于負(fù)載調(diào)度器來(lái)觀察節(jié)點(diǎn)對(duì)應(yīng)的平均歷史響應(yīng)時(shí)間,推導(dǎo)出其對(duì)應(yīng)動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重,通過(guò)動(dòng)態(tài)權(quán)重來(lái)進(jìn)一步改進(jìn)平滑加權(quán)輪詢調(diào)度算法,同時(shí)判斷放置負(fù)載調(diào)度器的有效性,最后進(jìn)行優(yōu)化調(diào)度來(lái)實(shí)現(xiàn)高效服務(wù)調(diào)度。
1 相關(guān)工作
隨著無(wú)服務(wù)邊緣計(jì)算的不斷發(fā)展,業(yè)界對(duì)如何提升其性能展開(kāi)了研究工作。在服務(wù)負(fù)載調(diào)度方面,Rausch等人[8]利用 Serverless 架構(gòu)的優(yōu)勢(shì)將AI應(yīng)用推向邊緣,并通過(guò)對(duì)調(diào)度決策采用更細(xì)粒度的控制和約束以保障在資源受限的邊緣計(jì)算中獲得更優(yōu)的性能表現(xiàn)。進(jìn)一步地,面對(duì)邊緣架構(gòu)的異構(gòu)性,以及計(jì)算和存儲(chǔ)基礎(chǔ)設(shè)施的地理分布,他們?cè)谖墨I(xiàn)[8]中使用啟發(fā)式的方法,提出一種容器調(diào)度策略以優(yōu)化在 Serverless 邊緣計(jì)算中部署數(shù)據(jù)密集型應(yīng)用的開(kāi)銷,通過(guò)自動(dòng)微調(diào)調(diào)度約束權(quán)重以最小化任務(wù)執(zhí)行時(shí)間以及上行鏈路使用成本,但是他們并不認(rèn)為系統(tǒng)的負(fù)載平衡組件可以獨(dú)立于其他功能進(jìn)行擴(kuò)展和調(diào)度。Cicconetti等人[9]提出了在無(wú)服務(wù)器系統(tǒng)中匹配客戶端和功能副本的不同方法,他們?cè)u(píng)估了不同的分配策略,通過(guò)模擬顯示,在靜態(tài)全局匹配、周期性全局匹配和客戶端到副本的動(dòng)態(tài)分散匹配之間,分散版本表現(xiàn)最佳。然而,在他們的研究中,客戶機(jī)通過(guò)一個(gè)集中的編排組件被分配給調(diào)度程序,這在大量數(shù)據(jù)來(lái)臨時(shí)可能會(huì)造成資源浪費(fèi),因此在論文中改進(jìn)成客戶機(jī)連接到發(fā)送請(qǐng)求時(shí)距離最近的負(fù)載平衡器。
除了無(wú)服務(wù)器計(jì)算和邊緣計(jì)算之間的融合,Zhao等人[10]提出了啟發(fā)式算法,有效地將服務(wù)放置在移動(dòng)邊緣計(jì)算環(huán)境中。他們的目標(biāo)是通過(guò)優(yōu)化邊緣計(jì)算系統(tǒng)中給定數(shù)量的副本的放置決策,最大限度地減少系統(tǒng)內(nèi)的總體數(shù)據(jù)流量。他們首先制定了優(yōu)化問(wèn)題,其目標(biāo)是在可用節(jié)點(diǎn)中放置k個(gè)服務(wù)副本,以便由客戶機(jī)請(qǐng)求生成的網(wǎng)絡(luò)內(nèi)的總體流量最小。他們提出了一種啟發(fā)式算法,對(duì)于給定的k個(gè)副本的目標(biāo)部署,將所有可能節(jié)點(diǎn)的集合劃分為k個(gè)集群。在每個(gè)集群中,一個(gè)副本被放置在集群中可用的最佳節(jié)點(diǎn)上。雖然不一定是最優(yōu)的,但劃分為多個(gè)集群大大降低了計(jì)算復(fù)雜性,同時(shí)執(zhí)行的性能幾乎與最佳放置的全空間搜索相同。但是,他們的方法沒(méi)有考慮節(jié)點(diǎn)之間的任務(wù)劃分,這會(huì)導(dǎo)致一定資源的浪費(fèi)。
基于上述工作,本文作出了進(jìn)一步改進(jìn),通過(guò)考慮邊緣計(jì)算中不同的網(wǎng)絡(luò)條件、動(dòng)態(tài)變化的節(jié)點(diǎn)狀態(tài)等因素,同時(shí)綜合考慮服務(wù)負(fù)載調(diào)度器的擴(kuò)展和調(diào)度來(lái)實(shí)現(xiàn)高效服務(wù)負(fù)載調(diào)度的目標(biāo)。
2 無(wú)服務(wù)器邊緣計(jì)算系統(tǒng)建模與問(wèn)題描述
2.1 整體模型
如圖1所示,一種典型的基于無(wú)服務(wù)器邊緣計(jì)算系統(tǒng)的場(chǎng)景[11]設(shè)置在智慧城市中,系統(tǒng)由若干個(gè)Serverless邊緣計(jì)算集群、服務(wù)調(diào)度器、云計(jì)算中心和用戶設(shè)備組成,并通過(guò)圖1中的鏈路進(jìn)行連接。
由圖1可知,用戶設(shè)備指需要調(diào)用計(jì)算服務(wù)的終端設(shè)備,用戶設(shè)備向Serverless 邊緣計(jì)算集群提交服務(wù)請(qǐng)求,根據(jù)服務(wù)請(qǐng)求,將會(huì)分配對(duì)應(yīng)的Serverless函數(shù),這些函數(shù)根據(jù)服務(wù)放置策略將會(huì)在相應(yīng)節(jié)點(diǎn)中實(shí)例化,然后由服務(wù)調(diào)度器將服務(wù)請(qǐng)求調(diào)度至相應(yīng)的節(jié)點(diǎn)。當(dāng)某種服務(wù)的請(qǐng)求量出現(xiàn)突發(fā)增長(zhǎng)時(shí),Serverless計(jì)算集群將會(huì)對(duì)函數(shù)實(shí)例進(jìn)行擴(kuò)容,即在其他節(jié)點(diǎn)增加函數(shù)的副本數(shù)來(lái)滿足計(jì)算需求?;谠摽蚣埽_(kāi)發(fā)人員只需關(guān)心服務(wù)所對(duì)應(yīng)函數(shù)的功能實(shí)現(xiàn),即“無(wú)服務(wù)”。云計(jì)算中心為客戶端提供了無(wú)限的計(jì)算能力,云計(jì)算中心通常離客戶端較遠(yuǎn),將導(dǎo)致較高的傳輸成本和服務(wù)執(zhí)行時(shí)延,因此云計(jì)算中心更適合執(zhí)行延遲非敏感型應(yīng)用。此外,當(dāng)函數(shù)不適合在邊緣執(zhí)行時(shí),云計(jì)算中心還可以進(jìn)一步提供計(jì)算服務(wù)。
在了解上述場(chǎng)景的具體流程后,在實(shí)際場(chǎng)景中能夠發(fā)現(xiàn)當(dāng)前的Serverless計(jì)算架構(gòu)不具備在邊緣場(chǎng)景中高效處理請(qǐng)求所需的服務(wù)負(fù)載調(diào)度機(jī)制?,F(xiàn)有的Serverless平臺(tái)通常建立在容器編排平臺(tái)Kubernetes之上來(lái)實(shí)現(xiàn)計(jì)算資源的池化和納管,并基于Kubernetes平臺(tái)實(shí)現(xiàn)Serverless服務(wù)管理平臺(tái)[12]。這些Serverless服務(wù)管理平臺(tái)依賴于Kubernetes底層原有的服務(wù)負(fù)載調(diào)度策略,而這些服務(wù)負(fù)載調(diào)度策略是基于云計(jì)算中計(jì)算能力和網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)同質(zhì)的前提實(shí)現(xiàn)的。因此,將在2.2節(jié)中定義一個(gè)問(wèn)題描述來(lái)進(jìn)一步了解問(wèn)題所在。
2.2 問(wèn)題描述
如圖2所示,以最受歡迎的開(kāi)源Serverless框架OpenFaaS為例[13],其使用API Gateway組件作為請(qǐng)求的入口,該組件接收客戶端的請(qǐng)求,再將請(qǐng)求轉(zhuǎn)發(fā)至相應(yīng)的函數(shù)。
在OpenFaaS中,API Gateway收到請(qǐng)求后依賴Kubernetes平臺(tái)進(jìn)行路由,Kube-Proxy作為Kubernetes中負(fù)責(zé)處理網(wǎng)絡(luò)路由和容器實(shí)例負(fù)載均衡的組件,默認(rèn)采用的是輪詢的策略進(jìn)行負(fù)載調(diào)度。也就是說(shuō),函數(shù)f1對(duì)應(yīng)的請(qǐng)求將在已實(shí)例化的node1和node2中輪詢執(zhí)行。對(duì)于計(jì)算資源和網(wǎng)絡(luò)都比較統(tǒng)一的云計(jì)算來(lái)說(shuō),采用輪詢的調(diào)度策略從長(zhǎng)期來(lái)看是公平的,而對(duì)于異構(gòu)的邊緣計(jì)算網(wǎng)絡(luò)來(lái)說(shuō),簡(jiǎn)單的輪詢策略無(wú)論從短期還是長(zhǎng)期來(lái)說(shuō)都是不公平的。如圖2所示,上一輪請(qǐng)求中,函數(shù)f1在node1中被執(zhí)行,而在本輪請(qǐng)求中,函數(shù)f1被調(diào)度至node2執(zhí)行,node1與node2之間存在著50 ms的網(wǎng)絡(luò)延遲,在節(jié)點(diǎn)性能相同的情況下,本輪請(qǐng)求繼續(xù)在node1中執(zhí)行會(huì)比在node2中執(zhí)行具有更低的響應(yīng)時(shí)延,但由于負(fù)載調(diào)度策略未考慮到異構(gòu)性,從而造成了更長(zhǎng)的客戶端等待時(shí)間。此外,從圖2可以發(fā)現(xiàn),API gateway作為唯一請(qǐng)求的入口,部署于node1中,當(dāng)另一個(gè)客戶端在node2附近提交計(jì)算任務(wù),那么請(qǐng)求需要借助Kubernetes底層網(wǎng)絡(luò)轉(zhuǎn)發(fā)至node1中的API gateway,采用集中式的服務(wù)負(fù)載入口會(huì)導(dǎo)致更長(zhǎng)的客戶端等待時(shí)間。這些問(wèn)題都是采用云計(jì)算中的Serverless服務(wù)負(fù)載調(diào)度策略導(dǎo)致的。
對(duì)以上問(wèn)題進(jìn)行分析,主要是現(xiàn)有的服務(wù)負(fù)載調(diào)度策略沒(méi)有考慮到邊緣結(jié)構(gòu)中不同節(jié)點(diǎn)性能會(huì)實(shí)時(shí)變化,除此之外,現(xiàn)有策略的集中式調(diào)度會(huì)導(dǎo)致更長(zhǎng)的等待時(shí)間。所以,為了在邊緣計(jì)算環(huán)境下更好地應(yīng)用Serverless架構(gòu),對(duì)于服務(wù)負(fù)載調(diào)度策略,需要滿足以下兩點(diǎn):
a)自適應(yīng)負(fù)載調(diào)度:服務(wù)負(fù)載調(diào)度器在調(diào)度計(jì)算任務(wù)時(shí)應(yīng)盡量選擇網(wǎng)絡(luò)距離較近的實(shí)例化節(jié)點(diǎn),并且綜合考慮動(dòng)態(tài)變化的邊緣節(jié)點(diǎn)、客戶端網(wǎng)絡(luò)位置對(duì)函數(shù)執(zhí)行時(shí)間的影響。
b)有效放置:服務(wù)負(fù)載調(diào)度器應(yīng)放置在離客戶端和實(shí)例化節(jié)點(diǎn)網(wǎng)絡(luò)距離較近的節(jié)點(diǎn),并且考慮位置對(duì)性能的影響,來(lái)解決由于負(fù)載調(diào)度器放置問(wèn)題引起的調(diào)度時(shí)延放大問(wèn)題。
考慮到負(fù)載調(diào)度的各種潛在復(fù)雜因素,本文決定給負(fù)載調(diào)度方法采用一種相對(duì)簡(jiǎn)單的方法。服務(wù)負(fù)載調(diào)度決策完全基于負(fù)載調(diào)度器觀察到的總響應(yīng)時(shí)間,這意味著其不區(qū)分不同網(wǎng)絡(luò)部分產(chǎn)生的時(shí)間,因此,本文將總響應(yīng)時(shí)間視為整個(gè)系統(tǒng)的黑盒來(lái)進(jìn)行度量。除此之外,加權(quán)輪循調(diào)度是實(shí)現(xiàn)負(fù)載均衡的重要策略之一,在實(shí)驗(yàn)了其他解決方案,并根據(jù)無(wú)服務(wù)器邊緣計(jì)算環(huán)境帶來(lái)的獨(dú)特挑戰(zhàn)分析了它們的性能概況和特征后,本文選擇了Nginx[14]中的平滑加權(quán)輪詢調(diào)度算法(smooth weighted round robin,SWRR),相比于經(jīng)典的加權(quán)輪詢調(diào)度在某些特殊的權(quán)重下會(huì)生成不均勻的實(shí)例序列,SWRR算法克服了這一問(wèn)題,避免了實(shí)例負(fù)載突然加重的可能。但是,SWRR無(wú)法動(dòng)態(tài)感知系統(tǒng)集群中實(shí)例的性能變化[15],會(huì)導(dǎo)致系統(tǒng)穩(wěn)定性的惡化。因此,針對(duì)SWRR無(wú)法動(dòng)態(tài)感知性能變化這一缺點(diǎn),同時(shí)針對(duì)服務(wù)調(diào)度器的有效放置問(wèn)題,在第3章中設(shè)計(jì)了一種基于無(wú)服務(wù)器邊緣計(jì)算下的服務(wù)負(fù)載調(diào)度算法(service load scheduling algorithm,SLSA),以高效地尋找響應(yīng)時(shí)間最優(yōu)解。
3 無(wú)服務(wù)器邊緣計(jì)算下的服務(wù)負(fù)載調(diào)度算法
SLSA的核心思想主要是把整個(gè)工作過(guò)程中的服務(wù)負(fù)載調(diào)度響應(yīng)時(shí)間看成黑盒,基于負(fù)載調(diào)度器來(lái)觀察每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的平均歷史響應(yīng)時(shí)間,接著推導(dǎo)出對(duì)應(yīng)動(dòng)態(tài)變化的節(jié)點(diǎn)性能權(quán)重,基于上面得到的動(dòng)態(tài)權(quán)重進(jìn)行加權(quán)輪詢調(diào)度,同時(shí)考慮在節(jié)點(diǎn)處放置負(fù)載調(diào)度器對(duì)響應(yīng)時(shí)間的影響來(lái)判斷是否放置該調(diào)度器,最后得到一個(gè)最優(yōu)化調(diào)度。
在上述步驟中,推導(dǎo)出了動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重這一概念,這個(gè)概念是對(duì)比于SWRR調(diào)度算法的一個(gè)優(yōu)化,來(lái)改進(jìn)SWRR無(wú)法動(dòng)態(tài)感知系統(tǒng)集群中實(shí)例的性能變化這一缺點(diǎn)。在Serverless邊緣計(jì)算中,邊緣節(jié)點(diǎn)、客戶端網(wǎng)絡(luò)位置是動(dòng)態(tài)變化的,節(jié)點(diǎn)中部署的函數(shù)也會(huì)隨時(shí)進(jìn)行縮放。因此在SLSA中引入了動(dòng)態(tài)節(jié)點(diǎn)權(quán)重,其好處是所有因素都將被包含在內(nèi),當(dāng)某節(jié)點(diǎn)由于多函數(shù)共享計(jì)算資源出現(xiàn)性能降級(jí)時(shí),負(fù)載調(diào)度器所觀察到的該節(jié)點(diǎn)服務(wù)響應(yīng)時(shí)間也將出現(xiàn)相應(yīng)增加。SLSA雖然沒(méi)有對(duì)這些因素進(jìn)行顯式建模,但這些因素會(huì)不斷地通過(guò)服務(wù)響應(yīng)時(shí)間的變化,隱式地通過(guò)動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重體現(xiàn)出來(lái),同時(shí)負(fù)載調(diào)度器放置也是影響調(diào)度性能的重要因素。故本算法的關(guān)鍵在于確定對(duì)應(yīng)動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重的映射方法,以及確定負(fù)載調(diào)度器放置的有效性。
算法 SLSA
輸入:可用節(jié)點(diǎn)集合n;請(qǐng)求負(fù)載ω;負(fù)載調(diào)度器lc。
輸出:節(jié)點(diǎn)動(dòng)態(tài)權(quán)重;響應(yīng)時(shí)間。
Function SLSA:
1 n←[] //初始化節(jié)點(diǎn)集合
2 for n∈N do //遍歷所有節(jié)點(diǎn)
3?? avg_resp_time←calculate_ema(time,window_size)
4?? weight←range_weight_mapping(avg_resp_time)
5?? n←n.append(n,weight)
6?? for n in lc do //在節(jié)點(diǎn)運(yùn)行調(diào)度器
7??? if effect(n,f)>0 //判斷性能影響因子
8???? lc.add(n) //保留調(diào)度器
9??? else effect(n,f)<0
10??? lc.remove(n)
11?? end for
12? end for
13 return smooth_weight(n,ω)←response_time //返回響應(yīng)時(shí)間
3.1 計(jì)算動(dòng)態(tài)權(quán)重
算法首先輸入了可用節(jié)點(diǎn)集合n,請(qǐng)求負(fù)載ω,負(fù)載調(diào)度器lc這三個(gè)指標(biāo)。SLSA的第1行對(duì)輸入的節(jié)點(diǎn)集合n進(jìn)行初始化,第2~5行遍歷所有對(duì)應(yīng)的Serverless函數(shù)節(jié)點(diǎn)來(lái)計(jì)算節(jié)點(diǎn)的動(dòng)態(tài)權(quán)重,并把節(jié)點(diǎn)動(dòng)態(tài)權(quán)重放入初始節(jié)點(diǎn)集合n中。第3行計(jì)算了節(jié)點(diǎn)的平均歷史響應(yīng)時(shí)間,考慮到節(jié)點(diǎn)的性能會(huì)隨時(shí)間變化,而作為性能指標(biāo),變化之后的值更為重要。為了解決這一問(wèn)題,在第3行中采用了固定窗口大小的指數(shù)移動(dòng)平均值(exponential moving average,EMA)這一指標(biāo)。EMA在計(jì)算服務(wù)響應(yīng)平均值時(shí)使用了固定窗口大小并且使用了指數(shù)衰減因子,它只需要記錄上次更新的時(shí)間和當(dāng)前的值,使其能確保最小的內(nèi)存消耗,同時(shí)易于理解和實(shí)現(xiàn),與簡(jiǎn)單的移動(dòng)平均值相比,它能更快地反映響應(yīng)時(shí)間的變化。給定某邊緣節(jié)點(diǎn)先前服務(wù)響應(yīng)時(shí)間平均值、最近的響應(yīng)時(shí)間t、上次請(qǐng)求以來(lái)經(jīng)過(guò)的時(shí)間Δt和窗口大小w,則更新之后的服務(wù)響應(yīng)平均值′,即算法第3行的EMA具體實(shí)現(xiàn)可以表示為
′=e-Δtw×+(1-e-Δtw)×t(1)
根據(jù)式(1)得到平均歷史響應(yīng)時(shí)間。但是,單純得到服務(wù)平均響應(yīng)時(shí)間還不夠,使用基于黑盒的響應(yīng)時(shí)間觀測(cè)方法也存在一定缺點(diǎn),因?yàn)楣?jié)點(diǎn)性能會(huì)受到潛在因素影響而顯著變化。假設(shè)一個(gè)邊緣服務(wù)節(jié)點(diǎn)n1在t1時(shí)刻由于網(wǎng)絡(luò)原因?qū)е略谠摃r(shí)刻性能變差,服務(wù)響應(yīng)時(shí)間比較長(zhǎng),但該節(jié)點(diǎn)n1在大部分時(shí)刻,性能都表現(xiàn)很好。此時(shí),由于服務(wù)調(diào)度器總是基于平均歷史響應(yīng)時(shí)間決策,那將不會(huì)有任務(wù)被調(diào)度在節(jié)點(diǎn)n1上。這時(shí),就出現(xiàn)了由于節(jié)點(diǎn)性能在提升后沒(méi)有被及時(shí)記錄而導(dǎo)致次優(yōu)調(diào)度現(xiàn)象?;诖耍疚脑诘?行得到平均歷史響應(yīng)時(shí)間之后,在第4行附加了邊緣節(jié)點(diǎn)權(quán)重的動(dòng)態(tài)分配策略配合動(dòng)態(tài)加權(quán)輪詢調(diào)度算法,使每個(gè)節(jié)點(diǎn)都能分配到固定的流量,讓每個(gè)節(jié)點(diǎn)能夠分配到一個(gè)權(quán)重初始值,從而對(duì)節(jié)點(diǎn)的性能變化及時(shí)采樣,以避免次優(yōu)調(diào)度問(wèn)題的出現(xiàn)。算法第4行使用了固定范圍的權(quán)重,確保每個(gè)節(jié)點(diǎn)都分配到初始值,每個(gè)節(jié)點(diǎn)的權(quán)重由最新的服務(wù)響應(yīng)平均時(shí)間所決定。下面假設(shè)′∈R表示節(jié)點(diǎn)服務(wù)響應(yīng)平均值的集合,Wmax表示最大權(quán)重,Wmin表示最小權(quán)重,則每個(gè)節(jié)點(diǎn)響應(yīng)時(shí)間平均值的權(quán)重W(′)定義為
W(′)=maxWmin,Wmax(′min{′,′∈R})s(2)
其中:s>0是選定的比例因子,比例因子決定了服務(wù)平均響應(yīng)時(shí)間和邊緣節(jié)點(diǎn)權(quán)重之間的映射關(guān)系,當(dāng)s=1時(shí),表示服務(wù)平均響應(yīng)時(shí)間和節(jié)點(diǎn)權(quán)重間存在線性關(guān)系?;诰W(wǎng)格搜索實(shí)驗(yàn),選擇了Wmin=10,Wmax=30,以及s=2.0,具體網(wǎng)格搜索實(shí)驗(yàn)的選擇過(guò)程將在4.2節(jié)中詳細(xì)解釋。
在得到上述動(dòng)態(tài)變化的權(quán)重值后,可以對(duì)SWRR算法進(jìn)行一個(gè)改進(jìn)。SWRR算法的步驟分為兩步:所有節(jié)點(diǎn)都有一個(gè)初始值,用它們的初始值加上設(shè)定的權(quán)重值得到當(dāng)前節(jié)點(diǎn)集;在當(dāng)前節(jié)點(diǎn)集中選擇當(dāng)前值最大的節(jié)點(diǎn)為命中節(jié)點(diǎn),并把它的當(dāng)前值減去所有節(jié)點(diǎn)的權(quán)重總和作為其新權(quán)重值,其他節(jié)點(diǎn)保持不變。因?yàn)槠湓O(shè)定的權(quán)重值是不變的,所以在若干個(gè)周期之后,當(dāng)前節(jié)點(diǎn)值會(huì)重新變?yōu)槌跏贾担匆粋€(gè)周期,后面就會(huì)按照這個(gè)周期進(jìn)行循環(huán)。通過(guò)式(2)得到的動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重W(′),替代了SWRR中設(shè)定的權(quán)重值,使其不再一直按照周期進(jìn)行變化,可以使集群中動(dòng)態(tài)變化的服務(wù)器在負(fù)載分布時(shí)更加均勻。最后,算法第5行把節(jié)點(diǎn)信息和對(duì)應(yīng)動(dòng)態(tài)權(quán)重加入到了初始創(chuàng)建的集合當(dāng)中。
3.2 負(fù)載調(diào)度器放置
上一節(jié)描述了計(jì)算動(dòng)態(tài)權(quán)重的過(guò)程,而在實(shí)際過(guò)程中,負(fù)載調(diào)度器的有效放置是影響服務(wù)響應(yīng)時(shí)間的一大重要因素[16],因此本文在算法6~11行加入了對(duì)服務(wù)調(diào)度器位置判斷的一個(gè)過(guò)程,來(lái)決定調(diào)度器適合放在哪些對(duì)應(yīng)節(jié)點(diǎn)。為了針對(duì)性地進(jìn)行判斷,本節(jié)提出一個(gè)問(wèn)題:“在該節(jié)點(diǎn)運(yùn)行服務(wù)調(diào)度器會(huì)對(duì)調(diào)度性能產(chǎn)生什么影響?”。而為了解決上述問(wèn)題,提出了影響因子effect(n,f)這一概念進(jìn)行判斷。
當(dāng)影響因子effect(n0,f)>0時(shí),代表預(yù)測(cè)性能比當(dāng)前性能要好,調(diào)度器的放置提升了服務(wù)調(diào)度性能,則對(duì)應(yīng)算法第7、8行所示,保留對(duì)應(yīng)節(jié)點(diǎn)上的負(fù)載調(diào)度器,并把這一信息加入到集合當(dāng)中;當(dāng)影響因子effect(n0,f)<0時(shí),則正好相反,降低了性能,此時(shí)對(duì)應(yīng)算法第9、10行,刪除對(duì)應(yīng)節(jié)點(diǎn)的負(fù)載調(diào)度器,并把該信息加入集合當(dāng)中。最后,算法通過(guò)式(1)~(11)得到的信息,在算法第13行返回優(yōu)化后的動(dòng)態(tài)權(quán)重和響應(yīng)時(shí)間。
4 算法仿真和分析
為了驗(yàn)證第3章中提出的算法,本文要對(duì)其進(jìn)行全面的評(píng)估。考慮到使用小規(guī)模的邊緣計(jì)算集群部署Serverless平臺(tái)無(wú)法模擬邊緣計(jì)算節(jié)點(diǎn)地理部分的特征,實(shí)驗(yàn)說(shuō)服力不夠強(qiáng);另一方面,搭建實(shí)際的Serverless邊緣計(jì)算網(wǎng)絡(luò)以及大規(guī)模部署集群極其復(fù)雜且成本高。因此,本章使用仿真平臺(tái)來(lái)模擬大規(guī)模的Serverless邊緣計(jì)算環(huán)境。實(shí)驗(yàn)選取了維也納工業(yè)大學(xué)分布式系統(tǒng)研究組開(kāi)發(fā)的FaaS-Sim平臺(tái)[17]來(lái)進(jìn)行仿真,框架如圖3所示。FaaS-Sim基于SimPy離散事件仿真框架,使用Ether作為網(wǎng)絡(luò)仿真層,并創(chuàng)建集群配置和網(wǎng)絡(luò)拓?fù)洹?/p>
相對(duì)于其他仿真平臺(tái),F(xiàn)aaS-Sim能夠模擬類似Serverless框架OpenFaaS提供的功能[18],其包含容器、容器鏡像、資源需求、縮放和調(diào)度的概念。FaaS-Sim還支持模擬大量不同類型的邊緣計(jì)算設(shè)備和通過(guò)Ether更靈活地創(chuàng)建不同的邊緣網(wǎng)絡(luò)拓?fù)?。默認(rèn)情況下,F(xiàn)aaS-Sim通過(guò)Skippy調(diào)度器進(jìn)行資源調(diào)度,用戶可通過(guò)自定義方式替換負(fù)載調(diào)度和容器縮放策略來(lái)驗(yàn)證本文方案。
4.1 實(shí)驗(yàn)環(huán)境
在采用FaaS-Sim平臺(tái)之后,使用該平臺(tái)模擬了四種不同類型的邊緣計(jì)算設(shè)備:
a)單片機(jī)節(jié)點(diǎn):包含一些基于ARM架構(gòu)的低功耗邊緣接入點(diǎn),如Raspberry Pi等,這些設(shè)備在IoT場(chǎng)景中充當(dāng)邊緣網(wǎng)關(guān)。
b)小型計(jì)算節(jié)點(diǎn):包含了較低功耗的小型計(jì)算機(jī),如Intel平臺(tái)的下一代計(jì)算單元(next unit of computing,NUC)等。
c)嵌入式AI節(jié)點(diǎn):包含一些具有嵌入式GPU的小型設(shè)備,如NVIDIA的Jetson系列設(shè)備。
d)邊緣數(shù)據(jù)中心:包含一些通用的VM設(shè)備,可以理解為邊緣網(wǎng)絡(luò)的數(shù)據(jù)中心,稱為Cloudlet。
本文所用的模擬設(shè)備的詳細(xì)描述如表1所示。
4.2 網(wǎng)格搜索實(shí)驗(yàn)
在開(kāi)始算法對(duì)比前,本文要對(duì)3.1節(jié)中計(jì)算的動(dòng)態(tài)權(quán)重給定其中的縮放因子和權(quán)重范圍的參數(shù),因?yàn)檫@些參數(shù)會(huì)影響平均響應(yīng)時(shí)間與調(diào)度權(quán)重之間的映射關(guān)系,最后又反作用于平均響應(yīng)時(shí)間。下面通過(guò)網(wǎng)格搜索實(shí)驗(yàn),嘗試大量排列組合方法來(lái)確定其行為模式。在本次網(wǎng)格搜索實(shí)驗(yàn)中,使用Mobilenet-Inference函數(shù)作為請(qǐng)求的服務(wù),針對(duì)縮放因子s和權(quán)重范圍進(jìn)行網(wǎng)格搜索。在參數(shù)設(shè)定上,本文把縮放因子s設(shè)置為[0.1,10],權(quán)重設(shè)置為[1,100],對(duì)于權(quán)重范圍,設(shè)置最小權(quán)重為1,最大權(quán)重在[2,100]變化以全面分析權(quán)重的影響。
本次分別進(jìn)行了三組網(wǎng)格實(shí)驗(yàn),請(qǐng)求負(fù)載依次設(shè)置為:50 rps、250 rps、500 rps。對(duì)于每組實(shí)驗(yàn),都按照不同的縮放因子與權(quán)重范圍組合進(jìn)行200次實(shí)驗(yàn),每次實(shí)驗(yàn)持續(xù)600 s以收集盡可能多的服務(wù)響應(yīng)時(shí)間樣本。最終,通過(guò)統(tǒng)計(jì)服務(wù)平均響應(yīng)時(shí)間(ART)作為結(jié)果來(lái)評(píng)估縮放因子和權(quán)重范圍對(duì)服務(wù)響應(yīng)時(shí)間性能的影響。最終結(jié)果如圖4所示,從整體上看,隨著請(qǐng)求負(fù)載的變大,圖中深色區(qū)域占比不斷增大,也就是說(shuō),整體服務(wù)平均響應(yīng)時(shí)間隨著請(qǐng)求負(fù)載的變大而逐漸變大。在縮放因子與權(quán)重范圍過(guò)大或過(guò)小時(shí),服務(wù)平均響應(yīng)時(shí)間明顯增大。而當(dāng)縮放因子f在[1.0,4.0]內(nèi),權(quán)重在[10,30]內(nèi)時(shí),服務(wù)平均響應(yīng)時(shí)間相對(duì)較小。在不同請(qǐng)求負(fù)載下,服務(wù)平均響應(yīng)時(shí)間雖然存在較大差異,但在權(quán)重范圍為 20 左右,縮放因子s在[1.0,3.0]內(nèi)時(shí),整體平均響應(yīng)時(shí)間均達(dá)到了較優(yōu)值。這表明在此范圍內(nèi),服務(wù)平均響應(yīng)時(shí)間能夠合理地映射成相應(yīng)的動(dòng)態(tài)權(quán)重,從而使得調(diào)度器能夠作出更準(zhǔn)確的調(diào)度行為。
綜合實(shí)驗(yàn)結(jié)果,本文選擇Wmin=10,Wmax=30,以及縮放因子s=2.0作為最終的實(shí)驗(yàn)參數(shù)設(shè)置,這些參數(shù)能夠使得在不同請(qǐng)求負(fù)載下的服務(wù)平均響應(yīng)時(shí)間盡可能小。并且,這些結(jié)論在實(shí)際無(wú)服務(wù)器邊緣計(jì)算應(yīng)用中優(yōu)化縮放因子和權(quán)重范圍,從而對(duì)于提高服務(wù)性能提供了重要的參考。
4.3 算法對(duì)比測(cè)試
4.3.1 仿真場(chǎng)景和函數(shù)設(shè)定
為了更全面地對(duì)算法進(jìn)行評(píng)估,本次實(shí)驗(yàn)考慮了兩種地理分布范圍不同的智慧城市場(chǎng)景,每個(gè)場(chǎng)景具體設(shè)定如下所示。
a)單個(gè)城市場(chǎng)景。邊緣計(jì)算集群由3個(gè)邊緣計(jì)算中心和9個(gè)共享鏈路帶寬的分布式計(jì)算單元組成,總計(jì)150個(gè)邊緣計(jì)算節(jié)點(diǎn),假設(shè)所有節(jié)點(diǎn)位于城市A中,這意味著網(wǎng)絡(luò)鏈路間延遲較小,平均延遲為5 ms。
b)多個(gè)城市場(chǎng)景。邊緣計(jì)算集群跨越了三個(gè)城市A、B、C。每個(gè)城市之間的節(jié)點(diǎn)數(shù)量各不相同,計(jì)算能力有著差異。計(jì)算集群位于同一城市間的節(jié)點(diǎn)網(wǎng)絡(luò)延遲較低,但跨城節(jié)點(diǎn)之間的網(wǎng)絡(luò)延遲較高??蛻舳颂峤坏臄?shù)據(jù)會(huì)讓本地節(jié)點(diǎn)優(yōu)先處理,當(dāng)本地節(jié)點(diǎn)性能不足或網(wǎng)絡(luò)阻塞時(shí),向其他城市節(jié)點(diǎn)提交請(qǐng)求任務(wù),不同城市的具體設(shè)定如表2和3所示。
接下來(lái)是對(duì)本次實(shí)驗(yàn)部署的四種不同函數(shù)進(jìn)行說(shuō)明,在仿真集群中部署了四種函數(shù):Resnet50-Inference[18]、Mobilenet-Inference[18]、Speech-Inference[18]、FFmpeg-Convert[19]。前三種函數(shù)函數(shù)對(duì)應(yīng)典型的邊緣AI推理服務(wù),是實(shí)現(xiàn)邊緣智能的基石,F(xiàn)Fmpeg-Convert是實(shí)現(xiàn)音視頻數(shù)據(jù)處理的前提,在邊緣視覺(jué)中較常見(jiàn),各個(gè)函數(shù)具體描述如表4所示。
4.3.2 對(duì)比算法和對(duì)比指標(biāo)選擇
本節(jié)對(duì)SLSA的性能進(jìn)行了對(duì)比實(shí)驗(yàn),用響應(yīng)時(shí)間和資源消耗來(lái)進(jìn)行表示,一共對(duì)比了五種調(diào)度算法,分別設(shè)置在不同的請(qǐng)求負(fù)載情況下進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)把請(qǐng)求負(fù)載設(shè)置為20 rps,30 rps,40 rps,50 rps,60 rps,并選擇三種時(shí)間對(duì)比指標(biāo)來(lái)進(jìn)行分析。同時(shí),實(shí)驗(yàn)測(cè)量了不同的負(fù)載調(diào)度策略在系統(tǒng)中運(yùn)行時(shí)其產(chǎn)生的資源使用情況,來(lái)對(duì)比不同算法的資源消耗。由于實(shí)驗(yàn)在模擬功能時(shí)會(huì)具有隨機(jī)采樣特征,本文對(duì)比實(shí)驗(yàn)運(yùn)行10次,取其平均值得出相對(duì)穩(wěn)定的結(jié)果。
在調(diào)度算法的選擇上,本文為了探究不同復(fù)雜度的負(fù)載平衡和負(fù)載調(diào)度器放置是否會(huì)帶來(lái)總體性能的提高,選用了開(kāi)源無(wú)服務(wù)器框架OpenFaas中采用的集中式輪詢調(diào)度算法(round robin centralized,RRC)和較常見(jiàn)的集中式最小響應(yīng)時(shí)間調(diào)度算法(least response time centralized,LRTC),以及對(duì)應(yīng)的分布式輪詢調(diào)度算法(round robin on all nodes,RRA)和分布式最小響應(yīng)時(shí)間調(diào)度算法(least response time on all nodes,LRTA)。RRC和LRTC算法把所有客戶端請(qǐng)求設(shè)置在單個(gè)集中式負(fù)載均衡器實(shí)例中,對(duì)性能要求比較高,區(qū)別是前者以循環(huán)的方式依次將請(qǐng)求調(diào)度不同的服務(wù)器,而后者是優(yōu)先把任務(wù)調(diào)度給平均響應(yīng)時(shí)間最短的服務(wù)器。RRA和LRTA算法則是相對(duì)應(yīng)的分布式算法,在分布式場(chǎng)景中每個(gè)節(jié)點(diǎn)都托管了一個(gè)負(fù)載均衡器,對(duì)性能要求更低,區(qū)別是前者以循環(huán)的方式依次將節(jié)點(diǎn)上的任務(wù)調(diào)度給其對(duì)應(yīng)的服務(wù)器,后者優(yōu)先執(zhí)行平均響應(yīng)時(shí)間最短節(jié)點(diǎn)的負(fù)載均衡器。為了進(jìn)一步驗(yàn)證SLSA的有效性,實(shí)驗(yàn)還需要和最新的調(diào)度算法進(jìn)行性能對(duì)比。本文選擇了雙層動(dòng)態(tài)規(guī)劃(DLDP)算法[20]進(jìn)行對(duì)比, DLDP算法采用多階段漸進(jìn)優(yōu)化的方法,解決了考慮依賴包的函數(shù)卸載問(wèn)題,且通過(guò)分階段優(yōu)化的方法將緩存策略嵌入到調(diào)度算法中,實(shí)現(xiàn)聯(lián)合優(yōu)化。
在結(jié)果對(duì)比指標(biāo)上,實(shí)驗(yàn)選取了資源消耗(resource consumption,RC)指標(biāo)對(duì)算法資源使用情況進(jìn)行驗(yàn)證,選取了平均響應(yīng)時(shí)間(average response time,ART)、平均調(diào)度時(shí)間(average scheduling time,AST)、平均函數(shù)執(zhí)行時(shí)間(average function time,AFT)三個(gè)指標(biāo)來(lái)對(duì)算法性能進(jìn)行驗(yàn)證。RC是調(diào)度策略在系統(tǒng)運(yùn)行時(shí)產(chǎn)生的內(nèi)存消耗情況,用來(lái)反映整體的資源消耗情況。ART是服務(wù)負(fù)載請(qǐng)求的整體平均響應(yīng)時(shí)間,其包含了網(wǎng)絡(luò)開(kāi)銷、調(diào)度開(kāi)銷和節(jié)點(diǎn)函數(shù)執(zhí)行時(shí)間。AST是請(qǐng)求調(diào)度花費(fèi)的時(shí)間,其包含了請(qǐng)求從客戶端到負(fù)載調(diào)度器以及負(fù)載調(diào)度器將請(qǐng)求調(diào)度至節(jié)點(diǎn)所花費(fèi)的網(wǎng)絡(luò)時(shí)間和調(diào)度決策時(shí)間。AFT是函數(shù)在節(jié)點(diǎn)上執(zhí)行花費(fèi)的平均時(shí)間,反映函數(shù)執(zhí)行所產(chǎn)生的性能影響。
實(shí)驗(yàn)首先測(cè)試了不同算法的資源消耗情況,RC指標(biāo)通過(guò)Telemd[21]進(jìn)行測(cè)量。由于負(fù)載調(diào)度器是容器化的,所以Telemd依賴于Kubernetes提供的指標(biāo)來(lái)測(cè)量資源消耗, Telemd每隔一段時(shí)間報(bào)告文件提供的內(nèi)存消耗[21]。實(shí)驗(yàn)把請(qǐng)求速率設(shè)置為250 rps,測(cè)試時(shí)間設(shè)置為0~250 ms,把負(fù)載調(diào)度器定位在一個(gè)模擬的邊緣應(yīng)用程序上,客戶端發(fā)送一張圖像對(duì)其進(jìn)行分類,有效負(fù)載是一個(gè)文件大小為250 KB的壓縮圖像,響應(yīng)是一個(gè)大小可以忽略不計(jì)的簡(jiǎn)單JSON,通過(guò)讀取Telemd返回指標(biāo),得到圖5所示的五種調(diào)度算法的RC指標(biāo)對(duì)比。從圖5中可以明顯看出,隨著時(shí)間的推移,RRC、 RRA和LRTC算法對(duì)資源消耗的程度較高,LRTA、DLDP和SLSA算法相對(duì)較低。在對(duì)比算法中,SLSA調(diào)度算法對(duì)資源的使用情況最低,相比于其他調(diào)度算法,其在資源消耗上有著明顯改善,特別是對(duì)于RRC和RRA,SLSA的資源消耗降低程度超過(guò)了15%。由此可以看出,SLSA相比于其他算法的資源消耗情況是有所改善的。
不同服務(wù)負(fù)載調(diào)度實(shí)驗(yàn)性能測(cè)試的結(jié)果如圖6、7所示,分別展示了在兩個(gè)不同場(chǎng)景下不同調(diào)度算法的性能對(duì)比。
根據(jù)圖6(a)~(c)中不同指標(biāo)的對(duì)比,可以得出以下結(jié)論。從ART和AFT指標(biāo)來(lái)看,對(duì)圖6(a)(c)進(jìn)行分析,在單城市場(chǎng)景下,除了RRA調(diào)度算法相比于RRC算法的ART指標(biāo)性能有所下降,其余調(diào)度算法均比RRC算法性能有所提升,在提升范圍里,SLSA對(duì)ART和AFT兩個(gè)指標(biāo)的整體性能提升水平是最高的。此外,在請(qǐng)求負(fù)載為20 rps的情況下,LRTA調(diào)度算法的ART和AFT指標(biāo)相較于SLSA性能更高,但差異并不明顯;在請(qǐng)求負(fù)載為30 rps以及更高情況下,SLSA的ART和AFT指標(biāo)性能更高,且隨著請(qǐng)求負(fù)載的加大,性能提升更多。由此可以發(fā)現(xiàn),在請(qǐng)求負(fù)載較低時(shí),LRTA采用的分布式最小響應(yīng)時(shí)間策略取得的性能指標(biāo)會(huì)更高,但是隨著請(qǐng)求負(fù)載的增大,因?yàn)槠洳捎秘澬牡乃枷肴菀讓?dǎo)致羊群效應(yīng),把大量的請(qǐng)求調(diào)度到同一個(gè)節(jié)點(diǎn)執(zhí)行,使函數(shù)執(zhí)行時(shí)間更長(zhǎng)。所以,總體來(lái)說(shuō),SLSA在ART和AFT指標(biāo)上具有更好的性能表現(xiàn)。
從AST指標(biāo)來(lái)看,對(duì)圖6(b)進(jìn)行分析,在單個(gè)城市場(chǎng)景下, SLSA相比于RRC和RRA的AST指標(biāo)性能具有明顯提升。在低負(fù)載請(qǐng)求速率20 rps情況下,SLSA性能不如LRTC和LRTA性能;在負(fù)載請(qǐng)求速率30 rps及以上情況,SLSA性能超過(guò)LRTA,但是不如LRTC的性能。
對(duì)單城市場(chǎng)景做完分析后,實(shí)驗(yàn)還對(duì)多城市場(chǎng)景下的不同算法進(jìn)行了對(duì)比,以驗(yàn)證SLSA在更大地理范圍的環(huán)境下還存在其性能優(yōu)勢(shì)。圖7(a)~(c)對(duì)比了在多城市場(chǎng)景下不同調(diào)度算法的性能對(duì)比。
如圖7所示,多城市場(chǎng)景下,三個(gè)指標(biāo)的變化規(guī)律和單城市場(chǎng)景類似。從ART和AFT指標(biāo)來(lái)看,SLSA相比于其他算法的性能提升率比單城市場(chǎng)景下更大。從AST指標(biāo)來(lái)看,當(dāng)負(fù)載請(qǐng)求速率為20 rps,SLSA的性能不如LRTA和LRTC算法,但是差距很?。辉谪?fù)載請(qǐng)求速率為30 rps及以上時(shí),SLSA在AST指標(biāo)性能上優(yōu)于LRTA和LRTC算法。通過(guò)以上分析,對(duì)于三種指標(biāo)性能,隨著地理分布和負(fù)載請(qǐng)求速率的增大,SLSA對(duì)比于其他算法的優(yōu)勢(shì)會(huì)更明顯。
在比較完不同復(fù)雜度的負(fù)載平衡策略之后,本文對(duì)SLSA和最新的調(diào)度算法DLDP進(jìn)行比較。SLSA和DLDP都適用于分布范圍更大的場(chǎng)景,而AST的指標(biāo)比較小,不足以體現(xiàn)兩者算法的區(qū)別,因此本文在多城市場(chǎng)景下對(duì)兩個(gè)算法的ART和AFT指標(biāo)進(jìn)行了對(duì)比,如圖8所示。從ART和AFT指標(biāo)來(lái)看,在20 rps和30 rps的情況下,SLSA性能不如DLDP算法,但隨著請(qǐng)求速率的提升,SLSA的性能逐漸超過(guò)DLDP算法。由此可以發(fā)現(xiàn),在低請(qǐng)求速率情況下,DLDP算法的性能相對(duì)更高,而隨著請(qǐng)求速率的增大,SLSA的優(yōu)勢(shì)逐漸得到體現(xiàn)。從總體來(lái)看,SLSA的性能超過(guò)DLDP算法。
為了更直觀地體現(xiàn)SLSA對(duì)比于其他算法的優(yōu)勢(shì),表5和6對(duì)實(shí)驗(yàn)中得到的性能指標(biāo)取平均值,把RRC算法作為基準(zhǔn),用百分比來(lái)表示其余算法相比于RRC算法在ART、AST、AFT三個(gè)指標(biāo)性能上的提升情況。
從表5和6中可以得到,對(duì)于不同場(chǎng)景的ART指標(biāo),SLSA對(duì)比RRC算法提升的性能是最高的,在單個(gè)城市場(chǎng)景中相對(duì)于RRC算法提升了43.01%,在多城市場(chǎng)景中提升了53.81%。對(duì)于AST指標(biāo),在單個(gè)城市場(chǎng)景中,SLSA提升率為42.07%,性能提升率不如LRTA的45.78%,但隨著地理分布范圍的增大,可以發(fā)現(xiàn)SLSA性能提升率變?yōu)?9.75%,超過(guò)了LRTA。從AFT指標(biāo)來(lái)看,調(diào)度策略性能提升類似于ART指標(biāo),無(wú)論在單個(gè)城市場(chǎng)景還是多城市場(chǎng)景,SLSA性能提升百分比都是最大的。在單個(gè)城市場(chǎng)景中,SLSA性能提升率為43.25%,而在多城市場(chǎng)景中提升到了53.82%,SLSA性能對(duì)比其他算法有著明顯提升。
綜上所述,SLSA在ART和AFT指標(biāo)性能的提升上均優(yōu)于其他調(diào)度算法,在AST指標(biāo)上,雖然在單個(gè)城市場(chǎng)景中不如LRTA和DLDP算法,但差異并不大,且隨著地理范圍的增加,AST指標(biāo)性能提升也實(shí)現(xiàn)了反超,隨著地理分布范圍的增加,SLSA性能提升的優(yōu)勢(shì)會(huì)更加明顯。
5 結(jié)束語(yǔ)
本文針對(duì)當(dāng)前無(wú)服務(wù)器計(jì)算架構(gòu)不具備在邊緣場(chǎng)景中高效處理請(qǐng)求所需服務(wù)負(fù)載調(diào)度機(jī)制的問(wèn)題,提出了SLSA來(lái)解決直接采用云計(jì)算中輪詢調(diào)度策略而引起的函數(shù)執(zhí)行時(shí)延放大問(wèn)題,SLSA首先把工作過(guò)程中的服務(wù)負(fù)載調(diào)度響應(yīng)時(shí)間看成黑盒,然后基于負(fù)載調(diào)度器來(lái)觀察每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的平均歷史響應(yīng)時(shí)間,接著推導(dǎo)出對(duì)應(yīng)動(dòng)態(tài)變化的節(jié)點(diǎn)權(quán)重,基于得到的動(dòng)態(tài)節(jié)點(diǎn)權(quán)重對(duì)SWRR調(diào)度算法進(jìn)行改進(jìn),同時(shí)判斷在節(jié)點(diǎn)處放置負(fù)載調(diào)度器的有效性,最后進(jìn)行一個(gè)最優(yōu)化調(diào)度。經(jīng)仿真實(shí)驗(yàn)分析,在資源消耗方面,提出的SLSA相比于其他算法在資源消耗上有著明顯降低;在性能對(duì)比方面,SLSA在兩個(gè)不同場(chǎng)景下都有良好的性能表現(xiàn),且隨著地理位置分布和負(fù)載調(diào)度速率的增大,SLSA對(duì)比于其他調(diào)度算法的優(yōu)勢(shì)更明顯。在后續(xù)的研究中,將會(huì)對(duì)本文算法作進(jìn)一步優(yōu)化,針對(duì)不同請(qǐng)求可能具有不同的服務(wù)質(zhì)量(QoS)級(jí)別,來(lái)優(yōu)化不同QoS級(jí)別的請(qǐng)求響應(yīng)時(shí)間。
參考文獻(xiàn):
[1]Al-Doghman F, Moustafa N, Khalil I, et al. AI-enabled secure microservices in edge computing: opportunities and challenges[J]. IEEE Trans on Services Computing, 2022,16(2):1485-1504.
[2]Tang Qinqin, Xie Renchao, Yu F R,et al. Decentralized computation offloading in IoT fog computing system with energy harvesting: a Dec-POMDP approach[J]. IEEE Internet of Things Journal, 2020,7(6): 4898-4911.
[3]Jonas E, Schleier-Smith J, Sreekanti V, et al. Cloud programming simplified: a Berkeley view on Serverless computing[EB/OL]. (2019). https://arxiv.org/abs/1902. 03383.
[4]Li Yongkang, Lin Yanying, Wang Yang, et al. Serverless computing: state-of-the-art, challenges and opportunities[J]. IEEE Trans on Services Computing, 2022,16(2): 1522-1539.
[5]馬澤華, 劉波, 林偉偉, 等. 無(wú)服務(wù)器平臺(tái)資源調(diào)度綜述[J]. 計(jì)算機(jī)科學(xué), 2021,48(4): 261-267. (Ma Zehua, Liu Bo, Lin Weiwei, et al. Survey of resource scheduling for Serverless platforms[J]. Computer Science, 2021,48(4): 261-267.)
[6]Xie Renchao, Tang Qinqin, Qiao Shi, et al. When serverless computing meets edge computing: architecture, challenges, and open issues[J]. IEEE Wireless Communications, 2021,28(5): 126-133.
[7]Cassel G A S, Rodrigues V F, Da Rosa Righi R, et al. Serverless computing for Internet of Things: a systematic literature review[J]. Future Generation Computer Systems, 2022,128: 299-316.
[8]Rausch T, Rashed A, Dustdar S. Optimized container scheduling for data-intensive Serverless edge computing[J]. Future Generation Computer Systems, 2021,114: 259-271.
[9]Cicconetti C, Conti M, Passarella A, et al. Toward distributed computing environments with Serverless solutions in edge systems[J]. IEEE Communications Magazine, 2020,58(3): 40-46.
[10]Zhao Zichao, Zhao Rui, Xia Junjuan, et al. A novel framework of three-hierarchical offloading optimization for MEC in industrial IoT networks[J]. IEEE Trans on Industrial Informatics, 2019,16(8): 5424-5434.
[11]Xie Renchao, Gu Dier, Tang Qinqin, et al. Workflow scheduling in Serverless edge computing for the industrial Internet of Things: a learning approach[J]. IEEE Trans on Industrial Informatics, 2023,19(7):8242-8252.
[12]Suresh A, Somashekar G, Varadarajan A, et al. Ensure: efficient scheduling and autonomous resource management in Serverless environments[C]//Proc of IEEE International Conference on Autonomic Computing and Self-Organizing Systems. Piscataway,NJ:IEEE Press, 2020: 1-10.
[13]Ellis A. OpenFaaS-serverless functions made simple[EB/OL]. (2021)[2023-06-10]. https://docs.openfaas.com/.
[14]Dounin M. Nginx[EB/OL]. (2023)[2023-08-07]. https://github.com/nginx/nginx.
[15]Gao Chenhao, Wu Hengyang. An improved dynamic smooth weighted round-robin load-balancing algorithm[J]. Journal of Physics: Conference Series, 2022,2404(1): 012047.
[16]Aumala G, Boza E, Ortiz-Avilés L, et al. Beyond load balancing: package-aware scheduling for Serverless platforms[C]//Proc of the 19th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. Piscataway,NJ:IEEE Press, 2019: 282-291.
[17]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.
[18]Hannun A, Case C, Casper J, et al. Deep speech: scaling up end-to-end speech recognition[EB/OL]. (2014).https://arxiv.org/abs/1412.5567.
[19]Ellison R. Go-Ffmpeg[EB/OL]. (2021)[2023-06-10]. https://github. com/rodellison/go-ffmpeg.
[20]Zheng Senjiong, Liu Bo, Lin Weiwei, et al. A package-aware sche-duling strategy for edge Serverless functions based on multi-stage optimization[J]. Future Generation Computer Systems, 2023,144: 105-116.
[21]Raith P. Telemd[EB/OL]. (2022)[2023-06-10]. https://github. com/edgerun/telemd.