【正文】
,例如服務(wù)器的內(nèi)存使用狀況、CPU使用狀況、磁盤I/O情況等。 性能預(yù)備測試性能預(yù)備測試用于對系統(tǒng)建立直觀的認識,即在正式開始測試之前體驗性地使用SPGEcq客戶端的主要功能。根據(jù)用戶體驗,客戶端的所有操作均能在5秒之內(nèi)完成,響應(yīng)時間相對較長的是登錄過程。 測試計劃測試計劃階段需要分析用戶活動,確定系統(tǒng)的性能目標。 性能測試領(lǐng)域分析根據(jù)對該即時通信系統(tǒng)項目背景的了解,本性能測試要解決的主要問題為:驗證系統(tǒng)是否到了預(yù)期的性能指標,能否穩(wěn)定地在當前環(huán)境下運行。這些內(nèi)容對應(yīng)于“能力驗證”應(yīng)用領(lǐng)域,可用壓力測試的方法對其進行性能測試。 用戶活動剖析與業(yè)務(wù)建模本研究所描述的即時通信系統(tǒng)的建模主要通過分析用戶活動來體現(xiàn)。在對用戶活動進行建模的過程中,得到了以下數(shù)據(jù):(1)平均每天使用該系統(tǒng)的總用戶數(shù)約為(2)平均每個用戶的登錄會話時間為4小時,即平均每個用戶在8小時時間內(nèi)有4個小時處于“使用系統(tǒng)”的狀態(tài)。根據(jù)以上數(shù)據(jù),用公式()對并發(fā)用戶數(shù)進行計算:1604/8=80(人)有了這個參考數(shù)據(jù)就可以進行測試場景的設(shè)計。 確定性能目標本性能測試的應(yīng)用領(lǐng)域已被確定為“能力驗證”。于是在確定性能目標時,主要圍繞這個方面來討論。最終確定的明確的性能需求如下:(1)系統(tǒng)能夠在高于實際系統(tǒng)運行壓力1倍的情況下,持續(xù)穩(wěn)定工作8小時:持續(xù)穩(wěn)定工作定義為在系統(tǒng)運行期間,系統(tǒng)的可用資源不會出現(xiàn)持續(xù)性減少,客戶端響應(yīng)速度沒有顯著變化。(2)在發(fā)送消息響應(yīng)時間要求5秒的情況下,找到系統(tǒng)能夠承受的最大用戶數(shù)量:該要求可以給用戶提供一個針對該即時通信系統(tǒng)可擴展性的參考。 性能需求描述 Performance Demand Description需求內(nèi)容需求詳細描述系統(tǒng)能夠穩(wěn)定運行系統(tǒng)壓力條件:高于實際系統(tǒng)運行壓力1倍系統(tǒng)穩(wěn)定的判定條件:測試過程中,各應(yīng)用進程的內(nèi)存使用沒有明顯變化,響應(yīng)時間和消息處理能力沒有明顯變化測試持續(xù)時間:8小時在消息響應(yīng)時間要求5秒的情況下,找出系統(tǒng)能夠承受的最大用戶數(shù)量方法:以“響應(yīng)時間大于5秒”作為負載測試的結(jié)束條件,獲得系統(tǒng)能夠承受的最大用戶數(shù)量對“能力驗證”應(yīng)用領(lǐng)域來說,本測試需要關(guān)注的是消息的響應(yīng)時間、各服務(wù)器的資源使用狀況,結(jié)合性能測試需求,性能目標可以定義如下:(1)在典型用戶數(shù)量要求的情況下,服務(wù)器CPU平均使用率不高于75%,內(nèi)存使用率不高于75%;(2)在穩(wěn)定性測試的壓力情況下,服務(wù)器CPU平均使用率不高于95%,內(nèi)存使用率不高于90%。 測試設(shè)計與開發(fā)對本即時通信系統(tǒng)性能測試而言,測試場景關(guān)注用戶接入系統(tǒng)的數(shù)量,以場景來體現(xiàn)性能測試的目的和目標。 測試環(huán)境設(shè)計本性能測試需要驗證即時通信系統(tǒng)在實際應(yīng)用部署環(huán)境上的性能,因此,盡可能選擇接近實際生產(chǎn)的環(huán)境來進行測試。由于本測試的環(huán)境就是實際生產(chǎn)環(huán)境,因此在環(huán)境設(shè)計上,不需要考慮太多的內(nèi)容。 測試環(huán)境 Test Environment設(shè)備硬件配置軟件設(shè)置數(shù)據(jù)庫服務(wù)器HP 8000服務(wù)器,磁盤陣列CPU 12*850MHz,24GB內(nèi)存Asianux server MySQL 應(yīng)用服務(wù)器HP 8000服務(wù)器,磁盤陣列CPU 12*850MHz,24GB內(nèi)存SPGLinux serverOpenfire +Tomcat 性能測試控制臺PC機,160GB 硬盤CPU 2GHz,1GB 內(nèi)存LoadRunner AnalysisMicrosoft Office Excel負載生產(chǎn)設(shè)備PC機,160GB 硬盤CPU 2GHz,1GB 內(nèi)存Windows XPSPGLinux DesktopLoadRunner Agent。 測試場景設(shè)計,可以很容易地為本次測試給出需要的場景。根據(jù)上面給出的數(shù)據(jù),設(shè)定的總并發(fā)用戶數(shù)為80。 典型測試場景 Typical Test Scenario場景名稱場景業(yè)務(wù)及比例分配測試指標性能計數(shù)器系統(tǒng)應(yīng)用典型場景用戶分配:80用戶增長模式:每15秒增加4個迭代時間間隔:15分鐘運行時間:8小時消息響應(yīng)時間小于5秒應(yīng)用服務(wù)器的CPU使用率、內(nèi)存使用率響應(yīng)時間穩(wěn)定性測試場景用戶分配:典型應(yīng)用場景用戶數(shù)的2倍測試持續(xù)時間:8小時測試過程中,各應(yīng)用進程的內(nèi)存使用沒有明顯變化測試過程中,響應(yīng)時間和業(yè)務(wù)處理能力沒有明顯變化應(yīng)用服務(wù)器的CPU使用率、內(nèi)存使用率響應(yīng)時間 即時通信系統(tǒng)性能測試評估測試執(zhí)行完成后,通過LoadRunner的Analysis模塊,可以對測試過程中得到的性能數(shù)據(jù)進行分析。 基礎(chǔ)性能分析。從該關(guān)聯(lián)圖可以看出,隨著運行用戶數(shù)量的階梯式地增長,應(yīng)用系統(tǒng)性能的變化趨勢也很明顯。 運行虛擬用戶數(shù)——平均傳輸響應(yīng)時間關(guān)聯(lián)曲線 Running Vusers—Average Transaction Response Time Correlation Curve,Vuser的數(shù)量從0至10增加時,各事務(wù)的性能表現(xiàn)基本保持穩(wěn)定;當Vuser的數(shù)量從10增至30時,事務(wù)的響應(yīng)時間呈緩慢的線性增長狀態(tài);當Vuser的數(shù)量超過50時,事務(wù)的響應(yīng)時間急劇增加。根據(jù)“性能下降曲線分析法”可以知道,50個用戶為“最佳狀態(tài)下的最大用戶并發(fā)數(shù)”。從圖中可以看到,當Vuser增長到50時,基本上所有事務(wù)的響應(yīng)時間都在5秒以內(nèi),因此,根據(jù)需求和“性能下降曲線分析法”可以得出結(jié)論:(1)在“系統(tǒng)應(yīng)用典型場景”條件下,被測系統(tǒng)在50個并發(fā)用戶的訪問情況下事務(wù)響應(yīng)時間小于5秒。(2)Vuser為50是該系統(tǒng)性能表現(xiàn)的拐點。(3)“文件傳輸”事務(wù)是性能相對最差的事務(wù)。 建議和結(jié)論查看整個測試過程的每秒點擊數(shù)以及吞吐量的曲線。 每秒點擊數(shù)的曲線圖 The Curve Diagram of Hits per Second 吞吐量的曲線圖 The Curve Diagram of Throughput可以看到在7小時20分左右,吞吐量有一個明顯變低的趨勢,說明此時應(yīng)用服務(wù)器已經(jīng)遇到了瓶頸。在7小時25分系統(tǒng)的業(yè)務(wù)處理能力開始明顯變小,基本上達到預(yù)期運行8小時的穩(wěn)定性要求。如果要進一步確定系統(tǒng)的性能瓶頸,可以檢查是否由于應(yīng)用服務(wù)器本身的吞吐量限制,從而決定進一步的調(diào)優(yōu)策略。因為需要關(guān)注的是實際運行系統(tǒng)的性能,所以客戶端軟件在其中扮演的角色非常重要??蛻舳烁鞴δ苣K的問題導(dǎo)致運行中整個即時通信系統(tǒng)的性能受到影響。在接下來的二次開發(fā)和調(diào)優(yōu)中,就要針對客戶端的功能模塊,特別是消息模塊和插件體系進行修改。結(jié)束語企業(yè)級即時通信軟件SPGEcq客戶端主要采用Java進行自主研發(fā),基于XMPP的Smack庫和Openfire應(yīng)用服務(wù)器平臺。它減少了企業(yè)級即時通信費用,提高了企業(yè)整體的工作效率,促進了企業(yè)跨平臺軟件的正版化。該客戶端具有以下優(yōu)點:(1)開放源碼SPGEcq客戶端軟件的源代碼遵循GNU較寬松的公共許可證(GNU Lesser General Public License,LGPL),可向任何人提供開放式的訪問。它不僅更易于定制,而且也加強了企業(yè)在所有權(quán)環(huán)境下的獨立性。如先前所述,通過以開源許可證的方式來發(fā)布核心代碼和基本模塊,為開發(fā)者社區(qū)提供了一種能夠改善產(chǎn)品并開放給其他用戶使用的機會。鑒于開源代碼開放式訪問的特色,企業(yè)可以輕松并快速地按照自己的需要來定制解決方案,免去了外包定制的昂貴成本和必要性。正是開源的力量使得企業(yè)用戶可以享受到由個人開發(fā)、定制或整合的成果,加速推進基于國產(chǎn)軟件的正版化,通過軟件正版化帶動本國軟件產(chǎn)業(yè)的發(fā)展。(2)功能完善客戶端軟件涵蓋了當前即時通信軟件的基本功能,包括文件傳輸狀態(tài)通知、多用戶群組聊天、對方輸入通知、拼寫檢查等功能特性。它的插件機制允許使用ignite realtime社區(qū)所提供的不同插件。(3)跨平臺由于使用Java語言開發(fā),客戶端源代碼只需使用不同平臺下的打包工具打包后就能跨平臺運行,完全符合企業(yè)轉(zhuǎn)平臺實施的要求。致謝四年的學(xué)習(xí)生活即將結(jié)束。回首大學(xué)生活,我最大的收獲是和其他人的合作。我感到自己力量的藐小,感到合作的重要性,同時也感到合作的快樂。也許當這個項目結(jié)束的時候,對我最重要的不是項目的結(jié)果,而是整個合作的過程。在這個項目的過程中,我得到了許許多多人的指導(dǎo)和幫助。首先,要感謝李超建老師提供給我這樣一個寶貴的實踐機會,使我能夠參與到這樣一個有意義的項目中。無論是在項目的進展過程中,還是在本文的選題、研究和撰寫的各個階段,都凝聚著他的嚴格要求和悉心指導(dǎo)。在這一年他來對項目的許多具體工作給予了詳細的指導(dǎo),思想上給了我很多鼓勵,理論方面也提供了很多有益的指導(dǎo)。我要感謝云南省Linux公共服務(wù)技術(shù)支持中心技術(shù)處的所有人。本文中開發(fā)和測試環(huán)境能夠建立是他們大力配合的結(jié)果。另外,和他們的接觸使我加深了對中國開源產(chǎn)業(yè)界的了解。我要特別感謝實訓(xùn)三個月一直無私的關(guān)懷和幫助我的同學(xué)讓我學(xué)到了很多做人的道理。最后我要感謝父母對我在學(xué)習(xí)和工作期間的關(guān)懷和鼓勵,我所有的成績中都有他們的心血。正是他們默默的支持使我能夠全力的投入到學(xué)習(xí)和工作中。 參考文獻[1] (EIM)軟件的研究與開發(fā)[D] .杭州:浙江工業(yè)大學(xué),2008.[2] Jive Software. Openfire Documentation[DB/OL]. ,20090108.[3] Jabber Software Foundation. Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence[DB/OL]. ,2004.[4] [D].北京:清華大學(xué),2001.[5] [D].蘇州:蘇州大學(xué),2008. [6] E. M. Wong. Method for Estimating the Number of Concurrent Users[DB/OL].,20041014.[7] S. Barber. User experience, not metrics Part 10: Creating a degradation curve[DB/OL].,20040421.[8] [M].北京:清華大學(xué)出版社,2006.[9] [M].北京:國防工業(yè)出版社,2003.[10] Jive software. Smack API [DB/OL]. ,2006.[11] Mercury Interactive. LoadRunner Books Online[CP/DK].Mercury CD,20050725.[12] Cay S. Horstmann, Gray Cornell. Core Java[M].Santa Clara:Sun Microsystems,2008.[13] Free Software Foundation. GNU Lesser General Public License[DB/OL]., 1999.[14] [M].北京:科學(xué)出版社,2007.[15] [M].北京:清華大學(xué)出版社,2005.