專利名稱:一種Web應(yīng)用細(xì)粒度性能建模方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Web應(yīng)用性能建模技術(shù),尤其涉及以分層排隊網(wǎng)為基礎(chǔ),構(gòu)建自適應(yīng) 的Web應(yīng)用細(xì)粒度性能模型的建模方法及建模系統(tǒng)。
背景技術(shù):
多層架構(gòu)的Web應(yīng)用已成為當(dāng)前主流的網(wǎng)絡(luò)應(yīng)用,大量關(guān)鍵應(yīng)用(電子銀行、網(wǎng)上 支付等等)采用Web應(yīng)用實(shí)施,在一個較長時間內(nèi)保障系統(tǒng)服務(wù)質(zhì)量(QoS)十分重要。目 前,慣用的做法是通過構(gòu)造性能模型,對系統(tǒng)未來一段時間內(nèi)的性能做預(yù)測,然后再以預(yù)測 結(jié)果為指導(dǎo),判斷系統(tǒng)性能是否滿足服務(wù)質(zhì)量的要求。性能預(yù)測的基本原理是通過模擬真實(shí)系統(tǒng)排隊等待、資源競爭的情況來分析系統(tǒng) 的性能。輸入一般包括用戶行為、組件的關(guān)聯(lián)和資源消耗等數(shù)據(jù),輸出的性能數(shù)據(jù)包括吞吐 率、響應(yīng)時間和資源利用率等。根據(jù)模擬真實(shí)系統(tǒng)的抽象程度不同,預(yù)測方法可分為粗粒度和細(xì)粒度兩類。粗粒 度方法側(cè)重于刻畫服務(wù)器的行為,即研究服務(wù)器與服務(wù)器在宏觀層面上的資源消耗。這種 方法建模相對簡單,適合于分析集群等環(huán)節(jié)下的多服務(wù)器的總體性能。但該方法并不考慮 單個軟件組件是如何消耗資源,以及組件和組件之間又是如何關(guān)聯(lián)的。所以,預(yù)測結(jié)果不會 反映軟件組件的資源消耗,也就無法為發(fā)現(xiàn)軟件結(jié)構(gòu)上的性能問題提供有用的數(shù)據(jù)。而細(xì) 粒度方法的基礎(chǔ)是軟件的執(zhí)行結(jié)構(gòu)圖,即系統(tǒng)中重要組件間的調(diào)用與資源消耗。所以細(xì)粒 度的方法除了可以預(yù)測出各個軟件組件的性能,還可以預(yù)測出系統(tǒng)總的性能。但因?yàn)榧?xì)粒度的方法需要了解軟件的細(xì)節(jié),所以建模過程相比于粗粒度方法也會 復(fù)雜很多。因?yàn)榇藭r,設(shè)計人員不僅需要詳細(xì)了解軟件的整體設(shè)計,還需要了解用戶行為和 資源的消耗,也就導(dǎo)致了構(gòu)造一個細(xì)粒度模型的代價是非常昂貴的。已有一些研究意圖降低構(gòu)造Web應(yīng)用性能模型的成本,他們或者針對其中某一個 方面,或者屬于粗粒度的方法,但是它們均未全面系統(tǒng)的為容量規(guī)劃人員提供一種快捷高 效的針對Web的性能建模方法。William和Smith首先提出了一種基于軟件性能工程的方法(C.U.Smith and L.G. Williams, Performance Solutiohs :A Practical Guide to Creating Responsive, ScalableSoftware. Addison Wesley, 2002)將性能分析引入軟件開發(fā)過程中。Gomaa和 Menasce提出了基于“客戶機(jī)/服務(wù)器”體系模式下的方法(H. Gomaa and D. Menasce, PerformanceEngineering of Component-Based Distributed Software Systems, Performance Eng.,R. Dumke et al.,eds. pp. 40-55,2001.)。該方法直接用類圖和協(xié)作圖 描述組件間的交互形式分析生成擴(kuò)展的排隊網(wǎng)(EQN)模型。上述方法降低了性能模型構(gòu)造 的難度,但是正確的獲得模型所需要的參數(shù)仍是一個難題,而且性能模型還需要服務(wù)時間、 用戶行為等其它參數(shù)。Woodside等人提出了一種從軟件設(shè)計環(huán)境中通過插入收集執(zhí)行軌跡代碼的 方式自動生成 LQN 模型的方法(M. Woodside, C. Hrischuk, B. Selic, and S. Brayarov,
4AutomatedPerformance Modeling of Software Generated by a Design Environment, PerformanceEvaluation, vol. 45,pp. 107-123,2001.)。此方法根據(jù)設(shè)計人員給定的抽象層 度向源代碼中插入代碼,收集給定測試用例下軟件所表現(xiàn)出的執(zhí)行軌跡和資源消耗情況。 但只適合于開發(fā)態(tài)的軟件,并不適合于運(yùn)行態(tài)的Web應(yīng)用。Yoshihira和Jiang提出了一種基于監(jiān)測數(shù)據(jù)發(fā)現(xiàn)系統(tǒng)中穩(wěn)定關(guān)聯(lián)關(guān)系的方法 (Guofeijiang, Haifeng Chen, Kenji Yoshihira, Efficient and Scalable Algorithms for InferringLikely Invariants in Distributed Systems, IEEE TRANSACTIONS ON KNOWLEDGE AND DATAENGINEERING, VOL. 19, NO. 11, NOVEMBER(2007) 1508-1523) 他們通過 收集請求處理過程中組件對資源的消耗,分析出其中穩(wěn)定的關(guān)聯(lián),然后依據(jù)建立的關(guān)聯(lián)網(wǎng) 絡(luò),分析系統(tǒng)的處理能力,發(fā)現(xiàn)瓶頸所在,進(jìn)而做容量規(guī)劃。但只能預(yù)測系統(tǒng)的可擴(kuò)展性,而 不能對系統(tǒng)性能進(jìn)行預(yù)測。Cherkasova等人提出了一種基于事務(wù)的容量規(guī)劃方法(L. Cherkasova, Kivanc Ozonat, Automated Anomaly Detection and Performance Modeling of Enterprise Applications,ACMTransactions on Computer Systems, Vol. 27, No. 3,November 2009·)。 與本研究相似,他們也將用戶的一次HTTP請求看作一個事務(wù)。但他們的方法仍以請求為基 本單元,本文則關(guān)注于組件,更有利于發(fā)現(xiàn)組件一級的性能問題。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明依據(jù)Web應(yīng)用系統(tǒng)及其平臺所具有的特性,設(shè)計出一種基 于監(jiān)測數(shù)據(jù)自動構(gòu)造性能模型的系統(tǒng)和方法。在本發(fā)明中,利用Web應(yīng)用平臺能收集到的 日志信息,以統(tǒng)計方法為基礎(chǔ),通過軌跡跟蹤,服務(wù)時間計算和用戶行為模擬這幾個方面的 技術(shù),透明的構(gòu)造出一個可以能夠細(xì)粒度預(yù)測系統(tǒng)性能的性能模型。本發(fā)明技術(shù)基礎(chǔ)是Web應(yīng)用平臺系統(tǒng)所能提供的監(jiān)測技術(shù),獲取主要包括三類 日志數(shù)據(jù),一是服務(wù)的執(zhí)行軌跡(稱之為調(diào)用鏈);一是CPU總的利用率,具體指單個服務(wù) 器的CPU利用率,如果服務(wù)器有多個核,則將所有核的利用率累加;一是用戶使用系統(tǒng)的 軌跡。具體來講,為了響應(yīng)用戶發(fā)出的請求(完整的請求處理以及應(yīng)答過程稱為一個事 務(wù)),Web應(yīng)用會調(diào)用一系列的組件協(xié)作完成這一工作,而完成這一工作的組件的執(zhí)行流程 稱為調(diào)用鏈,比如Servlet組件調(diào)用EJB組件,EJB組件又調(diào)用數(shù)據(jù)庫等。用戶使用系統(tǒng) 的軌跡(稱之為用戶行為)則是指從用戶第一次登陸應(yīng)用,到最后一次訪問應(yīng)用之間的全 部行為,一般包括了多次對系統(tǒng)不同頁面的請求。支持這種監(jiān)測的工具商業(yè)的和開源的都 有很多,比如 Oracle 的診斷框架(ffeblogic Diagnostics Framework),開源的 InfraRED 工具(http://infrared.sourceforge.net),以及石if 究論文(Curtis Ε. Hrischuk, Murrayffoodside. Trace-Based Load Characterization for Generating Performance SoftwareModeIs. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 25, NO.1, JANUARY/ FEBRUARY1999)等。因此,本發(fā)明將不涉及監(jiān)測技術(shù)的說明,具體實(shí)現(xiàn)可以參照這些方法。使用本發(fā)明預(yù)測性能的過程,對系統(tǒng)維護(hù)人員來說是完全透明自動的,不需要人 工干預(yù)。該系統(tǒng)啟動之后,會自動的根據(jù)輸入的日志信息,構(gòu)造并更新性能模型。需要預(yù)測 結(jié)果時,維護(hù)人員只需要調(diào)用分析功能,則可獲得系統(tǒng)未來的性能。預(yù)測出的結(jié)果包括系統(tǒng) 的吞吐率、響應(yīng)時間、各軟件組件的資源利用率和總的資源利用率,以及各硬件資源的資源
5利用率等。本發(fā)明的目的之一是提供一種Web應(yīng)用細(xì)粒度性能建模方法,包括如下步驟1)設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期;2)獲取一個更新周期內(nèi)的Web應(yīng)用系統(tǒng)中間件平臺的運(yùn)行數(shù)據(jù);3)根據(jù)運(yùn)行數(shù)據(jù)計算Web應(yīng)用系統(tǒng)中間件平臺的性能數(shù)據(jù);4)根據(jù)當(dāng)前性能數(shù)據(jù)生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。所述Web應(yīng)用系統(tǒng)運(yùn)行數(shù)據(jù)包括執(zhí)行軌跡數(shù)據(jù)、CPU總的利用率和用戶使用系統(tǒng) 的軌跡數(shù)據(jù)。執(zhí)行軌跡數(shù)據(jù)即系統(tǒng)為完成用戶發(fā)出的請求而調(diào)用一系列組件的執(zhí)行流程, 又被稱為調(diào)用鏈。所述性能數(shù)據(jù)包括執(zhí)行圖、部署狀態(tài)數(shù)據(jù)、服務(wù)時間和用戶行為模式圖的派生向 量。部署狀態(tài)數(shù)據(jù)是指Web應(yīng)用系統(tǒng)中每個組件在服務(wù)器上的位置。服務(wù)時間指組件向外 提供服務(wù)的某個功能服務(wù)(比如函數(shù))實(shí)際需要的執(zhí)行時間,不包含等待時間。所述執(zhí)行軌跡數(shù)據(jù)用調(diào)用鏈表示,其中節(jié)點(diǎn)為組件,邊為組件之間的調(diào)用關(guān)系,實(shí) 線表示同步請求,虛線表示異步請求,編號表示調(diào)用的次數(shù)。通過合并一個事務(wù)的各調(diào)用鏈(即第一個節(jié)點(diǎn)相同的調(diào)用鏈)的對等節(jié)點(diǎn)形成總 體執(zhí)行路徑得到一個事務(wù)的執(zhí)行圖,所述對等節(jié)點(diǎn)是指兩個節(jié)點(diǎn)α和β滿足以下條件兩個節(jié)點(diǎn)α和β表示同一個入口,且或者α的父節(jié)點(diǎn)和β的父節(jié)點(diǎn)是對等節(jié)點(diǎn),且父節(jié)點(diǎn)到α和β的請求類型相 同;或者α = β且α和β的父節(jié)點(diǎn)為空。其中,用戶的一次HTTP請求為一個事務(wù)。通過分析執(zhí)行軌跡上各組件所在服務(wù)器的IP地址,獲得所述組件部署狀態(tài)數(shù)據(jù)。采用Kalman濾波方式計算每個組件提供服務(wù)的執(zhí)行時間得到所述服務(wù)時間。Kalman濾波提供了一個在離散時間點(diǎn)估算不可觀測狀態(tài)X的通用方法。第k時刻 狀態(tài)Xk可以定義為一個線性隨機(jī)差分方程Xk = AXh+BUH+WH(l.a)第k時刻觀察值總CPU利用率Zk定義為Zk = HXk+vk(l.b)其中A是從k-Ι時刻到k時刻狀態(tài)轉(zhuǎn)換矩陣,Uk^1是可選的控制參數(shù),B是與控制 相關(guān)的矩陣,Wk^1為測量誤差,其協(xié)方差矩陣為Qk_lt) H是Xk到Zk的轉(zhuǎn)換矩陣,vk是測量誤 差,其協(xié)方差矩陣為Rk。將公式(1. a)和(1. b)做如下映射后可以得到k時刻各組件服務(wù)的服務(wù)時間Xk = Xh+Wh(2. a)Zk = Σ =ι U . Xi + Vk(2. b)其中A = [Χ …站],表示k時刻各組件服務(wù)的服務(wù)時間,Zk為總CPU利用率, t為各服務(wù)的吞吐率。根據(jù)CPU利用率法則,有公式(2. b),即總CPU利用率等于各服務(wù)吞 吐率與服務(wù)時間乘積的累加和。將上述兩個公式(2. a)和(2. b)進(jìn)行迭代計算,從而獲得服務(wù)時間。將用戶使用系統(tǒng)的軌跡數(shù)據(jù)轉(zhuǎn)化為派生向量V的方法為 將公式 轉(zhuǎn)換為矩陣形式V-I = VXP其中Vi為每個事務(wù)在一次請求中被訪問到的次數(shù),V0 = 1 ;1 = (1,0, ...,0) Pn+1, k = OVfc = Oj,,,n+l 且 vn+1 = 1 ;求解矩陣形式公式對應(yīng)的線性方程組,獲得派生向量V。所述分層排隊網(wǎng)性能模型的生成方法為將單個執(zhí)行圖轉(zhuǎn)換為初步分層排隊網(wǎng)模型,其中,執(zhí)行圖的節(jié)點(diǎn)轉(zhuǎn)換為LQN的入 口(Entry);同一節(jié)點(diǎn)的服務(wù)合并為一個LQN模型的任務(wù)(Task),生成單個服務(wù)的分層排隊 網(wǎng)模型;第二,在模型上附加各個組件的部署狀態(tài)數(shù)據(jù);第三,在模型上添加服務(wù)時間;第四,根據(jù)用戶行為模式圖的派生向量生成負(fù)載,將單個服務(wù)的分層排隊網(wǎng)模型 組合為完整的分層排隊網(wǎng)性能模型。本發(fā)明的一個目的是提供一種Web應(yīng)用系統(tǒng)細(xì)粒度性能建模系統(tǒng),包括狀態(tài)更新模塊,設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期,依據(jù)每一更新周期內(nèi) 的Web應(yīng)用系統(tǒng)的運(yùn)行數(shù)據(jù),計算得到性能數(shù)據(jù);
日志載入模塊,提取每一更新周期內(nèi)的運(yùn)行數(shù)據(jù)并載入狀態(tài)更新模塊; 分析模塊,依據(jù)當(dāng)前性能數(shù)據(jù),生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。 所述狀態(tài)更新模塊包括執(zhí)行圖分析器、部署分析器、服務(wù)時間分析器和用戶行為
簡化器,執(zhí)行圖分析器利用執(zhí)行軌跡數(shù)據(jù)計算Web應(yīng)用系統(tǒng)完成一個事件的總體執(zhí)行路 徑;獲得所述執(zhí)行圖;部署分析器提取執(zhí)行軌跡數(shù)據(jù)中的各組件在服務(wù)器上的位置數(shù)據(jù),獲得所述組件 部署狀態(tài)數(shù)據(jù);服務(wù)時間分析器計算Web應(yīng)用系統(tǒng)每個組件提供服務(wù)的執(zhí)行時間,獲得所述服務(wù) 時間;用戶行為簡化器將用戶使用系統(tǒng)的軌跡數(shù)據(jù)轉(zhuǎn)化為用戶行為模式圖的派生向量。所述日志載入模塊包括軌跡信息載入器、CPU利用率載入器和用戶行為載入器,軌 跡信息載入器載入執(zhí)行軌跡數(shù)據(jù);CPU利用率載入器載入系統(tǒng)服務(wù)器CPU的總利用率;用戶 行為載入器載入用戶從登錄直到退出過程中使用系統(tǒng)的軌跡數(shù)據(jù)。上述性能建模方法會隨著系統(tǒng)的運(yùn)行而周期性的更新,以保證性能模型的狀態(tài) 能隨著系統(tǒng)的變化而變化。當(dāng)維護(hù)人員期望預(yù)測系統(tǒng)未來性能時,可觸發(fā)預(yù)測步驟,利用 狀態(tài)存儲模塊中的執(zhí)行圖、部署狀態(tài)數(shù)據(jù)等性能數(shù)據(jù)獲得未來的性能模型。本研究的性能 模型選用分層排隊網(wǎng)為基礎(chǔ)(M. Woodside,“The Stochastic Rendezvous Network Model for Performanceof Synchronous Client-Server Like Distributed Software", IEEE
7Transactions onComputers, Vol. 44,No. 1,January 1995,pp. 20-34),這種模型的最大優(yōu) 點(diǎn)是可以層次化的描述資源的使用情況,符合細(xì)粒度性能分析的需求。本發(fā)明提出了一種Web應(yīng)用平臺的性能建模系統(tǒng)和方法,其優(yōu)點(diǎn)如下1)無需人工參與,自動構(gòu)造性能模型;2)模型構(gòu)造以Web應(yīng)用平臺監(jiān)測到的運(yùn)行數(shù)據(jù)和統(tǒng)計方式為基礎(chǔ),可自動隨系統(tǒng) 狀態(tài)變化而更新;3)模型粒度遵循標(biāo)準(zhǔn)的Web應(yīng)用組件模型,使用多種Web應(yīng)用平臺;4)模型將用戶行為(即負(fù)載)簡化為分層排隊網(wǎng)模型所能接受模式,可真實(shí)的反 應(yīng)Web應(yīng)用系統(tǒng)被使用的情況;5)對Web應(yīng)用系統(tǒng)的未來性能可提供軟件組件、服務(wù)器節(jié)點(diǎn)和集群等多個層次的 性能數(shù)據(jù)。
圖1為本發(fā)明實(shí)施例中的性能建模方法的流程框圖。圖2為本發(fā)明實(shí)施例中性能建模系統(tǒng)的結(jié)構(gòu)框圖。圖3為本發(fā)明實(shí)施例中使用的調(diào)用鏈?zhǔn)纠?。圖4是圖3的調(diào)用鏈通過本發(fā)明的方法和系統(tǒng)生成的執(zhí)行圖。圖5是本發(fā)明實(shí)施例中由圖4的執(zhí)行圖生成的分層排隊網(wǎng)模型圖。圖6是在圖5中附加了部署狀態(tài)數(shù)據(jù)后的分層排隊網(wǎng)模型圖。圖7是在圖6中添加了服務(wù)時間后的分層排隊網(wǎng)模型圖。圖8是本發(fā)明實(shí)施例中的用戶行為模式圖的派生向量生成的負(fù)載圖。圖9是實(shí)施例中一個完整的分層排隊網(wǎng)模型圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例說明本發(fā)明的技術(shù)方案。本發(fā)明以Web應(yīng)用中間件所支持的標(biāo)準(zhǔn)組件模型為基礎(chǔ)(如Servlet、EJB、SQL 等),通過監(jiān)測到的運(yùn)行數(shù)據(jù)和統(tǒng)計方法自動計算性能數(shù)據(jù),并最終生成性能模型。主要監(jiān) 測數(shù)據(jù)包括調(diào)用鏈,CPU總的利用率和用戶使用系統(tǒng)的軌跡。本發(fā)明主要涉及兩個模塊,一 個是用于監(jiān)測和處理數(shù)據(jù)的狀態(tài)更新模塊,一個是分析模塊,能夠利用檢測到的運(yùn)行數(shù)據(jù) 建立性能模型,并預(yù)測Web應(yīng)用的未來性能狀態(tài),是用戶與維護(hù)人員交互的。狀態(tài)更新模塊主要負(fù)責(zé)監(jiān)測Web應(yīng)用的執(zhí)行,通過分析日志信息,獲得運(yùn)行數(shù)據(jù), 實(shí)現(xiàn)構(gòu)造執(zhí)行圖、獲得部署狀態(tài)數(shù)據(jù),計算服務(wù)時間和簡化用戶行為這幾項(xiàng)功能。另一方 面,分析模塊則在接受到維護(hù)人員的命令之后,通過載入最新的性能數(shù)據(jù),構(gòu)造出一個符合 系統(tǒng)最新狀態(tài)的性能模型,然后再計算分析出系統(tǒng)未來的性能。本發(fā)明利用Web應(yīng)用系統(tǒng)中間件平臺監(jiān)測到的運(yùn)行數(shù)據(jù),獲得性能數(shù)據(jù)并構(gòu)建性 能模型的總體方法為;1)設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期;2)獲取一個更新周期內(nèi)的Web應(yīng)用系統(tǒng)中間件平臺的運(yùn)行數(shù)據(jù);3)根據(jù)運(yùn)行數(shù)據(jù)計算Web應(yīng)用系統(tǒng)中間件平臺的性能數(shù)據(jù);
8
4)根據(jù)當(dāng)前性能數(shù)據(jù)生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。本發(fā)明的具體實(shí)施流程參見圖1所示。其中的性能數(shù)據(jù)是聯(lián)系數(shù)據(jù)處理與性能分 析的紐帶。當(dāng)運(yùn)行數(shù)據(jù)處理完之后,會作為性能數(shù)據(jù)保存起來,而當(dāng)需要分析性能時,則會 從中提取出來作為分析依據(jù)。具體的運(yùn)行數(shù)據(jù)為執(zhí)行軌跡數(shù)據(jù)、CPU總的利用率和用戶使用系統(tǒng)的軌跡數(shù)據(jù)。性 能數(shù)據(jù)包括執(zhí)行圖、部署狀態(tài)數(shù)據(jù)、服務(wù)時間和用戶行為模式圖的派生向量。每個性能數(shù)據(jù) 的獲得在下文中結(jié)合本發(fā)明的系統(tǒng)詳細(xì)說明。為實(shí)現(xiàn)以上流程,本發(fā)明的系統(tǒng)至少應(yīng)包括狀態(tài)更新模塊,設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期,依據(jù)每一更新周期內(nèi) 的Web應(yīng)用系統(tǒng)的運(yùn)行數(shù)據(jù),計算得到性能數(shù)據(jù);日志載入模塊,提取每一更新周期內(nèi)的運(yùn)行數(shù)據(jù)并載入狀態(tài)更新模塊;分析模塊,依據(jù)當(dāng)前性能數(shù)據(jù),生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。但為了獲得更好的發(fā)明效果,本實(shí)施例采用了如圖2所示的總體結(jié)構(gòu)。主要模塊 有初始模塊、日志載入模塊、狀態(tài)更新模塊、狀態(tài)存儲模塊、分析模塊五個部分。其中,狀態(tài) 更新模塊是整個算法的核心,負(fù)責(zé)生產(chǎn)預(yù)測所需的關(guān)鍵數(shù)據(jù)。圖中的小箭頭表示從箭頭的 方向獲取數(shù)據(jù),如用戶行為簡化器從用戶行為載入器獲取數(shù)據(jù)。大箭頭則表示執(zhí)行的順序。首先,初始模塊主要負(fù)責(zé)確定待定監(jiān)測的Web應(yīng)用中間件平臺。確定待定中間件 平臺的目的是為了便于日志載入模塊正常工作,因?yàn)椴煌闹虚g件平臺會存在些許差異, 其上的監(jiān)測工具也會有一定的差別,為了能獲得所需的運(yùn)行數(shù)據(jù),需要針對性的做一點(diǎn)調(diào) 整。但是這些方案的基本原理是一致的,而且如前所述不論是開源、商業(yè),還是研究領(lǐng)域都 有不少成果出現(xiàn),所以這里并不具體介紹監(jiān)測的方法。而所需的監(jiān)測數(shù)據(jù)格式在日志載入 模塊中具體介紹。第二,日志載入模塊主要負(fù)責(zé)將中間件監(jiān)測到的運(yùn)行數(shù)據(jù)載入到該發(fā)明的系統(tǒng) 中,組織成本發(fā)明所需的格式,為狀態(tài)更新模塊提供數(shù)據(jù)。該模塊包括了三個子模塊軌跡 信息載入器、CPU利用率載入器、用戶行為載入器。軌跡信息載入器主要負(fù)載載入調(diào)用鏈相關(guān)的數(shù)據(jù),將其組織為本研究所需的格 式。圖3給出了本發(fā)明具體使用的一個事務(wù)的不同調(diào)用鏈結(jié)構(gòu)。節(jié)點(diǎn)代表一個組件,邊代表 了組件之間的調(diào)用關(guān)系,實(shí)線表示同步請求,虛線表示異步請求,編號表示調(diào)用的次數(shù)。比 如CO表示了處理事務(wù)的起始組件,r0表示用戶請求數(shù),r0_l表示CO組件調(diào)用Cl組件的次 數(shù)。例如圖3中的301表示用戶請求了組件CO提供的服務(wù),而組件CO又調(diào)用了組件Cl, 組件Cl又先后調(diào)用了組件C2和C3 ;304則表示用戶請求了組件CO提供的服務(wù),而組件CO 又異步調(diào)用了組件C4,組件Cl又調(diào)用了組件Cl。另外,軌跡中包含了各個組件所在服務(wù)器 的IP信息。CPU利用率載入器主要負(fù)責(zé)周期性載入服務(wù)器CPU的總利用率,本研究以秒為單 位進(jìn)行收集。每條記錄的格式為time:[V··vn]。每條記錄首先由記錄的時間開始,后面 接一個記錄各個核對應(yīng)的CPU利用率。如果是傳統(tǒng)的單核CPU,則數(shù)據(jù)元素個數(shù)為一,而如 果是多核CPU,則數(shù)據(jù)元素個數(shù)與核數(shù)相同。用戶行為載入器主要負(fù)責(zé)載入用戶從登錄直到退出過程中使用系統(tǒng)的 軌跡??梢悦枋鰹橛脩粜袨槟J綀D(D. Menasce, V. Almeida, A Methodology for
9Workload Characterizationof Ε-commerce Sites, Proceedings of ACM E-Commerce 1999 (pp. 119-128),即可表示為一個矩陣P= [PijJ]的nXn的矩陣。Piij表示一個會話(一 個用戶的登錄周期)中,事務(wù)i之后出現(xiàn)事務(wù)j的概率,O彡i,j彡N+1。其中,事務(wù)O標(biāo)識 會話開始,事務(wù)N+1標(biāo)識會話終止。事務(wù)對應(yīng)于一個暴露給用戶的服務(wù),通常是一個Web頁第三,狀態(tài)更新模塊是本發(fā)明的關(guān)鍵,負(fù)責(zé)從載入的日志信息中統(tǒng)計分析出性能 建模直接需要的數(shù)據(jù)。另外,狀態(tài)更新模塊確定狀態(tài)更新周期的長短,確定之后按指定的周 期更新狀態(tài)。周期的長短可根據(jù)系統(tǒng)更新頻繁度而定,比平均更新周期短即可。一般而言, 將周期設(shè)為10-30分鐘即可。狀態(tài)更新模塊由執(zhí)行圖分析器、部署分析器、服務(wù)時間分析器 和用戶行為簡化器組成。執(zhí)行圖分析器負(fù)責(zé)從調(diào)用鏈(從軌跡信息載入器中讀取)中分析出一個事務(wù)在總 體上的執(zhí)行路徑,而不是某一次調(diào)用特定的調(diào)用鏈。因此,執(zhí)行圖分析器是通過合并一個事 務(wù)的各調(diào)用鏈的對等節(jié)點(diǎn)從而形成總體執(zhí)行路徑,即一個事務(wù)的執(zhí)行圖。因?yàn)槿绻皇呛?單的按節(jié)點(diǎn)合并圖中組件,則會導(dǎo)致結(jié)構(gòu)上的不一致。圖3所示的調(diào)用鏈,如果只是簡單的 按節(jié)點(diǎn)合并則會出現(xiàn)CO- > C4- > Cl- > C3的路徑,即組件CO調(diào)用了 C4,C4調(diào)用了 Cl, 而Cl又調(diào)用了 C3。但實(shí)際并不存在該路徑,導(dǎo)致不一致的原因在于C4- > Cl與CO- > Cl 并不對等,如果合并過程中不做區(qū)分,則會出現(xiàn)實(shí)際并不存在的路徑。為解決這個問題,本文定義了對等節(jié)點(diǎn)的概念。如果節(jié)點(diǎn)α和β是對等的,需要 滿足一下條件α和β表示同一個入口,且或者α的父節(jié)點(diǎn)和β的父節(jié)點(diǎn)是對等節(jié)點(diǎn),且父節(jié)點(diǎn)到α和β的請求類型相 同;或者α = β且α和β的父節(jié)點(diǎn)為空。對等節(jié)點(diǎn)的合并具體來說用E(X)表示節(jié)點(diǎn)χ的對等類,如果兩個對等的節(jié)點(diǎn)在 調(diào)用鏈中有α-> β,那么在合并后的事務(wù)執(zhí)行圖上有E(α)->E(β)。圖4描述了圖3的調(diào)用鏈合并后的事務(wù)執(zhí)行圖,其中保留了 CO- > Cl- > C3和 CO- > C4- > Cl的調(diào)用關(guān)系,所以不會導(dǎo)致不一致。部署分析器主要分析調(diào)用鏈(從軌跡信息載入器中讀取)中各組件的部署位置, 即某個組件是部署在哪臺服務(wù)器上的。這部分的信息仍然從軌跡監(jiān)測信息中提取,通過分 析軌跡上各個組件所在的物理設(shè)備的ΙΡ,從而獲得組件的部署信息。服務(wù)時間分析器主要用于計算組件的服務(wù)時間,依賴于CPU利用率載入器、部署 分析器和執(zhí)行圖分析器產(chǎn)出的數(shù)據(jù)。因?yàn)榻M件的服務(wù)時間很難精確的通過監(jiān)測獲得,因此 只能通過其它可監(jiān)測的數(shù)據(jù)計算出組件的服務(wù)時間。服務(wù)時間指組件向外提供服務(wù)的某 個功能服務(wù)(比如函數(shù)),實(shí)際需要的執(zhí)行時間,不包含等待時間。本發(fā)明采用Kalman濾 波的方式進(jìn)行計算(R. E. KalmaniA New Approach to Linear Filtering and Prediction Problems,Transactions of the ASME-Journal of Basic Engineering,1960)。計算時需要使用到執(zhí)行圖和部署狀態(tài)數(shù)據(jù),用于確定各個服務(wù)器上的組件,以及 這些組件的調(diào)用頻率(即吞吐率,可由調(diào)用次數(shù)除以狀態(tài)更新周期獲得,以秒為單位)。同 時,也會使用到CPU利用率的監(jiān)測數(shù)據(jù)。下文將介紹一臺服務(wù)器上的組件的服務(wù)時間的計
10算方法。Kalman濾波提供了一個在離散時間點(diǎn),估算不可觀測狀態(tài)X的通用方法。第k時 刻狀態(tài)Xk可以定義為一個線性隨機(jī)差分方程Xk = AXk-^Buk-AwH(La)第k時刻觀察值CPU總的利用率Zk定義為Zk = HXk+vk(l.b)其中A是從k-Ι時刻到k時刻狀態(tài)轉(zhuǎn)換矩陣,Uk^1是可選的控制參數(shù),B是與控制 相關(guān)的矩陣,Wk^1為測量誤差,其協(xié)方差矩陣為Qk_lt) H是Xk到Zk的轉(zhuǎn)換矩陣,vk是測量誤 差,其協(xié)方差矩陣為Rk。本發(fā)明將公式(1. a)和(1. b)做如下映射Xk = Xk-AwH(2. a)
(2.b)其中& = [Χ xf…站],表示k時刻各組件服務(wù)的服務(wù)時間,Zk為總CPU利用率, t為各服務(wù)的吞吐率(組件的調(diào)用頻率即吞吐率,可由調(diào)用次數(shù)除以狀態(tài)更新周期獲得,以 秒為單位)。根據(jù)CPU利用率法則,有公式(2. b),即總CPU利用率等于各服務(wù)吞吐率與服 務(wù)時間乘積的累加和。所以H可以定義如下Hk = Lt1 t2. . . tn](2. c)Kalman算法還需要一個初始值知和P。,其迭代過程如下1.使用Wh = 0更新Χ的狀態(tài)X^ = h2.更新協(xié)方差矩陣斤Pfe- = Pk-ι + Qk3.計算 Kalman 增益Kk = P;Hl[HkP[Hl + Rk) “14.修正χ的狀態(tài)Xlc = X^+Kk(zk-HkX^)5.修正協(xié)方差矩陣Pk:Pk = (I-KkHX初始值S0和Pci對Kalman濾波計算影響很小,可以設(shè)置為任何有理由的 值。本文根據(jù)排隊論的定義將初始值設(shè)置為4=rtf(l-ZQ)(王偉,張文博,魏峻, 鐘華,黃濤.一種資源敏感的Web應(yīng)用性能診斷方法,軟件學(xué)報,2010年21卷2期, PP. 194-208),rt(。為服務(wù)i的響應(yīng)時間,即服務(wù)時間的等于響應(yīng)時間乘以CPU空閑率;而 P0 叩((O2iOI)Ug)2),由于各組件服務(wù)的服務(wù)時間是獨(dú)立的,所以是對角矩陣。每次迭代必須確定Hk,Qk和Rk這三個矩陣。Hk可以通過調(diào)用鏈信息直接獲得,即 各個服務(wù)的吞吐率(一個采樣周期內(nèi),服務(wù)被調(diào)用的總次數(shù)除以采樣周期長度)。Qk表示 每一次迭代中χ變化的協(xié)方差矩陣,對于在線的系統(tǒng)通常無法獲得,只能估計變化范圍。但 如果Qk太大將導(dǎo)致估算結(jié)果抖動過大,太小又會使結(jié)果變化細(xì)微,體現(xiàn)不出服務(wù)時間的波 動。一個策略是將Qk設(shè)置為對角矩陣,且對角線元素為一個迭代過程中X變化的最大值的平方Qk = CliagK1, I2,..., ξη),其中fi = m 啡^1)2)為每一次測量值的誤差,即
CPU總的利用率的測量誤差。本文認(rèn)為CPU總的利用率的測量值誤差很小,足以值得信賴, 因此設(shè)Rk = 0。迭代過程中,第4步修正X的狀態(tài)是服務(wù)時間估算的關(guān)鍵,該公式可以簡化 為= X0Id+K · e的形式,即利用Kalman增益和誤差e修正X。ld的值.也就是說,隨著新 數(shù)據(jù)的不斷收集,服務(wù)時間X可以在迭代計算的過程中不斷的被更新,從而保證估算出的 服務(wù)時間與實(shí)際服務(wù)時間的吻合。用戶行為簡化器主要負(fù)責(zé)將實(shí)際的用戶行為(從用戶行為載入器中讀取)轉(zhuǎn)化 為分層排隊網(wǎng)所能接受的形式。為了簡化用戶行為模式圖,本發(fā)明引入了用戶行為模式圖 的派生向量用其描述用戶行為模式圖的基本特征,即各事務(wù)在一個會話中被平均訪問的次 數(shù),它與用戶行為模式圖中各事務(wù)被訪問次數(shù)在概率上是相等的。設(shè)V表示用戶行為模式圖的派生向量,Vi表示每個事務(wù)在一次會話中被訪問到的 次數(shù)。如果假設(shè)%的次數(shù)是1,即事務(wù)開始的次數(shù)為1,那么各個事務(wù)被訪問的次數(shù)可定義 為公式(3)的形式,即各事務(wù)被訪問的次數(shù)等于其前驅(qū)節(jié)點(diǎn)被訪問次數(shù)與訪問該節(jié)點(diǎn)概率 的乘積。 公式3可以寫為矩陣形式P-I=Pxp(4)其中 = (1,00),pn+1,k = OVfc = O,...,n+1 且 vn+1 = 1,因?yàn)殚_始和結(jié)束事務(wù)必
然存在,且結(jié)束事務(wù)不會再訪問其它事務(wù)。求解公式(4)對應(yīng)的線性方程組,即可獲得派生 向量V。狀態(tài)更新模塊會以狀態(tài)更新周期為間隔,周期性的執(zhí)行,以更新性能數(shù)據(jù)。每次更 新之后,性能數(shù)據(jù)都會保存在狀態(tài)存儲模塊中,以便分析模塊使用。第四,狀態(tài)存儲模塊主要負(fù)責(zé)存儲狀態(tài)更新模塊生成的最新狀態(tài),包括執(zhí)行圖、 部署狀態(tài)數(shù)據(jù)、服務(wù)時間和用戶行為,對應(yīng)于狀態(tài)更新模塊相應(yīng)子模塊生成的結(jié)果。比如用 戶行為則是用戶行為簡化模塊生成的用戶行為模式圖的派生向量。分析模塊在收到維護(hù)人 員的命令之后,會從該模塊提取數(shù)據(jù)進(jìn)行預(yù)測。最后,分析模塊則負(fù)責(zé)根據(jù)狀態(tài)信息生成性能模型,并調(diào)用其工具分析出未來的 性能。該模塊主要由性能模型構(gòu)造器、性能分析模塊、和顯示模塊組成。當(dāng)發(fā)現(xiàn)狀態(tài)存儲模 塊存在性能數(shù)據(jù)時且被啟動時,分析模塊會調(diào)用各個子模塊工作,將性能分析結(jié)果呈現(xiàn)給 維護(hù)人員。否則,此時尚未完成一個采集周期,并未收集到運(yùn)行數(shù)據(jù),等待維護(hù)人員再次啟 動分析模塊。性能模型構(gòu)造器負(fù)責(zé)根據(jù)性能數(shù)據(jù)生成分層排隊網(wǎng)性能模型,具體包括四個步 驟第一,根據(jù)單個執(zhí)行圖生成單個服務(wù)分層排隊網(wǎng)模型;第二,附加上部署狀態(tài)數(shù)據(jù),確 定各個組件的部署狀態(tài);第三,根據(jù)服務(wù)時間在性能模型的結(jié)構(gòu)中填入服務(wù)時間這一參數(shù); 第四,根據(jù)用戶行為模式圖的派生向量生成負(fù)載,將單個服務(wù)的分層排隊網(wǎng)組合為一個完 整的分層排隊網(wǎng)性能模型。經(jīng)過執(zhí)行圖分析器分析之后,會以事務(wù)為單元,生成各個事務(wù)的執(zhí)行圖。該執(zhí)行圖 反映了事務(wù)在統(tǒng)計特征上的總體特征,可以直接轉(zhuǎn)換為分層排隊網(wǎng)模型(LQN)。轉(zhuǎn)換規(guī)則是)轉(zhuǎn)換為LQN的入口(Entry),同時將同一個組件的服務(wù)合并為 一個LQN模型的任務(wù)(Task)。圖4為由執(zhí)行圖分析器處理圖3所示的一個事務(wù)的不同調(diào)用 鏈經(jīng)合并對等節(jié)點(diǎn)后得到的執(zhí)行圖,轉(zhuǎn)換成LQN模型如圖5所示。附加部署狀態(tài)數(shù)據(jù)的操作比較直接,只需在模型中將同一個硬件資源上的任務(wù)部 署在同一個描述硬件資源的LQN模型上即可。圖6給出了附加部署狀態(tài)數(shù)據(jù)的一個例子。 如果部署分析器分析出CO部署在ServerO服務(wù)器上,Cl和C2部署在Serverl服務(wù)器上, 而C3和C4部署在SerVer2服務(wù)器上,則圖5則會轉(zhuǎn)化為圖6所示結(jié)構(gòu)。服務(wù)時間是分層排隊網(wǎng)的一個關(guān)鍵參數(shù)。每個組件服務(wù),即分層排隊網(wǎng)的每個入 口都有這一參數(shù),表示該組件自身執(zhí)行實(shí)際所需的時間,不包括自身和調(diào)用其它組件的等 待時間。服務(wù)時間的估算由服務(wù)時間分析器完成。計算過程中,同一組件的不同服務(wù),即 LQN模型中不同任務(wù)的不同入口的服務(wù)時間將分別計算。但同一服務(wù)的不對等節(jié)點(diǎn)并不做 區(qū)分,因?yàn)榇藭r并不用關(guān)心組件之間的調(diào)用關(guān)系,只需要關(guān)心每個服務(wù)的服務(wù)時間即可。圖 7給出了一個添加了服務(wù)時間參數(shù)的LQN模型的示例。圖中Cl和C3任務(wù)具有兩個入口,但 是它們是同一服務(wù)的兩個不對等節(jié)點(diǎn),所以服務(wù)時間是一樣的。用戶行為模式圖的派生向量不存在環(huán),因此可以用LQN建模。圖8給出了用戶行 為模式圖的派生向量的LQN模板。任務(wù)EB模擬了一個用戶,對應(yīng)于LQN模型中模擬用戶 的特殊任務(wù),可以采用開放和封閉兩種方式生成負(fù)載(Franks,G.,Hubbard, Α.,Majumdar, S. , Petriu, D. C. , Rolia, J. , ffoodside, C. M :A toolset for Performance Engineering and SoftwareDesign of Client-Server Systems. Performance Evaluation, Vol. 24, Nb. 1-2(1995) 117-135)。EB以派生向量V中的數(shù)值訪問各個任務(wù)(從Tl到Τη)。這些任務(wù) 是由執(zhí)行圖生成的LQN模型,但并不存在TO和Τη+1這兩個的事務(wù),因?yàn)樗鼈冎皇情_始和結(jié) 束的標(biāo)志。另外,如果同一任務(wù)分布在不同的事務(wù)執(zhí)行圖中,它們最后會合并為一個任務(wù), 但是入口并不合并,否則也會引起如何并調(diào)用鏈中所述的不一致問題。圖中的每個事務(wù),對 應(yīng)于一個類似于圖8所示的執(zhí)行圖,但是相同的硬件資源最終會合并為一個。圖9給出了一個簡單的例子,描述了一個完整的LQN模型的樣式。頂層任務(wù)EB代 表用戶,它會向應(yīng)用服務(wù)器發(fā)出不同類型的請求。它的服務(wù)時間比較特殊,統(tǒng)計的是用戶平 均思考時間,而不是服務(wù)時間,因?yàn)橛脩舨僮鞯拈g隔是思考時間,而不是實(shí)際執(zhí)行的服務(wù)時 間。當(dāng)用戶請求到達(dá)負(fù)載均衡器后會按不同的比例轉(zhuǎn)發(fā)給異構(gòu)的應(yīng)用服務(wù)器。應(yīng)用服務(wù)器 收到請求后會調(diào)用不同的數(shù)據(jù)庫查詢操作。當(dāng)數(shù)據(jù)庫查詢完成后,再逐層釋放嵌套等待,直 到用戶釋放等待,一次請求結(jié)束。性能分析模塊是一個求解分層排隊網(wǎng)工具的計算器,可以通過分析工具LQNS和 模擬工具 LQNSim 進(jìn)行求解(M. Woodside and G. Franks, "Tutorial Introduction to LayeredModeling of Software Perfromancehttp://www. see. carleton. ca/rads/lqns/ lqn-documentation)。該工具的輸入是一個分層排隊網(wǎng)模型的性能模型,輸出則是性能預(yù) 測的結(jié)果。結(jié)果包含了系統(tǒng)總的響應(yīng)時間、吞吐率、處理器利用率和單個組件的使用率、總 執(zhí)行時間等數(shù)據(jù)。依據(jù)這些數(shù)據(jù),設(shè)計人員可以清晰地了解不同負(fù)載下系統(tǒng)的性能狀況,再 參照最終系統(tǒng)的需求說明,便可判斷當(dāng)前設(shè)計是否滿足需求。特別是在有若干備選方案的 情況下,通過比較預(yù)測結(jié)果,可以從中選擇相對最優(yōu)的方案。顯示模塊主要負(fù)責(zé)將預(yù)測的結(jié)果展示給維護(hù)人員,以圖表的方式供維護(hù)人員以不同的形式分析比較系統(tǒng)的性能。圖表顯示主要負(fù)責(zé)將預(yù)測出的性能數(shù)據(jù)用折線圖的方式顯 示響應(yīng)時間、吞吐率、處理器利用率和單個組件的使用率和總執(zhí)行時間等。橫坐標(biāo)為時間, 縱坐標(biāo)為上述各個性能數(shù)據(jù),每種數(shù)據(jù)用一個直線圖表示。 總之,本發(fā)明以監(jiān)測和統(tǒng)計的方式,為Web應(yīng)用自動構(gòu)造能適應(yīng)系統(tǒng)變化的性能 模型,從而預(yù)測出系統(tǒng)未來的性能表現(xiàn)。預(yù)測結(jié)果可以體現(xiàn)出系統(tǒng)不同層次和粒度的性能 特征,比如表征出集群,集群中的節(jié)點(diǎn),以及節(jié)點(diǎn)上的組件等幾個層次上不同粒度的性能數(shù) 據(jù)。為負(fù)載均衡策略調(diào)整,節(jié)點(diǎn)的供給與回收,瓶頸檢測與定位,以及差異性的服務(wù)質(zhì)量保 障等控制技術(shù)提供量化依據(jù)。
權(quán)利要求
一種Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,包括如下步驟1)設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期;2)提取一個更新周期內(nèi)的Web應(yīng)用系統(tǒng)中間件平臺的運(yùn)行數(shù)據(jù);3)根據(jù)運(yùn)行數(shù)據(jù)得出Web應(yīng)用系統(tǒng)中間件平臺的性能數(shù)據(jù);4)根據(jù)當(dāng)前性能數(shù)據(jù)生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。
2.根據(jù)權(quán)利要求1所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于所述運(yùn)行數(shù) 據(jù)包括執(zhí)行軌跡數(shù)據(jù)、CPU總的利用率和用戶使用系統(tǒng)的軌跡數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于所述性能數(shù) 據(jù)包括執(zhí)行圖、組件部署狀態(tài)數(shù)據(jù)、服務(wù)時間和用戶行為模式圖的派生向量。
4.根據(jù)權(quán)利要求3所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于所述執(zhí)行軌 跡數(shù)據(jù)用調(diào)用鏈表示,其中節(jié)點(diǎn)為組件,邊為組件之間的調(diào)用關(guān)系,實(shí)線表示同步請求,虛 線表示異步請求,編號表示調(diào)用的次數(shù)。
5.根據(jù)權(quán)利要求4所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于通過合并一 個事務(wù)的各調(diào)用鏈的對等節(jié)點(diǎn)得到一個事務(wù)的執(zhí)行圖,所述對等節(jié)點(diǎn)是指兩個節(jié)點(diǎn)α和 β滿足以下條件兩個節(jié)點(diǎn)α和β表示同一個入口,且或者α的父節(jié)點(diǎn)和β的父節(jié)點(diǎn)是對等節(jié)點(diǎn),且父節(jié)點(diǎn)到α和β的請求類型相同; 或者α = β且α和β的父節(jié)點(diǎn)為空。
6.根據(jù)權(quán)利要求3所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于通過分析執(zhí) 行軌跡上各組件所在服務(wù)器的IP地址,獲得所述組件部署狀態(tài)數(shù)據(jù)。
7.根據(jù)權(quán)利要求3所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于采用下述兩 個公式進(jìn)行迭代計算得到所述服務(wù)時間Xk = Xk-I+Wk-IZk = Σ =1 . Xi + ^k其中,Xic = [Xjt xl ... ,表示k時刻各組件服務(wù)的服務(wù)時間,Zk為CPU總的利用率,t為各服務(wù)的吞吐率,Wk^1為測量誤差,其協(xié)方差矩陣為Qk_1; Vk是測量誤差,其協(xié)方差矩陣為Rk。
8.根據(jù)權(quán)利要求3所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于將用戶使用 系統(tǒng)的軌跡數(shù)據(jù)轉(zhuǎn)化為派生向量V的方法為將公式巧二 Σ憨xp^」=L…,η+ιCsH轉(zhuǎn)換為矩陣形式 F-T=FXP其中Vi為每個事務(wù)在一次請求中被訪問到的次數(shù),V0 = 1 ; 1 = ao, ...,o)pn+1,k = O Vfe = · · ·,n+1 且 vn+1 = 1 ;求解矩陣形式公式對應(yīng)的線性方程組,獲得派生向量V。
9.根據(jù)權(quán)利要求3所述的Web應(yīng)用系統(tǒng)細(xì)粒度性能建模方法,其特征在于所述分層排 隊網(wǎng)性能模型的生成方法為首先,將單個執(zhí)行圖轉(zhuǎn)換為單個服務(wù)的分層排隊網(wǎng)模型,其中,執(zhí)行圖的節(jié)點(diǎn)轉(zhuǎn)換為模 型的入口 ;同一節(jié)點(diǎn)的服務(wù)合并為一個模型的任務(wù); 第二,在模型上附加各個組件的部署狀態(tài)數(shù)據(jù); 第三,在模型上添加服務(wù)時間;第四,根據(jù)用戶行為模式圖的派生向量生成負(fù)載,將單個服務(wù)的分層排隊網(wǎng)模型組合 為完整的性能模型。
10.一種Web應(yīng)用細(xì)粒度性能建模系統(tǒng),其特征在于包括狀態(tài)更新模塊,設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期,依據(jù)每一更新周期內(nèi)的Web 應(yīng)用系統(tǒng)的運(yùn)行數(shù)據(jù),計算得到性能數(shù)據(jù);日志載入模塊,提取每一更新周期內(nèi)的運(yùn)行數(shù)據(jù)并載入狀態(tài)更新模塊; 分析模塊,依據(jù)當(dāng)前性能數(shù)據(jù),生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。
11.根據(jù)權(quán)利要求10所述的Web應(yīng)用細(xì)粒度性能建模系統(tǒng),其特征在于所述狀態(tài)更新 模塊包括執(zhí)行圖分析器、部署分析器、服務(wù)時間分析器和用戶行為簡化器,執(zhí)行圖分析器利用執(zhí)行軌跡數(shù)據(jù)計算Web應(yīng)用系統(tǒng)完成一個事務(wù)的總體執(zhí)行路徑;獲 得所述執(zhí)行圖;部署分析器提取執(zhí)行軌跡數(shù)據(jù)中的各組件在服務(wù)器上的位置數(shù)據(jù),獲得所述組件部署 狀態(tài)數(shù)據(jù);服務(wù)時間分析器計算Web應(yīng)用系統(tǒng)每個組件提供服務(wù)的執(zhí)行時間,獲得所述服務(wù)時間;用戶行為簡化器將用戶使用系統(tǒng)的軌跡數(shù)據(jù)轉(zhuǎn)化為用戶行為模式圖的派生向量。
12.根據(jù)權(quán)利要求10所述的Web應(yīng)用細(xì)粒度性能建模系統(tǒng),其特征在于所述日志載入 模塊包括軌跡信息載入器、CPU利用率載入器和用戶行為載入器,軌跡信息載入器載入執(zhí)行軌跡數(shù)據(jù);CPU利用率載入器載入系統(tǒng)服務(wù)器CPU的總利用率;用戶行為載入器載入用戶從登錄直到退出過程中使用系統(tǒng)的軌跡數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種Web應(yīng)用細(xì)粒度性能建模方法及其系統(tǒng)。建模方法包括1)設(shè)定Web應(yīng)用系統(tǒng)中間件平臺的更新周期;2)提取一個更新周期內(nèi)的Web應(yīng)用系統(tǒng)中間件平臺的運(yùn)行數(shù)據(jù);3)根據(jù)運(yùn)行數(shù)據(jù)得出Web應(yīng)用系統(tǒng)中間件平臺的性能數(shù)據(jù);4)根據(jù)當(dāng)前性能數(shù)據(jù)生成并顯示W(wǎng)eb應(yīng)用系統(tǒng)的分層排隊網(wǎng)性能模型。本發(fā)明的建模系統(tǒng)包括狀態(tài)更新模塊、日志載入模塊和分析模塊。本發(fā)明的建模系統(tǒng)和方法無需人工參與,以Web應(yīng)用平臺監(jiān)測到的運(yùn)行數(shù)據(jù)和統(tǒng)計方式為基礎(chǔ),自動構(gòu)造性能模型,并隨系統(tǒng)狀態(tài)變化而更新;所建造的模型粒度遵循標(biāo)準(zhǔn)的Web應(yīng)用組件模型,可運(yùn)用于多種Web應(yīng)用平臺;并真實(shí)反應(yīng)Web應(yīng)用系統(tǒng)被使用的情況。
文檔編號G06F17/50GK101916321SQ20101027521
公開日2010年12月15日 申請日期2010年9月7日 優(yōu)先權(quán)日2010年9月7日
發(fā)明者張文博, 王偉, 鐘華, 魏峻, 黃濤, 黃翔 申請人:中國科學(xué)院軟件研究所