劉穎+李欣+趙西林+徐敏+尚勇
摘要
本文在詳細分析了國家電網(wǎng)西北分部信息系統(tǒng)應(yīng)用性能管理的基礎(chǔ)上,采用理論分析與實踐結(jié)合的研究方法,建設(shè)了一種新的基于代碼分析的應(yīng)用性能管理平臺。通過可視化的業(yè)務(wù)系統(tǒng)代碼執(zhí)行過程的關(guān)鍵指標,并結(jié)合現(xiàn)有網(wǎng)絡(luò)性能分析平臺,對影響業(yè)務(wù)性能問題的代碼進行主動分析,快速識別潛在的風(fēng)險點,為業(yè)務(wù)應(yīng)用性能提升提供有效、可靠、科學(xué)的數(shù)據(jù)支撐,不斷提高應(yīng)用系統(tǒng)性能和用戶體驗滿意度,提升IT系統(tǒng)核心價值。
【關(guān)鍵詞】應(yīng)用性能管理 代碼分析 關(guān)鍵指標 用戶體驗
國家電網(wǎng)公司高度重視信息化工作,其基礎(chǔ)設(shè)施、硬件設(shè)備、應(yīng)用系統(tǒng)、平臺軟件等軟硬環(huán)境建設(shè)水平得到快速提高。因此,對提高信息通信運行管理水平提出了更高的要求,要求各下屬單位豐富系統(tǒng)運維監(jiān)控手段,提高運維保障能力,提升系統(tǒng)運行故障處理效率,保障系統(tǒng)安全穩(wěn)定運行,實現(xiàn)對應(yīng)用系統(tǒng)性能全過程狀態(tài)監(jiān)控的功能,提升運維人員在代碼監(jiān)控、內(nèi)存監(jiān)測、指標數(shù)據(jù)關(guān)聯(lián)、監(jiān)控資源整合等方面的能力,從而提高信息通信運行管理水平。
1國家電網(wǎng)公司西北分部現(xiàn)狀
國家電網(wǎng)公司西北分部(以下簡稱西北分部)現(xiàn)有重要系統(tǒng)數(shù)十套,覆蓋了規(guī)劃、建設(shè)、檢修、運行、人力資源、財務(wù)、物資等多個業(yè)務(wù)領(lǐng)域;目前采用通過流量分析的方式,實現(xiàn)了包括應(yīng)用性能監(jiān)測、應(yīng)用性能問題定位、性能問題報警及追溯、應(yīng)用流量自動梳理在內(nèi)的多項功能,并與短信網(wǎng)關(guān)系統(tǒng)聯(lián)動實現(xiàn)了應(yīng)用性能問題快速報警的效果。但隨著業(yè)務(wù)系統(tǒng)的復(fù)雜度提升,在運維工具、管理體系方面還存在提升的空間,這體現(xiàn)在:
1.1缺乏代碼級的性能監(jiān)控
目前缺失了針對應(yīng)用程序代碼級以及數(shù)據(jù)庫SQL執(zhí)行效率的監(jiān)測功能,這部分功能的缺失,帶來了運維工作中的盲點,一些由代碼引起的問題無法得到快速的分析和解決。
1.2應(yīng)用平臺運行參數(shù)關(guān)聯(lián)分析能力仍需要提面
目前己經(jīng)完善了基于網(wǎng)絡(luò)數(shù)據(jù)的性能分析,但對于業(yè)務(wù)代碼執(zhí)行效率與平臺參數(shù)之間的關(guān)聯(lián)關(guān)系快速分析存在欠缺,無法幫助管理人員快速定位問題根源,迅速發(fā)現(xiàn)和解決系統(tǒng)緩慢問題。
1.3對應(yīng)用程序運行時內(nèi)存消耗分析及監(jiān)控的缺失
內(nèi)存泄露問題長期影響程序的穩(wěn)定性,是部分應(yīng)用程序崩潰的根本原因。其具備難以監(jiān)控,潛伏期長的特點,在運維管理工作中難以定位和處理。
針對這些情況,西北分部從實際情況出發(fā),以網(wǎng)絡(luò)流量數(shù)據(jù)分析平臺為基礎(chǔ),通過建設(shè)基于代碼級別的性能分析平臺,面向業(yè)務(wù),完成端到端的用戶體驗監(jiān)控,實現(xiàn)代碼類問題的定位以及處理,使得這類問題得到有效解決,最終達到提升業(yè)務(wù)連續(xù)性管理水平,提升運維管理水平的目的。
2可視化應(yīng)用性能的實踐
2.1建設(shè)目標
(1)部署代碼級監(jiān)測軟件,提升軟件代碼層次問題性能問題處理能力,形成完整的性能管理工具體系;
(2)拓展應(yīng)用性能管理工具覆蓋面,從原有的巡檢工作拓展至巡檢工作以及建轉(zhuǎn)運工作,使系統(tǒng)得到更深層次的應(yīng)用;
(3)通過信息系統(tǒng)代碼監(jiān)控、流量監(jiān)控、可用性監(jiān)控體系的完善和搭建,形成針對信息系統(tǒng)運行指標的完整監(jiān)控體系,有效保障信息系統(tǒng)整體運行質(zhì)量。
2.2系統(tǒng)實現(xiàn)
根據(jù)西北分部網(wǎng)絡(luò)及應(yīng)用性能可視化的需求,結(jié)合西北分部現(xiàn)有環(huán)境,本系統(tǒng)采用嵌入式的數(shù)據(jù)采集引擎進行代碼運行指標數(shù)據(jù)采集,之后將采集到的代碼執(zhí)行效率數(shù)據(jù)以及運行相關(guān)信息存儲至數(shù)據(jù)庫內(nèi),系統(tǒng)代碼性能分析引擎則對這些采集到的數(shù)據(jù)進行處理,在代碼執(zhí)行效率分析、內(nèi)存分析、參數(shù)關(guān)聯(lián)分析、數(shù)據(jù)庫語句分析引擎的共同作用下,為用戶提供代碼實時監(jiān)測、關(guān)聯(lián)分析報告、數(shù)據(jù)庫深度監(jiān)測功能。系統(tǒng)架構(gòu)如圖1所示。
2.3實施方法
本次系統(tǒng)建設(shè)在進行充分的需求調(diào)研基礎(chǔ)上,在實踐的過程中對原理和方法進行研究分析與驗證,在后期進行綜合測試和優(yōu)化以確保業(yè)務(wù)監(jiān)控的準確性和全面性。
2.3.1需求調(diào)研
對現(xiàn)有應(yīng)用運行情況及信息系統(tǒng)性能管理工作具體需求進行整體調(diào)研,確定管理范圍、業(yè)務(wù)架構(gòu)及系統(tǒng)功能架構(gòu)等內(nèi)容。
2.3.2業(yè)務(wù)梳理
制定包含業(yè)務(wù)系統(tǒng)相關(guān)的負載均衡、服務(wù)器、中間件、數(shù)據(jù)庫等組件的完整調(diào)研模板,與應(yīng)用管理部門進行有效溝通,形成系統(tǒng)調(diào)研報告,為后期的部署驗證工作提供數(shù)據(jù)支撐。2.3.3部署驗證
根據(jù)需求調(diào)研報告及系統(tǒng)調(diào)研報告在監(jiān)控平臺內(nèi)進行軟/硬件部署、業(yè)務(wù)監(jiān)控定義、視圖定義、報警定義以及報表的定制等部署工作并通過客戶確認、架構(gòu)分析等手段驗證部署的正確性及有效性。
2.3.4經(jīng)驗總結(jié)
利用應(yīng)用性能管理系統(tǒng),進行持續(xù)的日常性能監(jiān)控、問題發(fā)現(xiàn)定位、問題處理工作,形成以業(yè)務(wù)系統(tǒng)特性為基礎(chǔ)的經(jīng)驗分類總結(jié)庫,根據(jù)各類型應(yīng)用的獨立特點形成性能管理經(jīng)驗及監(jiān)控模型,以便在后期類似業(yè)務(wù)上線時采用類似模型進行監(jiān)控,利用歷史運維經(jīng)驗提升問題定位及處理速度。
3系統(tǒng)實施效果
3.1實施環(huán)境
本次基于代碼的系統(tǒng)建設(shè)主要部署信息系統(tǒng)響應(yīng)采集組件、業(yè)務(wù)邏輯分析組件、業(yè)務(wù)性能分析組件以及系統(tǒng)展示平臺,實施環(huán)境如表1所示。
3.2系統(tǒng)部署
系統(tǒng)采用業(yè)界成熟的技術(shù)體系進行設(shè)計,數(shù)據(jù)采集引擎部分采用.NET以及JAVA平臺提供的標準性能數(shù)據(jù)獲取接口進行數(shù)據(jù)獲取,對系統(tǒng)影響小,獲取數(shù)據(jù)穩(wěn)定性高;在數(shù)據(jù)存儲部分,系統(tǒng)采用內(nèi)存數(shù)據(jù)庫進行設(shè)計,保證系統(tǒng)性能數(shù)據(jù)查詢快捷、使用方便;在展示層部分,系統(tǒng)使用J2EE架構(gòu)進行展示設(shè)計,實現(xiàn)了與原有系統(tǒng)的集成。
3.3系統(tǒng)功能
目前系統(tǒng)已經(jīng)完成的功能包括:集中監(jiān)控,實時資源監(jiān)控,代碼分析功能,系統(tǒng)統(tǒng)計報表、系統(tǒng)告警五大核心功能。
3.3.1集中監(jiān)控功能endprint
通過全局吞吐量,監(jiān)控當(dāng)前域中全部應(yīng)用的訪問吞吐;通過雷達圖展現(xiàn)業(yè)務(wù)系統(tǒng)各時間段響應(yīng)時間事務(wù)的占比;通過對比曲線顯示當(dāng)前時間段中各業(yè)務(wù)系統(tǒng)每臺服務(wù)器的活動服務(wù)數(shù)值的趨勢圖;通過事務(wù)響應(yīng)分布圖,每個點表示一個事務(wù),顯示實時事務(wù)分布。利用集中監(jiān)控功能,能夠讓管理員快速掌握業(yè)務(wù)系統(tǒng)當(dāng)前的性能分布情況,可以根據(jù)用戶的事務(wù)響應(yīng)時間值,快速介入性能不理想的業(yè)務(wù)響應(yīng),提高用戶的應(yīng)用使用體驗度。
3.3.2實時資源監(jiān)控功能
實時資源監(jiān)控功能包括所有服務(wù)器的實時監(jiān)控參數(shù)信息,通過選擇服務(wù)器可以對指定服務(wù)器監(jiān)控信息的顯示與隱藏,其中包含被監(jiān)控服務(wù)器的實時活動服務(wù)、實時服務(wù)處理率、實時請求平均響應(yīng)時間、實時服務(wù)器并發(fā)用戶數(shù)、實時服務(wù)器系統(tǒng)CPU使用率百分比、實時服務(wù)器內(nèi)存使用堆棧百分比,以及實時服務(wù)器數(shù)據(jù)庫連接數(shù)。
3.3.3代碼分析功能
系統(tǒng)能夠監(jiān)控業(yè)務(wù)系統(tǒng)每筆交易時,義務(wù)系統(tǒng)內(nèi)部的代碼執(zhí)行過程、SQL語句效率以及系統(tǒng)異常情況,包括交易響應(yīng)時間、交易最小響應(yīng)時間、交易最大響應(yīng)時間、SQL語句、SQL調(diào)用次數(shù)、SQL響應(yīng)時間、SQL最小響應(yīng)時間、SQL最大響應(yīng)時間、異常發(fā)生次數(shù)、異常名稱等詳細內(nèi)容,讓管理員明確了解業(yè)務(wù)內(nèi)部執(zhí)行的過程以及性能瓶頸所在,快速定位問題。
3.3.4系統(tǒng)統(tǒng)計報表功能
系統(tǒng)能夠提供多種統(tǒng)計分析報表功能,包括告警統(tǒng)計、應(yīng)用統(tǒng)計、SQL響應(yīng)時間、應(yīng)用響應(yīng)時間等內(nèi)容,方便管理員對業(yè)務(wù)系統(tǒng)的運行狀態(tài)進行宏觀分析,提升業(yè)務(wù)系統(tǒng)的穩(wěn)定運行。
3.3.5系統(tǒng)告警功能
系統(tǒng)能夠根據(jù)所有監(jiān)控指標進行閾值設(shè)定并根據(jù)運行值進行告警,并能夠根據(jù)告警產(chǎn)生時間和應(yīng)用URL查看該告警的交易事務(wù)、代碼執(zhí)行過程及其詳細的交易事務(wù)性能數(shù)據(jù),快速定位問題。
3.4應(yīng)用效果
經(jīng)過5個多月的系統(tǒng)建設(shè)和不斷地分析驗證,在西北分部構(gòu)建了完整的、基于代碼分析的應(yīng)用性能可視化監(jiān)控平臺,并完善的業(yè)務(wù)性能管理規(guī)范,故障處理效率得到顯著提高,系統(tǒng)運維處理水平也得到一定程度的提高。目前己經(jīng)完成監(jiān)控的業(yè)務(wù)系統(tǒng)包括財務(wù)管控、數(shù)據(jù)交換、短信平臺、16000、呼叫中心、內(nèi)網(wǎng)網(wǎng)站、企業(yè)門戶、統(tǒng)一數(shù)據(jù)交換平臺、TMS、統(tǒng)一數(shù)據(jù)監(jiān)控與保護平臺等多套業(yè)務(wù)系統(tǒng)。通過該平臺,先后發(fā)現(xiàn)了TMS系統(tǒng)數(shù)據(jù)庫執(zhí)行異常導(dǎo)致服務(wù)響應(yīng)超時、財務(wù)管控系統(tǒng)數(shù)據(jù)庫語句一次獲取太多行數(shù)、呼叫中心系統(tǒng)數(shù)據(jù)未執(zhí)行關(guān)閉、企業(yè)門戶系統(tǒng)數(shù)據(jù)庫結(jié)果資源未釋放等問題,經(jīng)過分析解決后,大幅提高了業(yè)務(wù)系統(tǒng)的性能。
3.4.1最終用戶體驗監(jiān)測
實現(xiàn)了端到端的最終用戶訪問應(yīng)用的性能監(jiān)控,包括應(yīng)用響應(yīng)時間,響應(yīng)的成功率和質(zhì)量等。并進一步通過主動式的模擬最終用戶監(jiān)測來進行應(yīng)用可用性的評估,通過對用戶體驗、網(wǎng)絡(luò)、應(yīng)用以及服務(wù)的監(jiān)控來保證應(yīng)用的高可用和體驗效果。
3.4.2應(yīng)用拓撲邏輯發(fā)現(xiàn)和可視化
通過系統(tǒng)平臺能夠自動識別應(yīng)用在執(zhí)行的過程中涉及的軟硬件架構(gòu)和組件,并且可以描繪出應(yīng)用交付鏈中相互通訊的各種組件的訪問路徑,將應(yīng)用的調(diào)用鏈通過拓撲圖,調(diào)用圖等圖表可視化,直觀地展示應(yīng)用的拓撲邏輯,提供了全鏈路的應(yīng)用拓撲圖。
3.4.3用戶定義的事務(wù)剖析
通過系統(tǒng)平臺能對特定的用戶訪問特定的事務(wù)請求進行完整的追蹤,包括在整個請求過程中涉及到的服務(wù)和組件。
3.4.4應(yīng)用組件深度鉆取
利用性能分析平臺實現(xiàn)運維數(shù)據(jù)分析,通過對復(fù)雜事件處理,統(tǒng)計模式發(fā)現(xiàn)與識別,非結(jié)構(gòu)化數(shù)據(jù)索引、查詢和推斷,拓撲邏輯分析,多維數(shù)據(jù)庫檢索和分析等技術(shù),實現(xiàn)對大量的各維度性能數(shù)據(jù)進行實時的運算和處理,從而對應(yīng)用的運維和優(yōu)化起到輔助決策和驅(qū)動作用。
4結(jié)束語
面對復(fù)雜的業(yè)務(wù)架構(gòu),西北分部結(jié)合了網(wǎng)絡(luò)性能分析工具和基于代碼分析的應(yīng)用性能分析工具,建立了統(tǒng)一的業(yè)務(wù)系統(tǒng)性能分析平臺,利用業(yè)務(wù)架構(gòu),結(jié)合數(shù)據(jù)流關(guān)系,通過時間相關(guān)性等算法,發(fā)掘有業(yè)務(wù)價值的告警,并直接分析給出告警的問題根源。同時,在該平臺及工具的體系上建立了可行的、有效的應(yīng)用性能監(jiān)控體系方案,致力于發(fā)現(xiàn)、診斷并定位復(fù)雜應(yīng)用的性能瓶頸和故障,以保證應(yīng)用達到預(yù)期的服務(wù)水平和用戶體驗,提升系統(tǒng)運維水平。
參考文獻
[1]2016年應(yīng)用性能管理APM行業(yè)分析報告.
[2]應(yīng)用性能管理(APM)的價值分析.
[3]臧冬松等.一種大規(guī)模分布式應(yīng)用性能分析系統(tǒng)[J].計算機工程,2012(24).endprint