王永剛
(重慶數(shù)字城市科技有限公司,重慶 400020)
網(wǎng)絡(luò)地理信息系統(tǒng)(WebGIS)是Web技術(shù)與GIS技術(shù)相結(jié)合的產(chǎn)物,隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,WebGIS已成為當(dāng)前GIS應(yīng)用領(lǐng)域非常重要的一環(huán)。當(dāng)前主流的WebGIS應(yīng)用以基于HTTP的B/S結(jié)構(gòu)的瘦客戶端模式為主流,用戶只要擁有一臺上網(wǎng)的計算機和瀏覽器,不需要安裝其他客戶端軟件,就可以使用WebGIS帶來的服務(wù)。
由于大部分GIS功能都集中在服務(wù)器端實現(xiàn),服務(wù)端的性能直接影響用戶的使用體驗,超負(fù)荷的用戶量甚至?xí)狗?wù)端崩潰。而WebGIS系統(tǒng)不同于一般的業(yè)務(wù)系統(tǒng)和網(wǎng)站,具有用戶操作頻繁,停頓思考時間短的特點,服務(wù)端壓力也更大。
因此對系統(tǒng)性能的測試與分析,可以了解功能設(shè)計是否合理,系統(tǒng)能夠承受的負(fù)載,也可以指導(dǎo)服務(wù)器配置的優(yōu)化,滿足大用戶量訪問的需求。
《數(shù)字城市車靈通移動定位平臺》是一個典型的WebGIS系統(tǒng),該系統(tǒng)通過個人手機SIM卡和車輛GPS設(shè)備的信號接入,可以即時定位設(shè)備的坐標(biāo)位置,查看一定時間內(nèi)的移動軌跡,實現(xiàn)個人與車輛的跟蹤定位,系統(tǒng)界面如圖1所示。用戶輸入一個URL地址訪問服務(wù)器作為GIS請求,服務(wù)器將默認(rèn)的地圖顯示結(jié)果通過網(wǎng)絡(luò)返回給客戶端,之后,用戶的每一個操作(如車輛定位、軌跡回放等)都會作為一個新的GIS請求等待服務(wù)器響應(yīng),以地圖圖片和點位參數(shù)形式返回給客戶端展現(xiàn)。系統(tǒng)實現(xiàn)框圖如圖2所示。
圖1 移動定位平臺界面
圖2 系統(tǒng)實現(xiàn)框圖
由于該系統(tǒng)面向社會單位與公眾,具有良好的應(yīng)用前景,用戶群體不斷增加,在對系統(tǒng)的性能,及能夠承受的并發(fā)用戶數(shù)不確定的情況下,項目團隊需要探尋系統(tǒng)可能存在的瓶頸,對系統(tǒng)實施性能測試。
性能測試通常包含三個步驟,①生成用戶操作腳本;②模擬批量的用戶執(zhí)行腳本;③分析性能測試結(jié)果。對于WebGIS系統(tǒng),選用成熟的性能測試工具,能夠良好的運作整個性能測試過程。
LoadRunner是美國Mercury Interactive公司開發(fā)的工業(yè)級負(fù)載測試工具。它是一種適用于各種體系架構(gòu)的自動負(fù)載測試工具,能預(yù)測系統(tǒng)行為并優(yōu)化系統(tǒng)性能。LoadRunner的虛擬用戶引擎(Virtual User Generator)可以生成虛擬用戶,以虛擬用戶的方式來模擬真實用戶的操作行為,并記錄下用戶的業(yè)務(wù)流程,然后將其轉(zhuǎn)換為測試腳本。利用虛擬用戶可以同時產(chǎn)生成千上萬用戶訪問。通過模擬用戶操作的行為,我們可以真實地還原WebGIS服務(wù)端在不同用戶場景下的性能表現(xiàn),并提供詳盡的數(shù)據(jù)以進行分析。
由于性能測試的原理是通過模擬大量用戶對系統(tǒng)服務(wù)端進行操作,形成真實的壓力,因此首先確定系統(tǒng)最常用功能和對服務(wù)端壓力最大的功能。在本系統(tǒng)中,可以判斷為系統(tǒng)登錄、地圖查看、設(shè)備定位、設(shè)備軌跡回放四個功能。
使用LoadRunner的Virtual User Generator工具可以直接錄制對系統(tǒng)的操作,形成操作腳本。對錄制的腳本需要進行再編輯,設(shè)置參數(shù)化,關(guān)聯(lián),集合點,合理的思考時間等等,以保證模擬出真實的用戶操作請求效果,通過LoadRunner強大的編輯功能可以簡單實現(xiàn)。以下是腳本中設(shè)備軌跡回放的關(guān)鍵語句示例,對其中的車輛編號和時間進行參數(shù)化,實現(xiàn)了每次模擬都回放的不同車輛在不同時間段的軌跡:
完成腳本制作后,使用LoadRunner的Controller設(shè)置運行場景進行壓力模擬。該系統(tǒng)性能測試目標(biāo)是為了探尋性能瓶頸,因此選用逐級增壓的壓力測試模式,每間隔一段時間增加并發(fā)的用戶數(shù)量,監(jiān)測系統(tǒng)和服務(wù)器性能的變化,探尋可能的性能瓶頸。設(shè)置的運行場景如表1所示。
運行場景設(shè)置 表1
場景運行完成后,使用LoadRunner的Analysis對運行結(jié)果進行分析。
由功能響應(yīng)時間(圖3)可以看出,隨著并發(fā)用戶數(shù)的增加,功能響應(yīng)時間也逐漸增加,其中在運行到4 min左右,接近100個用戶并發(fā)時,響應(yīng)時間顯著增加,可以判斷此時出現(xiàn)性能拐點。查看服務(wù)器資源使用圖(圖4)可以看出,內(nèi)存使用基本無變化,而CPU使用率持續(xù)上升,在 4 min左右已經(jīng)出現(xiàn) Processor Queue Length值持續(xù)高于2,即CPU存在隊列情況,網(wǎng)絡(luò)傳輸量Bytes Total/sec已經(jīng)達到約9.5 MB/sec,而測試網(wǎng)絡(luò)的總帶寬為10 MB自適應(yīng)。
因此,可以初步判斷,由于系統(tǒng)運行時對網(wǎng)絡(luò)傳輸要求很高,CPU花費大量時間用于處理網(wǎng)絡(luò)傳輸請求,CPU和網(wǎng)絡(luò)帶寬均存在瓶頸。
圖3 并發(fā)用戶數(shù)&功能響應(yīng)時間
圖4 服務(wù)器資源使用
通過上述測試結(jié)果,開發(fā)團隊對系統(tǒng)的網(wǎng)絡(luò)傳輸內(nèi)容進行分析,最終發(fā)現(xiàn)該系統(tǒng)的軌跡回放功能,在響應(yīng)客戶端請求時,會一次性將指定時間段內(nèi)的設(shè)備的所有坐標(biāo)信息傳回客戶端進行回放展現(xiàn),而時間跨度越大,數(shù)據(jù)包甚至超過1 MB,導(dǎo)致系統(tǒng)處理能力顯著下降。隨后,對該功能進行了優(yōu)化處理,實行分段傳坐標(biāo)數(shù)據(jù),解決了此問題。
這只是該項目多次性能測試中的一例,針對項目的不同情況和需求,設(shè)計了大量的性能測試方案進行診斷。
本文對一個典型的WebGIS系統(tǒng),利用性能測試軟件LoadRunner對其性能進行了測試,通過對測試結(jié)果分析診斷可能存在的性能問題,避免系統(tǒng)上線后的性能風(fēng)險。隨著技術(shù)的進一步發(fā)展和WebGIS更廣泛的應(yīng)用,在將來的工作中還需要對WebGIS系統(tǒng)的性能優(yōu)化進行更深入的研究。
[1]陳述彭,魯學(xué)軍,周成虎.地理信息系統(tǒng)導(dǎo)論[M].北京:科學(xué)出版社,1999
[2]畢建濤.面向網(wǎng)絡(luò)共享的地理信息服務(wù)研究[D].北京:中國科學(xué)院地理科學(xué)與資源研究所,2005
[3]鐘大偉.空間信息服務(wù)模式及技術(shù)研究[D].北京:中國科學(xué)院遙感應(yīng)用研究
[4]段念.軟件性能測試過程詳解與案例剖析[M].北京:清華大學(xué)出版社,2006
[5]陳紹英,夏海濤,金成姬.Web性能測試實戰(zhàn)[M].北京:電子工業(yè)出版社,2006