摘要:存算分離架構(gòu)的消息隊列被廣泛應用于運營商的核心計費業(yè)務場景,其對消息隊列的穩(wěn)定性要求極高,對異常的容忍度非常低。因此,快速識別、定位消息隊列的性能異常并及時止損就變得愈發(fā)重要。針對消息隊列性能異常的問題,傳統(tǒng)的方式是根據(jù)消息隊列集群指標設定告警閾值。此方式依賴專家進行規(guī)則配置,無法根據(jù)不同的集群規(guī)模和業(yè)務場景靈活、動態(tài)地調(diào)整規(guī)則或閾值,也無法預測消息隊列的性能發(fā)展趨勢,因此,極易造成重大故障?;?AI 的消息隊列性能預測能力,可以基于消息隊列的歷史表現(xiàn)情況,對關(guān)鍵指標進行7×24小時巡檢,能夠在性能異常尚在萌芽狀態(tài)就發(fā)現(xiàn)風險,實現(xiàn)性能異常的提前暴露。當消息隊列性能偏離正常范圍時,能夠及時發(fā)出警報,輔助運維人員在問題惡化前進行準確定位并及時止損。同時,根據(jù)性能預測結(jié)果可以對資源進行合理規(guī)劃,有效地治理集群,找出性能瓶頸,有針對性地進行性能優(yōu)化。本文利用 AI 算法,設計了基于存算分離構(gòu)架消息隊列的性能預測模型,能夠在消息隊列集群正常運行狀態(tài)下,對未來一段時間內(nèi)的性能做出較為準確的預測,從而有效預防未來可能出現(xiàn)的性能問題。
關(guān)鍵詞:存算分離;消息隊列;性能預測;治理集群;性能優(yōu)化
一、 引言
運營商計費系統(tǒng)由預處理、分揀、批價、扣款、入庫等多個模塊組成。各模塊之間的數(shù)據(jù)以話單文件為單位在 NAS 盤上傳輸,模塊之間的耦合度較高。隨著 5G 網(wǎng)絡的普及、話單量的迅速增長和業(yè)務場景的日趨復雜,對共享文件存儲的依賴性日益提高,導致NAS 逐漸出現(xiàn) I/O 瓶頸,使得計費系統(tǒng)無法線性擴展。為解決以上問題,通過引入消息隊列對計費系統(tǒng)模塊進行解耦,以期提升系統(tǒng)性能和擴展性。在云原生和 Serverless 時代,存算分離架構(gòu)的消息隊列能夠支持按照流量和存儲進行獨立的線性擴展。本文以云原生消息隊列為代表,介紹了對消息隊列進行性能預測的意義,具體包括:
(一)資源優(yōu)化和成本效益
通過性能預測,可以準確評估云原生消息隊列在不同業(yè)務場景負載下的資源需求,幫助用戶合理配置和調(diào)整資源,避免不必要的成本浪費。
(二)可伸縮性
通過性能預測,用戶可以了解云原生消息隊列在不同規(guī)模和負載下的表現(xiàn),以便根據(jù)業(yè)務需求進行流量和存儲空間的動態(tài)擴/縮容,確保系統(tǒng)能夠靈活應對負載變化。
(三)性能優(yōu)化和調(diào)優(yōu)
性能預測可以幫助識別云原生消息隊列系統(tǒng)中的性能瓶頸和潛在問題,指導用戶進行性能優(yōu)化和調(diào)優(yōu)工作。針對特定的工作負載和場景,可以調(diào)整系統(tǒng)參數(shù)、配置和算法,提高系統(tǒng)的性能和效率。
(四)容量規(guī)劃和資源利用
云原生環(huán)境中的資源是有限的。通過性能預測,用戶可以更好地規(guī)劃云原生消息隊列的容量,合理利用云資源,確保系統(tǒng)能夠滿足業(yè)務增長的需求。
(五)自動化和智能運維
性能預測可以為自動化的資源調(diào)配、彈性擴/縮容等操作提供數(shù)據(jù)支持,實現(xiàn)更智能的系統(tǒng)運維。
(六)應用性能保障
無論是在云原生環(huán)境還是 Serverless 架構(gòu)中,應用的性能對于用戶體驗和業(yè)務開展至關(guān)重要。因此,性能預測是實現(xiàn)高效、可靠和可擴展的云原生應用的關(guān)鍵手段之一。
本文以計費業(yè)務系統(tǒng)目前使用的云原生消息隊列為研究對象,基于歷史表現(xiàn)情況,利用AI 算法對關(guān)鍵指標進行分析預測,并根據(jù)預測結(jié)果,實現(xiàn)優(yōu)化資源利用、確??缮炜s性、進行性能優(yōu)化、規(guī)劃容量、實現(xiàn)智能運維、保障應用性能等目標。
二、 建模思路
(一)模型介紹
性能預測模型歸屬于時間序列預測模型。該預測模型通過編制和分析時間序列,以時間序列所反映的發(fā)展過程、方向和趨勢為基礎(chǔ),類推或延伸下一段時間可能達到的水平。根據(jù)實際應用場景,通過對數(shù)據(jù)周期性、季節(jié)性、不規(guī)則性的分析以及對業(yè)務背景的了解,本方案采用線性回歸模型對消息隊列集群過去7天的5分鐘顆粒度指標進行分析,輸出未來一天的預測結(jié)果。
本文采用ARIMA模型對未來一段時間內(nèi)的性能指標進行預測。結(jié)合了自回歸(AR)機制、移動平均(MA)策略與差分(I)技術(shù),通過差分處理使原始的非平穩(wěn)時間序列數(shù)據(jù)得以轉(zhuǎn)化為平穩(wěn)形態(tài),推導出差分自回歸移動平均模型ARIMA(p,d,q),括號內(nèi)d表示對數(shù)據(jù)進行差分處理的階數(shù)。ARIMA模型預測流程圖如圖1。
自回歸模型(AR)是一種時間序列分析工具,它揭示當前值與歷史值之間的關(guān)聯(lián)性,通過變量本身的歷史數(shù)據(jù)來預測其未來的趨勢。此模型的應用基于一個核心前提:時間序列數(shù)據(jù)需滿足平穩(wěn)性條件。
回歸模型(AR)在構(gòu)建時,首先需要確定一個關(guān)鍵參數(shù)—階數(shù)p。這個階數(shù)p代表了我們在預測當前值時,將回溯并使用多少期的歷史數(shù)據(jù)。p階自回歸模型的公式定義為:
自回歸模型在應用時確實面臨一些局限性和前提條件:
1、自我預測特性:自回歸模型主要依賴變量自身的歷史數(shù)據(jù)來進行預測。這種自我預測的方式雖然簡潔,但可能限制了模型捕捉外部影響因素的能力。
2、平穩(wěn)性要求:為了確保預測的準確性,時間序列數(shù)據(jù)必須滿足平穩(wěn)性的條件。這意味著數(shù)據(jù)的統(tǒng)計特性(如均值、方差)在時間上是恒定的。如果數(shù)據(jù)呈現(xiàn)非平穩(wěn)性,自回歸模型的預測效果可能會大打折扣。
3、適用范圍限制:自回歸模型最適合用于預測那些與自身前期緊密相關(guān)的現(xiàn)象。對于受到外部隨機因素或復雜系統(tǒng)動態(tài)影響的時間序列,自回歸模型可能無法提供準確的預測。此外,它也不適用于具有長期記憶性或非線性特征的數(shù)據(jù)。
(二)評估方法
在選擇某種特定的方法進行預測時,主要通過比較預測值與實際值之間的差距,即預測誤差來評價。最優(yōu)的預測方法是指預測誤差最小的方法。常用的評估標準有:
1.平均絕對誤差MAE
其中,y是觀測值,yhati是預測值,n是預測值個數(shù)。
2.均方根誤差RMSE
3.平均絕對百分誤差MAPE
基于本項目的應用場景,時間序列算法的數(shù)值預測均適用于以上三種評估方法,其中,MAE最為常用;MAPE比較好理解,且MAPE通過轉(zhuǎn)換即可得到平均準確率,因此,本文后續(xù)將以MAPE為基礎(chǔ),通過準確率來進行模型評估。
(三)模型思路
首先,分析消息隊列各指標的數(shù)據(jù)波動情況,確定使用機器學習的方式進行預測。
其次,針對使用機器學習方式預測的指標,根據(jù)歷史數(shù)據(jù)特征確定時序模型,并對數(shù)據(jù)進行平穩(wěn)性檢驗和白噪聲檢驗,以保證數(shù)據(jù)符合時序預測標準。
最后,利用訓練集樣本構(gòu)建合適的時間序列預測模型,輸出未來天數(shù)的指標預測值,并通過測試樣本對模型效果進行評估。
三、 建模過程
(一)樣本數(shù)據(jù)準備
用于預測消息隊列性能的指標數(shù)據(jù)取2024-01-24到2024-01-30的數(shù)據(jù)為訓練集,之后的數(shù)據(jù)為測試集。
(二)數(shù)據(jù)描述性分析
圖2為消息隊列各指標2024-01-24到2024-01-30的歷史數(shù)據(jù)的指標分布圖。運營商的業(yè)務分為忙時和閑時。通常情況下,白天忙時是網(wǎng)絡繁忙的時間段,這時候通過手機上網(wǎng)的人群比較多,屬于上網(wǎng)高峰時間段;晚上閑時是上網(wǎng)低峰時段。從圖2可以看出,數(shù)據(jù)變化主要呈現(xiàn)周期性狀態(tài)。
(三)數(shù)據(jù)預處理
1.缺失值處理
時間序列預測需要保證數(shù)據(jù)無缺失。雖然目前所獲數(shù)據(jù)中均無缺失值,但算法流程中仍需配備缺失值處理機制。對于少量的隨機缺失數(shù)據(jù),可采用線性插值的方式進行填充。這種方式對時序數(shù)據(jù)的原始規(guī)律性影響較小。
2.異常值處理
基于對應用場景的了解,性能指標數(shù)據(jù)理論應該大于等于0,對于小于0的數(shù)據(jù),應將其刪除后采用線性插值的方式進行填充。
3.平穩(wěn)性檢驗
時間序列通過分析隨機變量的歷史與當前狀態(tài)預測未來。假定這些變量狀態(tài)具代表性且可延續(xù),其核心特征(如均值、方差、協(xié)方差)在未來應保持穩(wěn)定,即平穩(wěn)性。實踐中,平穩(wěn)性檢驗多基于樣本值的統(tǒng)計特征分析,常用方法分為主觀圖形判斷和客觀統(tǒng)計檢驗。本場景采用客觀檢驗中的單位根檢驗,若顯著性水平小于0.05,則認為數(shù)據(jù)平穩(wěn)。
4.白噪聲檢驗
如果一個時間序列是平穩(wěn)的,接下來就要判斷數(shù)據(jù)是不是白噪聲。白噪聲表示數(shù)據(jù)為隨機性數(shù)據(jù),沒有研究意義。通??梢酝ㄟ^LB檢驗來檢驗時間序列是否為白噪聲。若LB檢驗的p值小于0.05,則認為樣本時間序列數(shù)據(jù)非白噪聲。
綜上所述,消息隊列各性能指標均滿足平穩(wěn)性檢驗,且為非白噪聲序列。
(四)建模構(gòu)建
四、 模型評估
(一)模型效果
5個消息隊列性能指標均使用日數(shù)據(jù)進行預測??梢钥闯?,隨著歷史數(shù)據(jù)的累計,性能指標預測的準確率也在逐步提升。根據(jù)模型評估結(jié)果,整體準確率在90%左右,還有優(yōu)化空間。目前性能指標數(shù)據(jù)累計時間較短,待數(shù)據(jù)不斷累計之后,同時結(jié)合業(yè)務角度分析影響各指標值波動的關(guān)鍵因素,則可挖掘出更多的數(shù)據(jù)規(guī)律,通過構(gòu)建更復雜的模型來提升預測準確率。
(二)性能預測應用
基于消息隊列的性能指標預測,方便用戶分析當前集群的性能和穩(wěn)定性,能夠更好地治理集群。本模型允許用戶針對生產(chǎn) TPS、消費 TPS、生產(chǎn)吞吐量、消費吞吐量和磁盤使用率創(chuàng)建容量規(guī)劃項,支持用戶對每個容量規(guī)劃項設置上限和預警水位。
用戶可以配置容量規(guī)劃任務,實現(xiàn)對特定集群的容量管理和預測告警,從而提前感知用量增長趨勢,提前規(guī)劃資源,從容應對擴/縮容操作。
在一些特殊情況下,用戶需要進行臨時業(yè)務規(guī)劃,這部分性能指標難以預測。容量規(guī)劃支持手動操作功能,幫助用戶調(diào)整預測曲線。
基于存算分離架構(gòu),可實時分析集群性能預測的指標。當磁盤使用率出現(xiàn)瓶頸時,通過增加磁盤或云存儲空間應對數(shù)據(jù)存儲的壓力。當網(wǎng)絡使用率出現(xiàn)瓶頸時,通過增加主機應對網(wǎng)絡傳輸?shù)膲毫Α?/p>
五、 結(jié)束語
本文針對消息隊列性能預測進行了深入研究。通過分析和實驗,得出了以下結(jié)論:本文提出的一種基于機器學習的消息隊列性能預測方法,能夠準確預測消息隊列的性能指標。通過實驗驗證,本文提出的方法在不同場景下具有較高的準確性和泛化能力。本文的研究為消息隊列的性能優(yōu)化和資源規(guī)劃提供了有價值的參考。當然,本文的研究還存在一些局限性,未來的研究可以從以下幾個方面進行深入探討:進一步提高預測模型的準確性和泛化能力,以適應更多、更復雜的實際場景;探索其他影響消息隊列性能的因素,并將其納入預測模型中;結(jié)合實際應用需求,開發(fā)更加實用的性能預測工具和系統(tǒng)。希望本文的研究能夠為消息隊列性能預測領(lǐng)域的發(fā)展作出貢獻,并為相關(guān)實踐提供有益的指導。
作者單位:王娟 中國移動通信集團江蘇有限公司
參考文獻
[1] 陳虹.模型預測控制[M].北京:科學出版社,2013.
[2] 席裕庚.預測控制(第 2 版)[M].國防工業(yè)出版社,2013.
[3] 冉小慶.Oracle 性能分析與預測研究[D].大連:大連海事大學,2003.
[4] 博克斯著,王成璋等譯.時間序列分析:預測與控制[M].機械工業(yè)出版社,2011.
[5] 張美英,何杰.時間序列預測模型研究綜述[J].數(shù)學的實踐與認識, 2011.41(18):189-195.
[6] 薛可,李增智,劉瀏,等.基于ARIMA模型的網(wǎng)絡流量預測[J].微電子學與計算機,2004,21(07):84-87.