摘要:為了克服計算系統運行環境的多變性和數據采集周期的長期性,采用了系統仿真實驗的方法,通過配置Jmeter分布式測試結構模擬了實際計算系統的性能衰退過程。并以Linux系統下的web服務為例,模擬了其性能衰退過程,達到了預期的效果。
關鍵詞:計算系統;仿真;分布式;性能衰退
中圖分類號:TP338 文獻標識碼:A 文章編號:1674-7712(2012)16-0036-02
一、引言
在過去20年里,計算系統的性能迅速提高,計算機的處理能力和存儲能力上升了好幾萬倍,通訊速度提高了上千萬倍。計算機已廣泛應用于各行各業、各個領域,與此同時,計算系統也變得日益復雜,越來越多的操作和監控任務已經超過了人類能夠負擔的范圍;大型計算系統的代碼多達數千萬行,導致其維護越來越困難,系統的復雜性已經成為性能保持穩定和繼續提升的瓶頸[1]。而且計算系統在長時間的持續使用過程中,性能經常出現持續衰退甚至失效。
另一方面,人們對各類計算系統的可靠性要求卻越來越高,如果計算系統在運行過程中性能出現衰退,不能在規定的時間內穩定可靠地工作,將會造成巨大的損失;如果計算系統本身是分布式的網絡系統,則部分計算機的性能失效或衰退則會導致更大范圍的故障,以及更大范圍的用戶的不滿意,從而增加計算系統的總擁有成本;因此研究和發展計算系統的軟件衰退診斷技術勢在必行。
二、計算系統性能衰退仿真環境
(一)ApacheJmeter環境概述
對于一個可以穩定運行并提供長時間服務的計算系統,要研究其衰退過程和衰退規律,必須長時間的采集大量的數據,有時需要幾個月甚至幾年的時間。另一方面,計算系統在不同的配置環境和運行環境下,衰退規律也會經常發生改變。因此,對于一個實際的計算系統,要采集到一組恰好反應系統衰退規律的數據有一定的困難。本文采用系統仿真的方法,來模擬實際計算系統的性能衰退過程,這樣可排除實際系統運行過程中的意外干擾,有助于分析仿真實驗數據所反應的衰退規律,并基于此來制定合適的軟件抗衰策略。
(二)基于Jmeter分布式測試結構的仿真環境的配置
作為一個純Java的GUI應用,Jmeter對于CPU和內存的消耗是很驚人的,所以當需要模擬數以千計的并發用戶時,使用單臺機器模擬所有的并發用戶就有些力不從心,容易引起服務器端Java內存溢出的錯誤,甚至導致承載Jmeter的客戶端系統的崩潰。要解決這個問題,可以使用分布式測試,由多臺機器運行所謂的Agent來分擔Jmeter自身的壓力,并借此來獲取更大的并發用戶數。
服務器端配置如下:操作系統為Linuxfedora5.0;通過配置Apache+Tomcat來提供Web服務,用Apache作為Web服務器,為網站的靜態頁面請求提供服務,使用Tomcat服務器作為一個Servelet/JSP插件,顯示網站的動態頁面。
三、系統性能衰退過程測試
(一)編寫測試計劃
(二)運行測試計劃
四、結語
由于計算系統運行環境的多變性和數據采集周期的長期性等特征,本文采用了系統仿真實驗的方法,通過配置Jmeter分布式測試結構,以Linux系統下的web服務為例,模擬了其性能衰退過程,達到了預期的效果。
參考文獻:
[1]D.L.Parnas.SoftwareAging[C].In:Proceedingsof16thIntl.ConferenceonSoftwareEngineering,Sorrento,Italy,1994:279-287.
[2]http://jakarta.apache.org/jmeter/.
[3]http://jakarta.apache.org/jmeter/usermanual/index.html.
[4]馬昕偉.linux服務器配置手冊[M].北京:科學出版社,2005:31-156.
[5]VediKS,VaidyanathanK,Goseva·PopstojanovaK.ModelingandAnalysisofSoftwareAgingandRejuvenation[R].In:IEEEAnnualSimulationSymposium,April,2000.
[作者簡介]韓波(1983.9-),男,河南省羅山縣人,碩士,工作單位:淮陰師范學院外國語學院,主要研究方向為計算機應用。