張 旭,崔建峰,楊 威
(廈門理工學院軟件工程學院,福建 廈門 361024)
邊緣計算是指在靠近數(shù)據(jù)源頭的一側,采用網(wǎng)絡、計算、存儲、應用核心能力為一體的開放平臺,就近提供最近端服務。由于傳輸鏈路的縮短,邊緣計算能夠在數(shù)據(jù)產(chǎn)生側快捷、高效地響應業(yè)務需求,數(shù)據(jù)的本地處理也可以提升用戶隱私保護程度[1]。隨著邊緣計算能力的不斷提高和完善,這種新的計算范式不再受構建集中數(shù)據(jù)中心的需求所約束[2]。結合虛擬化和云計算技術,邊緣計算建立起數(shù)量多、規(guī)模小、分布廣的邊緣節(jié)點,這些節(jié)點可以為多種應用場景提供服務[3-4]。目前,許多云廠商如AWS、微軟、阿里、騰云等紛紛布局邊緣計算,與其各自云計算、CDN業(yè)務復用基礎設施,包括邊緣節(jié)點、服務器、網(wǎng)絡等資源[5-7]。
由于邊緣計算的分布式特性,邊緣節(jié)點的規(guī)模、網(wǎng)絡質量、硬件性能與配置、帶寬成本等參差不齊,如何在復雜的網(wǎng)絡環(huán)境中跨集群管理成千上萬臺邊緣服務器,在提升服務質量的同時又降低業(yè)務成本,成為邊緣計算面臨的一大挑戰(zhàn)[8-10]。當前,常見的邊緣計算節(jié)點規(guī)模較小,服務器數(shù)量一般在100臺以內,服務器故障的容錯率較低[11]。同時,邊緣計算節(jié)點地理位置分布較廣,大部分沒有IT維護人員,造成了故障恢復周期長、運維成本高等問題[12-13]。邊緣計算的業(yè)務類型是多樣化的,包括物聯(lián)網(wǎng)、視頻、游戲、工業(yè)自動化等,不同業(yè)務對底層計算資源的要求差異巨大[14-16]。因此,邊緣計算往往對服務器的可靠性與配置有較高的要求,特別是當邊緣節(jié)點沒有備份時,以上問題將會成倍放大[17]。在邊緣計算起步階段,針對服務器管理的研究主要以網(wǎng)絡監(jiān)控為主[17-19],多數(shù)研究方法針對服務器硬件層及操作系統(tǒng)層進行監(jiān)控分析,重點關注服務器的利用率及穩(wěn)定性[20-25]。隨著邊緣計算的興起,相關研究將重點放在如何提升邊緣計算服務器服務質量及運維效率上,在保障系統(tǒng)穩(wěn)定運行的同時,進行了服務質量 (quality of service,QoS)優(yōu)化。這些研究方法主要基于服務器端的數(shù)據(jù)采集,通過智能控制、機器學習相關算法實現(xiàn)服務器故障檢測及預警、性能管理、配置管理、運維決策等[26-27]。黃冬晴等[28]提出一種基于貪心算法的最優(yōu)計算資源分配和卸載策略,它可以有效降低邊緣計算的用戶成本。任麗芳等[29]提出用戶空間聚類算法及邊緣服務器QoS預測算法,它可以對邊緣節(jié)點服務器的QoS狀態(tài)進行預測和優(yōu)化。付韜[30]在分析現(xiàn)有邊緣計算系統(tǒng)架構基礎上,提出了一種端到端服務質量測試及評估方法。目前,這些研究多以降低故障率為主要目標,且較少涉及邊緣計算的上層業(yè)務,因此,在提高運維效率、服務器性能及成本優(yōu)化、細化管理顆粒度等方面效果不明顯。
為了從服務器端有效發(fā)現(xiàn)瓶頸,提升服務質量,基于邊緣計算業(yè)務的特點,本文設計出一種服務器性能評估及優(yōu)化模型,實現(xiàn)對服務器的動態(tài)業(yè)務規(guī)劃和軟硬件配置的優(yōu)化調整,在提升業(yè)務質量的同時,降低運維工作量和邊緣計算業(yè)務的總擁有成本。
對于邊緣計算應用而言,服務器性能指標與服務器硬件配置、業(yè)務特征有關,因此,在相同業(yè)務特征下的服務器性能指標才具有分析的意義。本模型先從單臺服務器中動態(tài)采集邊緣計算業(yè)務特征指標、性能指標和服務質量指標等,通過匯聚算法從采集的海量數(shù)據(jù)中得到本模型常用的匯聚指標。基于匯聚指標,通過巡檢模型評估需要進行優(yōu)化的目標服務器,并根據(jù)動態(tài)調整模型中的決策方案對服務器實施優(yōu)化調整。模型架構設計具體如圖1所示,本模型主要包括以下4個模塊:
圖1 模型總體架構圖Fig.1 Model architecture
1)數(shù)據(jù)動態(tài)采集模塊。本模塊部署在邊緣節(jié)點的每臺服務器上,采集內容主要包括業(yè)務指標、系統(tǒng)指標、硬件指標等。比如:代表業(yè)務特征的http/https請求數(shù)、磁盤IOPS;代表業(yè)務負載大小的流量帶寬;代表服務器配置的CPU型號、內存容量、磁盤配置;代表服務器性能的CPU使用率、內存使用量、應用內存使用量、磁盤容量使用量和磁盤輸入輸出性能相關指標;代表服務質量的軟件首包響應時間等?;谶吘売嬎愕奶攸c,其業(yè)務流量和負載是隨時間動態(tài)變化的,每天都會有低谷期與高峰期,性能消耗在流量高峰期是最大的。該模塊的數(shù)據(jù)采集粒度為分鐘,并動態(tài)計算流量高峰期的相關指標數(shù)據(jù)進行匯聚。
2)數(shù)據(jù)匯聚模塊。服務器的性能指標、服務質量指標與業(yè)務特征、業(yè)務流量大小、數(shù)據(jù)時間、業(yè)務類型及服務器配置有關,在數(shù)據(jù)采集模塊采集到服務器相關信息后,需要在數(shù)據(jù)匯聚模塊將運行相同業(yè)務類型的服務器進行歸類,根據(jù)不同的服務器配置、業(yè)務流量等進行匯聚。該模塊采用了自定義的日峰值算法、日均值算法、超閾值占比算法等。
3)自動巡檢模塊。本模塊實現(xiàn)自動巡檢功能,通過各項指標的波動率及閾值模型實現(xiàn)自動巡檢算法,當此算法的每項指標的波動率或者值超過閾值時,就觸發(fā)巡檢命中條件,命中后將依據(jù)巡檢結果提供決策依據(jù),處理的緊急程度分為嚴重、中等、輕度等。
4)動態(tài)調整模塊。通過對服務器性能、業(yè)務特征和服務質量等匯集指標的評估,得到需要優(yōu)化的目標服務器及決策依據(jù),依據(jù)模型給出的不同條件對服務器進行優(yōu)化。針對邊緣計算服務器的特點,采取的主要優(yōu)化措施包括服務器配置調整、業(yè)務能力配額調整、業(yè)務規(guī)劃方案調整、優(yōu)化軟件和配置、持續(xù)關注暫不處理等。對任何服務器的優(yōu)化調整將動態(tài)反饋給巡檢模型對相關指標進行修正。
在數(shù)據(jù)采集模塊,本文把需要采集的服務器信息歸為4類,主要包括業(yè)務特征指標、硬件配置信息、服務器性能指標和服務質量指標,每一類指標包含一些服務器相關的軟硬件參數(shù),具體見表1。
表1 基礎數(shù)據(jù)表Table 1 Basic data
在本研究提出的服務器性能評估及優(yōu)化模型中,將相同業(yè)務類型的機器先匯聚后進行巡檢,針對每臺服務器需要先選取各指標的當日負載值代表當天負載消耗情況。邊緣計算的業(yè)務流量是隨著客戶的使用而動態(tài)變化的,因此,對每個指標的采集周期為分鐘,并選取每天采集結果中從大到小排在5%數(shù)據(jù)作為該指標的當日負載值。各個指標的匯聚方式按照如下算法進行計算。
1)日峰值匯聚算法。該算法的計算公式為:
(1)
將xi從大到小進行排序,即
x1≥x2≥x3≥…≥xm≥…≥xn。
(2)
式(1)~式(2)中:PX表示某個具體指標的匯聚日峰值,比如PQPS、PIOPS等;xi代表第i臺服務器的某個具體指標的當日負載值,比如QPS、IOPS等;m=|w×n|,w為需要的“峰w值”,本文取“峰二十值”,n為滿足巡檢范圍的服務器總數(shù)。
2)日均值匯聚算法。該算法的計算公式為:
(3)
式(3)中:AX表示某個具體指標的匯聚日均值,比如AQPS、AIOPS等;xi為第i臺服務器的滿足巡檢范圍的指標當日負載值;n為滿足巡檢范圍的服務器總數(shù)。
3)超閾值占比算法。該算法的計算公式為:
(4)
式(4)中:RX表示某個具體指標的超閾占比值,比如RQPS、RIOPS等;m表示指標數(shù)據(jù)超過閾值的機器數(shù);n為滿足巡檢范圍的服務器總數(shù)。
通過以上算法,可以得到本模型中常用的匯聚指標,具體見表2。在自動巡檢模塊中,需要對各個采集及匯聚的指標設定閾值,本文模型包含的閾值見表3。
表2 匯聚指標名稱Table 2 Aggregation indicators
表3 配置巡檢閾值表Table 3 Check threshold values
巡檢模塊會將計算獲得的各性能評估值與設定性能評估閾值進行比較,具體的比較邏輯遵循以下原則:1)判斷計算峰值是否大于對應峰值閾值;2)若計算峰值不大于對應峰值閾值,則判斷計算均值是否大于對應均值閾值;3)若計算均值不大于對應均值閾值,則判斷服務器占比是否大于對應占比閾值。
在對比算法中,將計算所得的性能評估值與預設的性能評估閾值進行比較,對計算得到的波動值與對應的閾值進行比較,生成針對同一分類的服務器的性能評估結果。具體邏輯為:1)若峰值不大于對應峰值閾值,均值不大于對應均值閾值,且占比不大于對應占比閾值,則此類服務器生成不存在異常的性能評估結果;2)若峰值大于對應峰值閾值,均值大于對應均值閾值,且占比大于對應占比閾值,將大于預設的性能評估閾值的性能評估值對應的性能評估數(shù)據(jù)進行異常標注,此類的服務器存在異常的性能評估結果。
比如:在大于預設的性能評估閾值的性能評估值對應的性能評估數(shù)據(jù)是業(yè)務特征指標對應的業(yè)務特征數(shù)據(jù)時,得到此類服務器存在異常的性能評估結果,包括http請求波動率升高、https請求波動率升高、每秒進行讀寫操作的次數(shù)IOPS波動率升高中的任意一項或幾項;在大于預設的性能評估閾值的性能評估值對應的性能評估數(shù)據(jù)是設備性能指標對應的設備性能數(shù)據(jù)時,得到此類服務器存在異常的性能評估結果,包括波動率升高+過高天數(shù)占比高、波動率升高+過高天數(shù)占比0、波動率升高+過低天數(shù)占比0、波動率降低+過高天數(shù)占比0、波動率降低+過低天數(shù)占比0、過低天數(shù)占比中的任意一項或幾項。文中以QPS請求波動值為例,對自動巡檢算法進行描述:
(5)
在本研究方法中,其他指標對應的波動值的計算與上述給出的計算請求數(shù)波動值方式基本相同。關于各指標對應的使用率波動范圍的計算,具體如下:
(6)
式(6)中:Rhigh為使用率過高天數(shù)占比;Rlow為使用率過低天數(shù)占比;m為巡檢時間段中大于對應使用率最大值的天數(shù);i為小于對應使用率最小值的天數(shù);n為巡檢時間段總天數(shù)。
通過以上的巡檢算法即可得到性能評估結果,評估結果由各個指標對應組合而成。本研究根據(jù)不同評估結果給出對應的決策方案,具體見表4。
表4 評估決策表Table 4 Evaluation and decision making
在上述決策方案中,設計軟件優(yōu)化、業(yè)務規(guī)劃調整、額定能力調整等方案,均可以與現(xiàn)有的業(yè)務系統(tǒng)或者監(jiān)控系統(tǒng)進行對接,自動化完成,可以減少人工維護的成本及系統(tǒng)優(yōu)化的效率。由于絕大部分服務器在邊緣節(jié)點,涉及硬件調整的方案可以先做預警,待維護人員去現(xiàn)場時再進行調整。通過本性能巡檢模型提前發(fā)現(xiàn)硬件異常,是目前大部分服務器監(jiān)控系統(tǒng)實現(xiàn)不了的功能,也是在邊緣計算節(jié)點環(huán)境中迫切需要的功能。
本文的研究成果已應用于某邊緣計算服務商的真實環(huán)境,目前部署該模型的節(jié)點規(guī)模超過400個,涉及的場景包括物聯(lián)網(wǎng)、互動直播、在線教育、視頻監(jiān)控、工業(yè)互聯(lián)網(wǎng)等。根據(jù)邊緣計算的特點,邊緣節(jié)點的運行和部署都是動態(tài)的,為保證資源合理性,會通過調度算法將節(jié)點的服務器平均利用率控制在60%~80%[31-32]。為了進行有效對比,本實驗按照如下標準選擇邊緣計算節(jié)點進行結果分析:1) 節(jié)點服務器數(shù)量大于64臺;2) 節(jié)點連續(xù)運行時間大于12個月;3) 部署本模型時間超過6個月;4) 節(jié)點服務器平均利用率在60%~80%。最后篩選出60個邊緣計算節(jié)點,具體實驗環(huán)境見表5。
表5 實驗環(huán)境Table 5 Testing environment
為了說明運行效果,文中統(tǒng)計了模型部署后6個月觸發(fā)決策方案的類型和數(shù)量,并與前6個月進行對比。在未部署該模型前,只有部分措施用于服務質量異常報警或者服務器宕機時的被動處理,此部分數(shù)據(jù)取自系統(tǒng)的維護日志。具體結果見表6。
表6 測試結果Table 6 Testing result
由表6可以得到:
1)本模型每月觸發(fā)的降低額定設備能力、優(yōu)化軟件、調整業(yè)務規(guī)劃方案等措施約占總體服務器的25.08%。與模型部署以前相比,這4項措施的實施次數(shù)每月增加了348次,增加38.62%,說明可以通過模型主動發(fā)現(xiàn)系統(tǒng)隱患,大大提升了服務質量。通過模型自動完成優(yōu)化工作,減少了人工運維的時間。根據(jù)這幾項工作量在運維工作中的占比(約40%),可以估算出運維效率提升了10%左右。
2)本模型觸發(fā)提升額定設備能力及降低硬件配置的比例約占3.57%,可以通過這部分的工作及時提升服務器利用率,從而降低系統(tǒng)成本。在未部署本模型之前,系統(tǒng)暫無對應的成本優(yōu)化策略。
3)需要對服務器進行物理操作的如提升硬件配置、降低硬件配置的情況約占1.36%,通過發(fā)現(xiàn)類似情況,可以提前計劃維護人員進行現(xiàn)場運維的工作,減少人工運維的成本,提高運維效率。
4)本模型記錄了約25.10%的系統(tǒng)異常,這部分處理意見為暫不處理,但是通過模型提前識別風險,也可以對系統(tǒng)的可靠性和穩(wěn)定性提供有力的數(shù)據(jù)支持。在未部署本模型之前,系統(tǒng)暫無法識別此范圍的服務器。
測試結果提取了模型部署前后6個月的系統(tǒng)異常警告數(shù)據(jù)(見圖2),對比結果可見,本模型上線后的6個月,系統(tǒng)異常日均警告次數(shù)由20.6下降到15.2,下降比例達到26%,也說明,通過對服務器性能的巡檢評估及時調整,明顯減少了服務質量的下降甚至是故障的發(fā)生。
圖2 系統(tǒng)異常統(tǒng)計Fig.2 QoS exceptions
基于對單臺服務器動態(tài)采集的多維指標,并通過匯聚算法得到業(yè)務匯聚指標,通過自動巡檢和動態(tài)調整對業(yè)務進行監(jiān)控分析和性能優(yōu)化,本研究提出了面向邊緣計算環(huán)境的服務器性能評估及優(yōu)化模型。該模型實現(xiàn)了以下目標:
1)實現(xiàn)了基于服務器性能評估的動態(tài)優(yōu)化調整。該模型可以動態(tài)識別不同業(yè)務關聯(lián)的節(jié)點和服務器,并根據(jù)業(yè)務特點動態(tài)制定評估模型,得出優(yōu)化決策方案應用于此范圍的服務器,實現(xiàn)以業(yè)務類型為粒度的動態(tài)管理,在提高業(yè)務性能的同時使運營效率提升了10%。
2)實現(xiàn)了服務器端的多維度分析及決策支持。該模型提煉出描述業(yè)務特點指標與衡量服務質量指標,同硬件性能指標相結合,從多維度分析服務器性能消耗原因,為業(yè)務提供包括軟硬件配置、設備能力規(guī)劃、業(yè)務負載調度等決策方案,將系統(tǒng)服務質量提升26%,同時降低了3.57%的運維成本。
3)實現(xiàn)了面向分布式服務器的自動化性能監(jiān)控。通過對周期內的指標數(shù)據(jù)進行數(shù)據(jù)分析,制定巡檢算法及預測模型,自動化輸出決策方案與相應的變化趨勢,實現(xiàn)智能化運維管理。
基于本模型的思路,后續(xù)可以進一步改進算法,對本文提出的指標類型、評估閾值、判斷模型等引入機器學習相關算法進行自動學習,從而提高評估模型的準確性與智能化程度。