徐 健
(中國移動通信集團上海有限公司,上海 200060)
隨著電信運營商深層次多方位市場發(fā)展的需要,新業(yè)務不斷推出,用戶數(shù)量也在快速穩(wěn)定地持續(xù)增長。計費資費方式的多樣化以及計費話單量的快速增加,使計費系統(tǒng)的主機負載能力面臨巨大的挑戰(zhàn)。特別是在圣誕、元旦和春節(jié)等業(yè)務高峰期,計費系統(tǒng)的業(yè)務量達到日常業(yè)務量幾倍以上。在這樣的情況下,在系統(tǒng)運維中一方面需要有效地控制并降低業(yè)務受影響的風險,切實保證業(yè)務的安全穩(wěn)定運行;另一方面又要對系統(tǒng)資源進行合理有效的管理和配置,避免資源的浪費。因此,需要對計費系統(tǒng)的負載模型進行深入研究,用以指導實際的生產(chǎn)維護,實現(xiàn)精確運維與穩(wěn)定運維。
文獻[1]在分析服務器負載特性的基礎上,結(jié)合應用時間序列提出了服務器負載預測方法;文獻[2]提出一種預測主機負載的線性時間序列模型法,雖適用于各類主機,但是該方法沒有明確各種預測模型的預測能力;文獻[3]使用聚合歷史時間序列采集點的方法,對未來主機運行負載進行了預測;文獻[4-5]與文獻[3]類似,也是基于歷史主機負載數(shù)據(jù)對主機負載進行預測;文獻[6]對9種預測模型進行了分析與評估,對于時間序列 AR模型的評價較高??梢钥吹?,在上述文獻中提出的主機負載的預測方法與模型,其核心是基于主機負載的歷史數(shù)據(jù)記錄。這類預測方法很難預測由于突發(fā)業(yè)務流量引起的主機負載突變。文獻[7]分析集群節(jié)能配置策略前簡單介紹了一種基于前一個時刻服務請求情況的在線負載預測方法。同樣較難預測突發(fā)業(yè)務流量引起的主機負載突變。
本文從引起主機負載變化的最基本因素——業(yè)務流量的變化角度出發(fā),研究主機負載與計費業(yè)務流量之間的內(nèi)在關系,建立一種新的負載模型。
計費系統(tǒng)負載主要包含主機的CPU負載、內(nèi)存負載以及存儲設備的I/O負載。由于主機的CPU負載直接影響到計費系統(tǒng)的業(yè)務處理效率,因此在研究過程中重點是建立計費系統(tǒng)主機的CPU負載模型。
由于不同的業(yè)務處理過程對系統(tǒng)資源的消耗情況各異,因此在研究計費主機CPU負載模型之前,首先需要對同一臺主機上的業(yè)務流程進行分解,從而分析每一個業(yè)務流程的影響。對于常見的電信運營商計費系統(tǒng),其主機上的業(yè)務可以按2種維度進行細分:(1)從業(yè)務類型維度進行細分,可以分為對語音話單、短信話單、無線寬帶話單、上網(wǎng)流量話單等業(yè)務。(2)從處理流程維度進行細分,可以對于不同類型的話單有可以分為預處理、剔重、解碼、解析、批價、入庫等處理流程與階段。
特定業(yè)務可能運行在不同的主機上,同時業(yè)務處理本身也可能發(fā)生變化,為了在不斷變化的環(huán)境下準確地計算該業(yè)務的CPU負載,需要找到一個相對恒定的量來描述單筆業(yè)務處理的負載情況。
文獻[8]介紹了面向Web服務器集群的性能評價方法,但是該方法無法用來評價計費主機的性能;文獻[9]針對承載銀行中間件業(yè)務的主機給出相應性能模型和測量方法,由于與計費業(yè)務處理邏輯上有很大差異,因此也無法直接用來評價計費主機的性能。因此,研究人員根據(jù)實際情況參考文獻[10]中tpmC(transactions per minute-C)值的評價方法:對于某一個特定的處理步驟i,如果可以計算得到該步驟處理單筆業(yè)務所需要的tpmC值,將該值定義為該處理階段的tpmC當量iτ,那么該處理步驟在某一時刻的CPU負載為: cpui=xi×τi/tpmC 。其中,tpmC為該主機標稱的tpmC值;τi為第i個處理階段的tpmC當量;xi為第i個處理階段在某一個時刻的每分鐘業(yè)務量。
一方面,由于在單臺主機上同時運行著多個處理階段(進程),每一個處理進程各自負責本身的處理步驟,其處理單筆業(yè)務所需要的tpmC當量不盡相同;另一方面,在同一臺主機上同時包含部分特殊進程,該類進程是固定的系統(tǒng)進程。綜合考慮這2種情況,對于整臺主機,其CPU負載情況為:
其中,c值為系統(tǒng)進程所占用的CPU資源;tpmC為該主機標稱的tpmC值;iτ為第i個處理階段的tpmC當量;xi為第i個處理階段在某一個時刻的每分鐘業(yè)務量。接下來就是確定計費系統(tǒng)中每一個處理階段的tpmC當量iτ的值。
為了分析、尋找特定主機上各業(yè)務進程所對應的tpmC當量。需要從各業(yè)務進程的業(yè)務流量與該進程CPU負載之間存在的聯(lián)系進行分析。
從圖 1、圖 2看出,特定業(yè)務的業(yè)務量與相關進程的CPU使用率之間密切相關,且存在y=kx+b的線性關系。
圖1 業(yè)務量與CPU對比
圖2 業(yè)務量與CPU趨勢分析
由前面的公式 cpui=xi×τi/tpmC ,cpui=k· xi+b可以得到:
使用上式可以計算出每一個業(yè)務進程的tpmC當量iτ。
在計算出iτ后,就可以計算一臺主機在給定業(yè)務壓力集合(X)下的CPU負載模型為:
其中,xi∈X,iτ為之前計算得到的tpmC當量。在使用該模型時,上式中的c、和iτ為已知量,只要再將預測的業(yè)務量集合(X)的具體數(shù)值以及業(yè)務所在主機的 tpmC值代入到上式中,就可以計算出在預測的業(yè)務量集合下,特定主機上的CPU負載情況。從上面的模型中可以發(fā)現(xiàn),計費主機負載預測的準確性主要依賴于對計費業(yè)務量集合(X)預測的準確性。圖3、圖4對近3年內(nèi)主要計費業(yè)務量的趨勢進行了分析(根據(jù)業(yè)務數(shù)據(jù)保密性要求,圖中不顯示具體業(yè)務量,趨勢公式中的常數(shù)使用s1、s2、s3、s4表示),其中,業(yè)務1、業(yè)務2、業(yè)務3使用指數(shù)曲線進行擬合的擬合度非常高,業(yè)務4則使用線性曲線擬合度較高。
圖3 主要計費業(yè)務量趨勢分析
圖4 計費業(yè)務業(yè)務量趨勢分析
將各業(yè)務預測公式代入前面得到的CPU負載模型公式可以得到預測某一個時間點計費系統(tǒng)負載的模型為:
其中,τ1i、τ2i、τ3i、τ4i分別為4種類型業(yè)務在第i個處理階段的tpmC當量。在實際預測時可以根據(jù)預期前一段時間的計費業(yè)務量進行滾動統(tǒng)計,更新業(yè)務趨勢曲線參數(shù),進一步提高預測精度。
由于在春節(jié)期間,實際的業(yè)務量,特別是短信業(yè)務量往往達到全年的最高峰,因此使用春節(jié)期間的業(yè)務流量以及計費系統(tǒng)的實際負載情況進行驗證,可以有效地反映模型的準確性。
在具體驗證時,首先利用上節(jié)的模型對春節(jié)高峰期時刻計費系統(tǒng)負載情況進行預測。然后再將預測值與實際值進行比較。通過這種方法來驗證模型的準確性。在表 1中展示了計費系統(tǒng)中針對短信話單處理主機1與主機2在春節(jié)忙時的主機CPU使用率的預測值與實際值的對比情況。從中可以看到,使用模型計算處理的主機CPU預測值與實際值基本吻合,平均誤差在3%以內(nèi)。
表1 計費主機負載預測值與實際值比較 (%)
根據(jù)現(xiàn)有業(yè)務壓力的增長情況,可以利用計費系統(tǒng)負載模型來預測計費主機的性能變化并及時提出需要對主機進行升級的告警。
根據(jù)圖5和表2中的評估結(jié)果,在判斷出計費主機在第2年春節(jié)的業(yè)務高峰期時,CPU負荷將達到90%以上,可能影響業(yè)務的正常進行。根據(jù)此項判斷,項目人員在春節(jié)前對計費主機進行升級。主機的 tpmC值從升級前的323394增加到升級后的809144。圖6展示了升級前后計費主機CPU使用率的實際值與使用主機負載模型進行計算得到的預測值之間的對比。
圖5 主機性能季度預估
表2 主機性能季度預估數(shù)據(jù) (%)
圖6 升級前后計費主機負載預測與實際對比
本文針對計費系統(tǒng)主機負載變化大、資源動態(tài)分配難的問題,從分析各類計費業(yè)務流量與系統(tǒng)負載的關系入手,研究單筆業(yè)務在每一個處理環(huán)節(jié)的資源開銷情況,提出一種基于單位業(yè)務tpmC當量的主機負載預測模型。經(jīng)過實際驗證,該模型可以較精確地預估計費主機的CPU負載情況,有助于計費系統(tǒng)維護人員實現(xiàn)精確運維和穩(wěn)定運維。在上述模型中對于主機系統(tǒng)進程的負載情況使用了一個固定的常數(shù)c,然而在實際情況中系統(tǒng)進程的負載偶爾會出現(xiàn)細微波動。為提升計費系統(tǒng)負載預測模型的預測精度,今后將圍繞該類系統(tǒng)進程負載的波動情況展開進一步研究。
[1]楊 偉,朱巧明,李培峰,等.基于時間序列的服務器負載預測[J].計算機工程,2006,32(19): 143-145.
[2]許 偉,陳志剛,曾志文,等.分布式系統(tǒng)中主機負載預測的一種普適性方法[J].計算機工程與應用,2004,40(6): 181-183.
[3]程宏兵,楊 庚.一種基于自動回歸的改進網(wǎng)格主機負載預測模型[J].計算機應用,2005,25(11): 2483-2485.
[4]龔 波.分布式環(huán)境中主機負載預測的研究[J].信息系統(tǒng)工程,2011,(12): 122-124.
[5]陳榮征,李廣松.基于遺傳神經(jīng)網(wǎng)絡的主機負載預測方法研究[J].計算機時代,2009,(10): 12-13.
[6]李春輝,戚淑芬,李 靜.分布式系統(tǒng)主機負載預測方法的評估[J].科技創(chuàng)新導報,2009,(7): 63-63.
[7]劉 斌,楊 堅,趙 宇.基于在線負載預測的動態(tài)集群節(jié)能配置策略[J].計算機工程,2010,36(24): 96-98.
[8]Chung I H,Jeffrey K.Hollingsworth.Automated Clusterbased Web Service Performance Tuning[C]//Proc.of IEEE High Performance Distributed Computing Conference.[S.1.]:IEEE Press,2004.
[9]Li Bo,Zhou Haiying,Zuo Decheng.Performance Modeling and Benchmarking of Bank Intermediary Business on High-performance Fault-tolerant Computers[C]//Proc.of the 41st IEEE/IFIP International Conference on Dependable Systems and Networks Workshops.[S.1.]: IEEE Press,2011.
[10]Transaction Processing Performance Council(TPC).TPC BENCH-MARKTM C Standard Specification Revision 5.11[EB/OL].(2010-02-10).http://www.tpc.org/tpcc.