王強
摘要:針對企業(yè)因數(shù)據(jù)規(guī)模擴大而導(dǎo)致的信息系統(tǒng)運維困難問題展開研究。以應(yīng)用性能管理(APM)技術(shù)為核心,采用模擬用戶監(jiān)控與監(jiān)聽型監(jiān)控相結(jié)合的數(shù)據(jù)采集方式,圍繞企業(yè)在應(yīng)用性能管理方面的實際需求,設(shè)計和實現(xiàn)了一款綜合型監(jiān)控管理平臺。實現(xiàn)了終端性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控、故障定位和關(guān)鍵事務(wù)跟蹤等功能,顯著提高了管理效率。
關(guān)鍵詞:應(yīng)用性能;用戶體驗;APM;監(jiān)控方案;軟件設(shè)計
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2018)24-63-3
0引言
在現(xiàn)代信息化社會,隨著企業(yè)規(guī)模的增大和業(yè)務(wù)范圍的擴張,其對應(yīng)的IT系統(tǒng)也日益龐大,網(wǎng)絡(luò)、服務(wù)器和軟件應(yīng)用系統(tǒng)之間的關(guān)聯(lián)也愈發(fā)的錯綜復(fù)雜,進一步增大了系統(tǒng)運維工作的難度[1],用戶的體驗度也因此受到了嚴重的影響。目前我國大部分企業(yè)依舊在遵循傳統(tǒng)的IT運維模式來實現(xiàn)對系統(tǒng)的監(jiān)控與管理,在該模式下,管理的對象是系統(tǒng)中的各個組件,包括各類網(wǎng)絡(luò)節(jié)點設(shè)備、服務(wù)器、存儲設(shè)備、中間件和數(shù)據(jù)庫等IT資產(chǎn)[2]。
IT模式針對結(jié)構(gòu)較為簡單的系統(tǒng)管理,但該方法缺乏統(tǒng)一的業(yè)務(wù)和IT視圖,只能對各個設(shè)備的運行狀態(tài)進行監(jiān)管,而無法從業(yè)務(wù)角度去衡量IT服務(wù)質(zhì)量,因此在大規(guī)模數(shù)據(jù)存儲及通信的復(fù)雜環(huán)境下,無法實現(xiàn)高效的端到端的用戶體驗和應(yīng)用管理。應(yīng)用性能管理的推出,顯著增強了大規(guī)模數(shù)據(jù)業(yè)務(wù)的處理效率,提高了用戶服務(wù)水平,為企業(yè)贏得了更好的發(fā)展空間。
1 APM
APM是近年來衍生的一種新型應(yīng)用性能管理理念,APM基于便捷的網(wǎng)絡(luò)通信和智能化的數(shù)據(jù)分析技術(shù),可有效整合企業(yè)內(nèi)部規(guī)模龐大且廣泛分布的數(shù)據(jù)資源,并對其實施統(tǒng)一的監(jiān)控與管理策略,并從多個層面對企業(yè)IT系統(tǒng)進行性能評測與分析,從全局上把握系統(tǒng)內(nèi)數(shù)據(jù)流的特征[3],其核心功能主要包括以下幾種。
(1)對關(guān)鍵應(yīng)用的性能進行實時監(jiān)控
APM技術(shù)首先從應(yīng)用層面反映當前網(wǎng)絡(luò)性能水平,通過采用事務(wù)處理過程檢測和在線嗅探等技術(shù),對當前任一事務(wù)的運行狀態(tài)和響應(yīng)時間進行監(jiān)控,以評估企業(yè)應(yīng)用服務(wù)的性能表現(xiàn)[4]。另一方面,APM還可對大規(guī)模用戶操作進行在線統(tǒng)計與分析,對某一應(yīng)用的使用頻率等信息進行匯總分析,為企業(yè)改進應(yīng)用服務(wù)質(zhì)量提供參考。
(2)對故障進行快速定位與排查
APM技術(shù)可針對整條數(shù)據(jù)傳輸鏈進行監(jiān)控與檢索,從用戶端的瀏覽器、網(wǎng)絡(luò)中的各個傳輸節(jié)點與中間件服務(wù)器和各類數(shù)據(jù)存儲設(shè)備,全方位地監(jiān)測業(yè)務(wù)應(yīng)用性能情況[5]。在監(jiān)測對象的選擇方面,可通過多種性能參數(shù)參與評估,如應(yīng)用響應(yīng)時間、端口數(shù)據(jù)流量及協(xié)議數(shù)據(jù)流量等,從而實現(xiàn)對問題原因和故障點的綜合分析與評價,極大地提高了故障排查的準確性。
(3)對系統(tǒng)性能進行優(yōu)化
APM技術(shù)提供的全局監(jiān)測功能,幫助運維人員很好地掌握了系統(tǒng)內(nèi)各類應(yīng)用的運行狀況以及對資源的占用情況,實現(xiàn)了對中間件、數(shù)據(jù)庫的執(zhí)行效率的精確分析,找出其中存在的性能瓶頸并加以調(diào)整,從而逐步優(yōu)化整個系統(tǒng)的應(yīng)用邏輯[6]。
(4)對應(yīng)用發(fā)展趨勢進行預(yù)測
通過APM技術(shù)的在線統(tǒng)計功能,可對本系統(tǒng)內(nèi)所有應(yīng)用的使用頻率及生命周期進行準確的匯總分析,從而幫助研發(fā)人員對系統(tǒng)中各種資源的應(yīng)用趨勢進行預(yù)測,使得研發(fā)新應(yīng)用服務(wù)的工作更具針對性。另一方面,由于采集到的性能數(shù)據(jù)規(guī)模遠遠超過以往傳統(tǒng)的監(jiān)控模式,也使得構(gòu)建客觀的性能負載模型成為可能,從而可對各種資源配置方案進行可靠的仿真與論證,促進系統(tǒng)容量的合理擴充。
2設(shè)計與實現(xiàn)
2.1監(jiān)控方案的設(shè)計
APM系統(tǒng)同傳統(tǒng)的IT管理系統(tǒng)相比,最大的特點就是更加側(cè)重從應(yīng)用表現(xiàn)方面來對網(wǎng)絡(luò)和數(shù)據(jù)處理服務(wù)的性能狀態(tài)進行監(jiān)測與分析,并從全局角度快速判定故障與異常的發(fā)生點,其數(shù)據(jù)采集的方式主要有以下2種。
①模擬用戶監(jiān)控方式:屬于主動監(jiān)測,需要在APM系統(tǒng)中配置一定數(shù)量的測試終端,用以模擬真實用戶向各類服務(wù)器發(fā)起服務(wù)請求,從而記錄這些服務(wù)器的反饋信息以及響應(yīng)時延,最終得出監(jiān)測對象較為精確的應(yīng)用運行狀態(tài)和服務(wù)質(zhì)量。
②監(jiān)聽型方式:屬于被動監(jiān)測,主要通過監(jiān)聽端口鏡像、多路轉(zhuǎn)發(fā)以及鏈路串接等方式收集網(wǎng)絡(luò)中傳輸?shù)挠脩魯?shù)據(jù)包、信令數(shù)據(jù)包(OAM)和管理信息(SNMP MIB/RMON),同時監(jiān)測通過這些網(wǎng)絡(luò)節(jié)點的數(shù)據(jù)流量,從而對該區(qū)域內(nèi)的應(yīng)用服務(wù)性能進行評估。優(yōu)點是不會對網(wǎng)絡(luò)通信資源和服務(wù)器資源造成額外的消耗,但缺點是僅能獲得局部網(wǎng)絡(luò)的信息,評估結(jié)論有一定的片面性[7]。
APM系統(tǒng)的設(shè)計方案采取了以上2種方法有機結(jié)合的方式,既考慮到了監(jiān)控系統(tǒng)本身對網(wǎng)絡(luò)性能造成的影響,又確保了數(shù)據(jù)采集的準確性,保障了網(wǎng)絡(luò)和應(yīng)用服務(wù)的正常運行,系統(tǒng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。
2.2軟件架構(gòu)設(shè)計
系統(tǒng)在設(shè)計過程中,充分兼顧了IT系統(tǒng)內(nèi)各種應(yīng)用服務(wù)在研發(fā)技術(shù)方面的多樣性,因此可實現(xiàn)對基于J2EE, .Net,PHP, Python等技術(shù)開發(fā)的業(yè)務(wù)系統(tǒng)進行有效的監(jiān)控。例如,在針對最主流的J2EE平臺的APM系統(tǒng)中,就包括了Application探針、Application管理服務(wù)器和Application管理控制臺3個主要部件。
(1)Application探針
Application探針部署在各個應(yīng)用服務(wù)器中的Java虛擬機上,并與監(jiān)聽設(shè)備協(xié)同完成數(shù)據(jù)采集工作,包括各類J2EE服務(wù)器進程的運行狀態(tài)、EJB和Java Bean中涉及到的各種對象與方法的性能參數(shù)等,這些信息匯總分類后,將分別封裝并通過HTTP協(xié)議傳輸?shù)紸I管理服務(wù)器。
(2)Application管理服務(wù)器
接到從Application探針處傳來的性能數(shù)據(jù)之后,Application管理服務(wù)器將數(shù)據(jù)分類存儲至文件和數(shù)據(jù)庫中,并調(diào)取相關(guān)的分析軟件對這些數(shù)據(jù)進行加工處理,通過直觀的界面向用戶提供可靠的圖形化展示。Application管理服務(wù)器將收到的大量性能數(shù)據(jù)進行快速匹配與關(guān)聯(lián),并基于預(yù)設(shè)的風(fēng)險閾值判定當前系統(tǒng)是否有潛在的性能異常問題,以及是否需要啟動告警功能。
(3)Application管理界面
為了提高系統(tǒng)的通用性與維護的便捷性,采用Web技術(shù)設(shè)計實現(xiàn)了相關(guān)的人機交互界面,系統(tǒng)中的所有功能均可在頁面中完成操作,并得到反饋結(jié)果。
3系統(tǒng)實現(xiàn)
系統(tǒng)的主要功能包括終端性能監(jiān)控管理、頁面性能監(jiān)控管理、數(shù)據(jù)庫性能監(jiān)控管理、預(yù)警告警管理、應(yīng)用性能診斷與故障定位及對關(guān)鍵事務(wù)的跟蹤管理等,基本涵蓋了應(yīng)用性能管理的各個層面,可有效提高系統(tǒng)的監(jiān)控水平。系統(tǒng)的應(yīng)用監(jiān)控管理主界面如圖2所示,包括了多項監(jiān)測性能指標,如應(yīng)用系統(tǒng)平均響應(yīng)時間、單個事務(wù)響應(yīng)時間、應(yīng)用吞吐量、應(yīng)用系統(tǒng)性能指數(shù)Apdex、應(yīng)用系統(tǒng)錯誤率及SQL語句執(zhí)行情況等。
瀏覽器頁面分析的監(jiān)控界面如圖3(a)所示,用戶可以通過該界面了解受訪頁面列表、頁面平均加載時間、頁面流量及Browser Trace列表等應(yīng)用前端性能狀況。對于問題頁面,管理員可以點擊受訪頁面鏈接,進入單頁面分析,了解頁面平均加載時間、網(wǎng)頁流量、頁面開始/跳轉(zhuǎn)時間、請求重定向時間、本地緩存加載時間、DNS解析時間、TCP傳輸時間、HTTP請求/響應(yīng)時間等相關(guān)指標,幫助用戶進行瀏覽器頁面性能診斷。
數(shù)據(jù)庫SQL語句性能分析界面如圖3(b)所示,可以針對SQL語句的類型和SQL語句單元進行性能排序,其中排序的參考指標可以由管理員靈活選擇。針對性能表現(xiàn)較差的SQL語句單元,系統(tǒng)記錄其執(zhí)行情況,包括SQL語句的上下文環(huán)境、各個環(huán)境的時間消耗占比及調(diào)用參數(shù)等,并在界面中陳列顯示。
圖3瀏覽器頁面分析及數(shù)據(jù)庫SQL語句執(zhí)行監(jiān)控界面
關(guān)鍵事務(wù)的跟蹤管理界面如圖4所示,在實際運維應(yīng)用系統(tǒng)的過程中,存在某些關(guān)鍵的事務(wù),其重要性遠遠超過其他一般類型的事務(wù),因此需要對其精確監(jiān)控。如用戶的登錄、交易等操作,或者從性能角度來看最重要的搜索操作,系統(tǒng)管理者可以根據(jù)運維需求靈活地設(shè)定這些關(guān)鍵事務(wù),并設(shè)定合理的性能參數(shù)指標。
4結(jié)束語
本系統(tǒng)將APM技術(shù)與傳統(tǒng)的IT監(jiān)測技術(shù)相結(jié)合,設(shè)計并實現(xiàn)了一套新型的企業(yè)級業(yè)務(wù)性能監(jiān)測分析系統(tǒng),給出了系統(tǒng)的框架結(jié)構(gòu)與具體的功能設(shè)定方案,實現(xiàn)了對系統(tǒng)內(nèi)的數(shù)據(jù)存儲流程、中間節(jié)點設(shè)備運行狀態(tài)和應(yīng)用服務(wù)執(zhí)行過程進行實時的監(jiān)測,在全面收集相關(guān)性能數(shù)據(jù)的同時,還能夠迅速地發(fā)現(xiàn)系統(tǒng)內(nèi)的異常與故障點,以及在大規(guī)模歷史數(shù)據(jù)積累的條件下,向管理者提供容量規(guī)劃、性能分析等方面的綜合決策數(shù)據(jù)。
參考文獻
[1]陳鵬.基于Android應(yīng)用的性能監(jiān)控系統(tǒng)的研究與實現(xiàn)[D].廣州:華南理工大學(xué),2015.
[2]張熙.Web應(yīng)用性能優(yōu)化模型及測試框架的研究[D].南京:南京航空航天大學(xué),2008.
[3]黃鶴.Web應(yīng)用程序的性能測試研究及其應(yīng)用[D].成都:西南石油大學(xué),2006:65-66.
[4]陳月云,熊高云,劉麗,等.基于流量工程和策略機制的網(wǎng)絡(luò)資源分配方案[J].通信技術(shù),2009,42(11):141-143.
[5]龍耀華,牛作元.基于APM的網(wǎng)絡(luò)性能管理研究[J].通信技術(shù),2013,12(8):68-72.
[6]王銳,陳麗.應(yīng)用性能管理的設(shè)計方法研究[J].計算機應(yīng)用與軟件,2009,26(9):198-199.
[7] Sebastian E,Gregg R,Srikanth K.Leveraging User-session DatatoSupportWebApplicationTesting[J].IEEETransactions on Soft-ware Engineering,2005,31(3):66-67.