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