陳 鳴,吳 瓊,趙洪蕊,姜玉稀
(1.上海三思電子工程有限公司,上海 201100;2.上海三思科技發(fā)展有限公司,上海 201100)
智慧交通是建設(shè)智慧城市的重要基礎(chǔ),是推進城市現(xiàn)代化的重要標(biāo)志[1]。2020年9月,交通運輸部提出交通領(lǐng)域新型基礎(chǔ)設(shè)施建設(shè)的具體落實舉措,旨在加快構(gòu)建智慧交通網(wǎng)絡(luò),提高出行效率和出行安全[2]。隨著B5G技術(shù)的發(fā)展[3-4],智慧交通迎來了更多的發(fā)展機遇,集智慧感知、智慧傳輸、智慧管理為一體[5],采集并處理海量的實時交通數(shù)據(jù),有助于加強交通網(wǎng)絡(luò)的檢測和管理。智慧交通采用邊緣計算[6-7],賦予網(wǎng)絡(luò)邊緣計算能力,在本地處理數(shù)據(jù),應(yīng)對日益增長的數(shù)據(jù)處理需求。然而出于設(shè)備成本的考慮,邊緣計算網(wǎng)絡(luò)的處理器難以配置較為充裕的冗余性計算資源和存儲空間[8]。鑒于邊緣處理器有限的計算能力,如何根據(jù)實時交通數(shù)據(jù)的流量和邊緣處理器的狀態(tài)進行資源合理分配是邊緣計算一個待解決的難點[9]。
目前,國內(nèi)外對于邊緣計算的相關(guān)問題進行了大量研究,但針對于智慧高速架構(gòu)中的邊緣計算資源調(diào)度問題關(guān)注較少。Mao等人[10]提出任務(wù)遷移卸載算法,該算法只依賴于當(dāng)前系統(tǒng)的狀態(tài),而不考慮當(dāng)前系統(tǒng)中的帶寬狀態(tài)、計算需求等問題;Meng等人[11]提出在有限計算能力的情況下,通過優(yōu)化計算任務(wù)隊列下的計算卸載問題來實現(xiàn)計算任務(wù)完成時延最小,但該方法僅適用于單服務(wù)器場景。Chen等人[12]考慮到邊緣處理器的功耗問題,通過設(shè)定邊緣處理器的功耗閾值確定邊緣處理器的狀態(tài),同時利用 Lyaponuv方法優(yōu)化資源的分配,但根據(jù)功耗判斷狀態(tài)仍不夠完善。
根據(jù)當(dāng)前方法的不足,本文提出了一種面向智慧高速網(wǎng)絡(luò)節(jié)點邊緣處理器的資源配優(yōu)化算法,該算法考慮了智慧高速網(wǎng)絡(luò)節(jié)點的層次化結(jié)構(gòu),對邊緣處理器的工作狀態(tài)進行了建模,根據(jù)其工作狀態(tài)進行資源配置優(yōu)化。實驗表明,本文算法可以在處理突發(fā)事件時能通過資源配置有效降低時延,使智慧高速網(wǎng)絡(luò)節(jié)點數(shù)據(jù)處理傳輸更加穩(wěn)定可靠。
智慧高速網(wǎng)絡(luò)包括三部分:云端、邊緣處理器和外接設(shè)備[13]。云端負責(zé)接收數(shù)據(jù)及下發(fā)任務(wù),起到統(tǒng)籌規(guī)劃全局的作用;邊緣處理器是智慧高速網(wǎng)絡(luò)的節(jié)點,從云端接收任務(wù)并下發(fā)至外接設(shè)備執(zhí)行,同時通過邊緣計算合理配置資源并進行數(shù)據(jù)計算處理,最終將收集處理完畢的數(shù)據(jù)傳回至云端;外接設(shè)備包括氣象傳感器、攝像頭、GPS及雷達等,其主要工作是負責(zé)收集數(shù)據(jù)以及執(zhí)行邊緣處理器下發(fā)的任務(wù)。智慧高速網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 智慧高速網(wǎng)絡(luò)節(jié)點結(jié)構(gòu)圖Fig.1 Node structure diagram of intelligent high-speed network
由圖1可以看出,智慧高速網(wǎng)絡(luò)是一種層次化網(wǎng)絡(luò)[14],云端為控制層,外接設(shè)備為執(zhí)行層,而邊緣處理器作為中間層起到了橋梁作用,連接著云端和外接設(shè)備,從而形成一種層次化網(wǎng)絡(luò)結(jié)構(gòu)。例如云端下發(fā)收集實時路段氣象信息這一任務(wù)至邊緣處理器,邊緣處理器在接收任務(wù)后控制氣象傳感器獲取當(dāng)前高速路段氣象信息,其中氣象傳感器收集的是最原始的數(shù)據(jù)。邊緣處理器對數(shù)據(jù)進行計算和簡化,并且上傳到云端。同時,經(jīng)過處理的信息將顯示在當(dāng)前路段標(biāo)志牌上提醒來往車輛。此外,云端還可以直接發(fā)布邊緣計算任務(wù)給邊緣處理器,邊緣處理器將任務(wù)分解成不同工作給相應(yīng)的外接設(shè)備執(zhí)行。利用邊緣處理器將外接設(shè)備所采集的數(shù)據(jù)直接在本地進行簡化和處理,在提高信息時效性的同時可以減少對傳輸速率、通信鏈路帶寬的需求與消耗[15]。
基于圖1所示的智慧高速網(wǎng)絡(luò)節(jié)點結(jié)構(gòu),通過邊緣計算算法設(shè)計,優(yōu)化網(wǎng)絡(luò)節(jié)點邊緣處理器資源配置能力,聯(lián)合多個網(wǎng)絡(luò)節(jié)點邊緣處理器組成一個靈活分配邊緣計算任務(wù)并具有故障自愈性的智慧高速系統(tǒng)。
本文通過云端與邊緣處理器之間的傳輸總時延[16]來表征邊緣處理器的工作狀態(tài)。傳輸總時延T的計算公式為:
(1)
式中,Tg為云端下發(fā)任務(wù)至邊緣處理器所產(chǎn)生的時延,可由云端下發(fā)任務(wù)時加入的時間戳T1和邊緣處理器接收到數(shù)據(jù)時的本地時間T2之差得出。Tp為邊緣處理器解析接收到的任務(wù)所產(chǎn)生的時延,可由邊緣處理器接收到數(shù)據(jù)時的本地時間T2和邊緣處理器為各外接傳感器分配任務(wù)時,在數(shù)據(jù)中加入的時間戳T3之差得出。j為連接到邊緣處理的第j個外接傳感器;Tdj為邊緣處理器下放任務(wù)給外接傳感器j后,其返回數(shù)據(jù)所產(chǎn)生的時延,可由邊緣處理器為各外接傳感器分配任務(wù)時,在數(shù)據(jù)中加入的時間戳T3和邊緣處理器接收到外接傳感器返回數(shù)據(jù)時的本地時間T4之差得出。Trj由兩部分時延組成,一部分時延由邊緣處理器將外接傳感器返回的數(shù)據(jù)進行預(yù)處理產(chǎn)生;另一部分時延由邊緣處理器將處理后的數(shù)據(jù)回傳給云端時產(chǎn)生,可將邊緣處理器接收到外接傳感器返回數(shù)據(jù)時的本地時間T4作為時間戳加入數(shù)據(jù)中,由云端接收到回傳數(shù)據(jù)時的本地時間T5和T4之差得出。
由計算得出的傳輸總時延T對邊緣處理器的工作狀態(tài)進行劃分,劃分規(guī)則如表1所示。其中,Tnormal為最大正常工作時延的閾值,Terror為最大故障工作時延的閾值。
表1 傳輸總時延與邊緣處理器工作狀態(tài)對應(yīng)關(guān)系
智慧高速網(wǎng)絡(luò)中,云端下發(fā)任務(wù)給對應(yīng)邊緣處理器,邊緣處理器再進行執(zhí)行?;诠ぷ鳡顟B(tài)模型,單個邊緣處理器執(zhí)行任務(wù)負載過大時,將處于繁忙或錯誤工作狀態(tài)。在本文設(shè)計的智慧高速網(wǎng)絡(luò)中,云端存儲每個邊緣處理器的任務(wù)和數(shù)據(jù)備份作為數(shù)據(jù)鏡像,當(dāng)邊緣處理器開始工作時向云端索要任務(wù)與數(shù)據(jù)備份。相應(yīng)的,邊緣處理器完成任務(wù)后會更新數(shù)據(jù)鏡像反饋給云端,當(dāng)云端發(fā)出新的任務(wù)時,邊緣處理器再接收新的數(shù)據(jù)鏡像并執(zhí)行任務(wù)。邊緣處理器執(zhí)行任務(wù)有3個重要規(guī)則:更新、獲取、恢復(fù)。
(1) 更新(邊緣處理器執(zhí)行任務(wù)時)
如果邊緣處理器發(fā)現(xiàn)其數(shù)據(jù)鏡像不存在,則會創(chuàng)建一個新的數(shù)據(jù)鏡像;否則用邊緣處理器的任務(wù)執(zhí)行結(jié)果數(shù)據(jù)更新數(shù)據(jù)鏡像的數(shù)據(jù)。在存儲數(shù)據(jù)時使用時間戳標(biāo)記最新的更新時間。如果云端生成新的任務(wù)時,數(shù)據(jù)鏡像中的任務(wù)將更新。
(2) 獲取(邊緣處理器收到任務(wù)時)
邊緣處理器向云端訂閱最新的數(shù)據(jù)鏡像。云端不需要知道哪個邊緣處理器訂閱了數(shù)據(jù)鏡像,只需根據(jù)邊緣處理器編號將數(shù)據(jù)鏡像發(fā)送到邊緣處理器。
(3) 恢復(fù)(邊緣處理器重啟時)
故障邊緣處理器重啟恢復(fù)時,會訂閱存儲在云端中的最新數(shù)據(jù)鏡像。檢查數(shù)據(jù)鏡像更新的時間戳和本地數(shù)據(jù)鏡像的時間戳。如果本地較新,則云端的數(shù)據(jù)鏡像將被更新,否則更新本地的數(shù)據(jù)鏡像。
上節(jié)描述了本文智慧高速網(wǎng)絡(luò)節(jié)點邊緣處理器的任務(wù)執(zhí)行規(guī)則,這些規(guī)則使得多個邊緣處理器之間進行資源配置成為可能。資源配置優(yōu)化基于工作狀態(tài)模型,其本質(zhì)是確保邊緣處理器處于正常工作狀態(tài),邊緣處理器的工作狀態(tài)轉(zhuǎn)換條件如圖2所示。本文所提出的資源配置優(yōu)化算法包括兩部分:一是應(yīng)對邊緣處理器的繁忙工作狀態(tài);二是應(yīng)對邊緣處理器的故障工作狀態(tài)。
圖2 邊緣處理器工作狀態(tài)轉(zhuǎn)移圖Fig.2 Edge processor working state transition diagram
2.2.1 繁忙工作狀態(tài)邊緣處理器資源配置優(yōu)化
邊緣處理器設(shè)備在繁忙工作狀態(tài)下執(zhí)行邊緣計算。當(dāng)總時延超過最大正常工作時延Tnormal時,表明邊緣處理器設(shè)備負載過大,邊緣計算效率降低,此時單個邊緣處理器無法滿足云端下發(fā)的邊緣計算任務(wù)。因此在繁忙工作狀態(tài)下,需要聯(lián)合多個邊緣處理器進行邊緣計算資源配置優(yōu)化,具體如圖3所示。
圖3 繁忙工作狀態(tài)邊緣處理器資源配置Fig.3 Edge processor resource configuration in busy state
設(shè)定高速公路的起點至終點方向為正方向,等間隔安裝n個邊緣處理器,依次記為D1,D2,D3,D4,…,Dk-1,Dk,Dk+1,…,Dn。由于各邊緣處理器的計算資源和處理數(shù)據(jù)的能力有限,現(xiàn)根據(jù)高速公路的線性特性,針對繁忙工作狀態(tài)和故障工作狀態(tài)下的各邊緣處理器的資源配置進行優(yōu)化。以Dk當(dāng)前工作狀態(tài)作為判斷標(biāo)準(zhǔn),資源配置優(yōu)化流程如下:
① 云端得知Dk處于繁忙工作狀態(tài);
② 云端尋找與Dk相鄰的Dk+1和Dk-1;
③ 云端將下一時刻要發(fā)送給Dk的任務(wù),按照任務(wù)相關(guān)程度的高低發(fā)送給另一個Di,其中Di∈{Dk-1,Dk+1}。
④ 云端再次獲取Dk的工作狀態(tài),若仍處于繁忙工作狀態(tài),則重復(fù)步驟①~③,直至云端得知邊緣處理器Dk已恢復(fù)正常工作狀態(tài)。
2.2.2 故障工作狀態(tài)邊緣處理器資源配置優(yōu)化
當(dāng)Dk處于故障工作狀態(tài)時,資源配置優(yōu)化流程如下:
① 各個邊緣處理器處于正常工作狀態(tài)時,向其相鄰邊緣處理器發(fā)送其設(shè)備序號,即Dk向Dk-1和Dk+1發(fā)送其設(shè)備序號;
② 2Dk-1和Dk+1若未接收到應(yīng)處于正常工作狀態(tài)的Dk的設(shè)備序號,則判定Dk處于故障工作狀態(tài),并通知云端;
③ 云端得知Dk處于故障工作狀態(tài),將其從邊緣處理器設(shè)備列表中刪除,并對所有邊緣處理器進行重新編號;
④ 云端將下一時刻要發(fā)送給出現(xiàn)故障的Dk任務(wù),根據(jù)任務(wù)與邊緣處理器之間斯皮爾曼相關(guān)系數(shù)的大小作為依據(jù),發(fā)送給另一個Di,其中Di∈{Dk-1,Dk+1};
⑤ 處于故障狀態(tài)的Dk恢復(fù)正常工作后,云端重新將其加入邊緣設(shè)備列表中,并對所有邊緣處理器進行重新編號。
其中,云端調(diào)度的任務(wù)與邊緣處理器之間的相關(guān)程度采用斯皮爾曼相關(guān)系數(shù)進行計算,如式(2)所示。其值用來衡量云端下發(fā)的任務(wù)在邊緣處理器中執(zhí)行的必要性。若計算值大,則表明該任務(wù)可由當(dāng)前邊緣處理器執(zhí)行;若計算值小,則表明該任務(wù)應(yīng)由其他邊緣處理器執(zhí)行。
(2)
為了驗證本文提出的優(yōu)化算法,根據(jù)建立的智慧高速網(wǎng)絡(luò)結(jié)構(gòu)與邊緣處理器工作狀態(tài)模型,進行仿真實驗。實現(xiàn)資源配置優(yōu)化的偽代碼如算法1所示。
在仿真時,假設(shè)系統(tǒng)中共有5個邊緣處理器,同時假設(shè)數(shù)據(jù)傳輸速度是確定的,此時,邊緣處理器處理數(shù)據(jù)時產(chǎn)生的時延對總時延的影響較大,所以采樣點的初始時延由前一采樣間隔內(nèi)云端發(fā)布的任務(wù)數(shù)據(jù)量和邊緣處理器的處理能力以及各傳輸時延決定。在未進行資源配置優(yōu)化的情況下,5個邊緣處理器在各采樣時間點的總時延如圖4所示。設(shè)定Tnormal為3 ms,邊緣處理器設(shè)備4在T12時刻總時延超過3 ms,即進入繁忙工作狀態(tài),由于云端沒有進行合理的資源分配,導(dǎo)致該邊緣處理器設(shè)備在T12時刻之后始終處于繁忙工作狀態(tài)。
圖4 繁忙工作時多邊緣處理器總延時變化圖Fig.4 Variation diagram of total delay of multi-edge processor during busy working state
以表2中資源配置優(yōu)化的偽代碼為核心,在采用資源優(yōu)化算法的情況下,5個邊緣處理器在各采樣時間點的總時延如圖5所示。邊緣處理器設(shè)備4在T12采樣時刻進入繁忙工作狀態(tài),通過資源配置優(yōu)化后,由邊緣處理器設(shè)備5承接了下一時刻云端原本將下發(fā)給邊緣處理器設(shè)備4的任務(wù)。在T13采樣時刻,邊緣處理器設(shè)備4的總時延低于3 ms,重新變?yōu)檎9ぷ鳡顟B(tài)。
圖5 資源配置優(yōu)化后多邊緣處理器總延時變化圖Fig.5 Variation diagram of total delay of multi-edge processor after resource allocation optimization
由此可見,在未進行資源配置優(yōu)化的情況下,當(dāng)邊緣處理器進入繁忙工作狀態(tài)之后,云端將繼續(xù)為其分配任務(wù),導(dǎo)致該邊緣處理器將長時間處于繁忙工作狀態(tài),這可能會影響該邊緣處理器的工作效率;同時,其他處于正常工作狀態(tài)的邊緣處理器的資源難以得到合理利用。在進行資源配置優(yōu)化之后,可以將各邊緣處理器的總時延降低至3 ms以下,合理利用了邊緣處理器的資源。
在智慧高速系統(tǒng)中,當(dāng)邊緣處理器出現(xiàn)故障后,實現(xiàn)自愈調(diào)度控制,圖6對這一過程進行了推演。
圖6 故障工作狀態(tài)邊緣處理器資源配置Fig.6 Edge processor resource allocation during fault working state
圖6中,Dk顏色變?yōu)楹谏?,代表Dk出現(xiàn)故障,此時自愈調(diào)度算法控制相鄰Dk-1、Dk+1承接故障Dk的工作;Dk-1、Dk+1承接后,顏色變?yōu)榧t色,表示進入繁忙工作狀態(tài),因此對繁忙Dk-1與Dk+1進行資源配置,配置完成后,Dk-1、Dk+1、Dk-2、Dk+2處于一個相對正常的工作狀態(tài);Dk不再執(zhí)行邊緣計算任務(wù),同時整個邊緣計算層的平均時延降低,直至Dk恢復(fù)正常。
本文以建設(shè)智慧高速為背景,將智慧高速網(wǎng)絡(luò)節(jié)點視為邊緣處理器并引入邊緣計算。在邊緣處理器收集到各種數(shù)據(jù)后,直接在本地通過邊緣計算得到處理后的信息,從而大大提高了信息處理的時效性,也可以有效提高分布式組網(wǎng)傳輸速率,并減少對通信鏈路帶寬的苛刻要求。本文設(shè)計了邊緣計算方案,通過對執(zhí)行邊緣計算任務(wù)的總時延進行監(jiān)控,總時延的大小分別對應(yīng)“正常、繁忙、故障”三種工作狀態(tài)模式,按照邊緣計算方案執(zhí)行任務(wù)均衡分配和調(diào)度。為了保證邊緣計算層的穩(wěn)定性,當(dāng)故障發(fā)生時,采用自愈調(diào)度方案,云端不直接進行干預(yù)。通過建立工作狀態(tài)模型與實驗仿真驗證本文邊緣計算算法設(shè)計的合理性與有效性,實驗結(jié)果表明,當(dāng)邊緣處理器發(fā)生故障時,相鄰處理器能夠承接其任務(wù),并且邊緣設(shè)備處理的總時延可以控制在3 ms以下。