專利名稱:一種確定Web服務器性能的方法
技術領域:
本發明屬于Web服務器的測試領域,特別是涉及一種確定Web服務器性能的方法。
背景技術:
Web系統由Web服務器、若干客戶機及網絡系統組成,其服務能力的好壞受Web服 務器的性能、用戶的行為特征及網絡情況三者共同影響。近年來,隨著hternet的流行, Web應用深入到我們工作、生活的各個角落,許多傳統的行業及信息系統被遷移到互聯網 上,包括電子商務、信息搜索及信息共享領域。在大量、動態、多變的用戶請求情況下,Web服 務器需要及時處理用戶的請求并返回相應的信息。為了確保系統運行的可靠性、安全性、穩 定性及高效性,我們需要對Web服務器性能進行一個有效、準確的評測。目前,評估Web服務器性能的方法一般可以分為兩種,其中一種是仿真模擬的方 法,例如排隊論,Petri網;而另一種是測試監控的方法,其評估依據主要以日志文件、資源 利用率、響應時間為主。仿真模擬的方法的主要思想是通過簡化Web系統,提取影響Web服務器性能的主 要因子,包括緩存大小、請求文件大小、網絡帶寬、用戶請求特征、硬件資源,并歸納為一個 公式,并使用該公式來求取Web服務器性能指標,包括吞吐量、響應時間、資源利用率、錯誤 率。這種方法可以直觀的表示影響因子與Web服務器性能之間的關系,有助于更深入的理 解Web服務器性能,而且可以指導Web服務器的優化及性能瓶頸的分析。但是由于此類方 法將簡化系統且通過模擬虛擬用戶與虛擬服務器的交互得到的數據來判斷此類方法是否 有效,難以對真實服務器進行性能評估。測試監控的方法主要思想是通過對真實環境的Web服務器進行監測,記錄用戶 請求量、用戶操作行為、資源利用率、響應時間、請求錯誤率、吞吐率,并通過對的所記錄數 據的分析來評估Web服務器的性能。這種方法根據真實的數據評估Web服務器性能,對于 用于實際運行的服務器而言無疑此類方法更可靠。主流的三種方法有以下特點根據Web 服務器日志文件來分析Web服務器性能,但根據日志文件分析Web服務器性能需要長時間 運行Web服務,主要用于服務器的試運行,耗費的時間較長;根據資源利用情況分析在資源 為Web服務器性能瓶頸的情況下,可以正確的引導評估,然而造成這種性能下降的因素有 很多,包括CPU、內存、網絡、操作系統、第三方軟件,而不僅僅是資源;根據響應時間與用戶 請求量的關系評估Web服務器的服務能力適用于任何配置服務器的性能評估,因為響應時 間是服務器性能的綜合體現,但響應時間閥值的選定正確與否直接決定了根據響應時間評 估Web服務器性能這種方法的準確性及有效性。
發明內容
為了解決以上技術問題,本發明提供了一種確定Web服務器性能的方法。該方法 通過監測Web服務器和宿主機內存、CPU的使用率及用戶請求的響應時間和錯誤率,分析它 們與用戶請求量之間的關系來確定Web服務器的峰值負載,從而快速準確的評估Web服務器的性能,為合理有效的使用硬件資源且滿足用戶需求提供準確、可靠的依據。本發明使用兩臺物理機,一臺作為服務器端,一臺作為客戶端。在服務器端用虛擬 技術部署Web服務器;在客戶端安裝測試軟件,來模擬用戶訪問Web服務器的行為,從而通 過客戶端對服務器發起請求。本發明方法通過如下步驟實現
1)選擇一個初始用戶請求量,然后執行用戶請求生成與性能同步監測過程;
2)根據資源利用率與用戶請求量近似線性的關系,提取所監測資源中變化最大的資源 作為參考資源RMfCT 。e,根據Rfe的最大值Umax估計下一用戶請求量Pnrat,然后執行用戶 請求生成與性能同步監測過程。若首次根據資源利用率與用戶請求量近似線性的關系計算 下一用戶請求量Pnext時,Ufflax取理論最大值,轉至步驟3);否則跳轉至步驟4);
所述的資源利用率包括宿主機的CPU、內存的利用情況;虛擬機的CPU、內存的利用情
況;
3)若執行結果顯示參考資源Rrefemre并非Web服務器性能瓶頸,則記此資源利用率為 參考資源RrefCTen。e實際最大的利用率,記做Uavaliable,取Uavaliable的60% 90%作為Umax,跳轉 至步驟2);若執行結果顯示參考資源I^ferenre為Web服務器性能瓶頸,則執行步驟4);
4)根據Web服務器到達峰值負載前,客戶端用戶請求量與響應時間近似指數的關系, 提取之前實驗中監測得到的用戶請求量及對應的響應時間,計算下一用戶請求量Pnrart,執 行用戶請求生成與性能同步監測過程;
5)若執行結果顯示請求的平均響應時間與響應時間閥值的偏差在設定范圍內且用戶 請求錯誤率小于錯誤率閥值,則視該用戶請求量為服務器能處理的最大負載,也即為Web 服務器的峰值負載,否則執行步驟4);
所述的用戶請求生成與性能同步監測過程是調用負載生成器工具,對Web服務器產 生用戶請求,同時監測服務器端宿主機的CPU、內存的利用情況;監測虛擬機的CPU、內存的 利用情況;監測請求的響應時間和錯誤率;
由于本發明根據響應時間確定Web服務器的性能,為了確保結果準確,我們設定每次 選定用戶請求量,執行用戶請求生成與性能同步監測過程后,需要確保實驗結果中的響應 時間具有95%置信度及90%的準確度。然而準確度與測試開銷存在矛盾關系,測試時間越 長,次數越多,準確度越高,本發明通過動態調節測試次數和選擇合適的測試時間來均衡兩 者關系,從而達到快速準確的確定Web服務器性能的目的。本發明相較與傳統方法的優點如下
1)選擇Uavaliable的60%-90%作為參照點計算下一用戶請求量Pnext,不論資源是否為Web 服務器性能瓶頸,計算得到的請求量都小于服務器峰值負載量;
2)增加錯誤率作為調控參數,可以有效的減少響應時間閥值取值不準確導致的誤差。在Web服務器瓶頸臨界點,錯誤率較之于響應時間而言更具有顯著的特征,當Web 服務器具有足夠的能力處理用戶請求時,其錯誤率幾乎為0,當錯誤率上升時說明服務器已 接近瓶頸點,本發明中控制錯誤率小于1%。3)根據Web服務器到達峰值負載前,客戶端用戶請求量與響應時間近似指數的關 系更加快速的確定Web服務器的性能,且具有更廣的適用性。4)動態選擇測試次數。對于不同的負載水平,達到同一準確度所需要花費的測試 開銷不同。負載越大,開銷越大。采用動態的測試次數可以有效的減少測試開銷且保證結果的準確度。5)通過腳本控制測試,可以減少了測試人員的工作強度,同時提高了測試的效率。
圖1為本發明的實驗環境圖2為負責調度、監控資源的控制器CAE執行的工作圖; 圖3為本發明的流程圖。
具體實施例方式下面結合附圖對本發明做進一步的說明
如圖ι所示,我們將Web服務器建立在虛擬化環境中,利用虛擬化的硬件資源可動態調 節特性,測試在不同的服務器配置情況下本發明的適應性。圖2給出了控制器CAE執行的工作圖,本發明主要通過控制器CAE調用腳本從而 調節資源、模擬用戶請求生成、監控系統性能及調整測試用例
(1)通過 xm mem-set DOMAIN MEMfPxm sched-credit - d - w _c 調節宿主機的內存 和CPU資源量,以及虛擬機的內存CPU資源量,從而實現Web服務器不同的內存和CPU資源 配置。其中DOMAIN為需要調節內存的域,MEM為調節內存大小,-d為需要調節cpu的域,-W 為相對權重值,"C為絕對權重值。需要注意的是宿主機的性能會影響上層虛擬機的性能, 需要首先保證宿主機可以正常運行。在本發明中,我們確保宿主機至少擁有256M內存以及 20%的CPU資源。(2)通過調用負載生成器httperf模擬用戶行為,對Web服務器生成負載,每條 指令中至少要包括目標服務器IP地址(--server),負載類型([ period [d|u|e] Tl[,T2]])及負載大小(一rate),此外還可以設定思考時間、并發長度、最大連接數、并發 請求個數、發送緩存大小、接受緩存大小。本發明使用httperf工具對Web服務器生成到達 率符合符合泊松分布的負載,并且從返回的測試結果中提取響應時間、錯誤率的值。(3)使用xentop工具監控宿主機及虛擬機的CPU資源的使用情況,需要注意的是 xentop命令只可以在宿主機中執行,且監測得到的值為所監測域分配到的CPU資源的使用 情況。如分配30%CPU資源給虛擬機,監測得到的使用率為70%,則使用率為分配的30%資源 的70%。本發明中對每個用戶請求量選用的測試時間采用經驗值,在本發明實驗環境中,持 續生成同一用戶請求120s,服務器性能趨于穩定。同步監測120s,采用每隔IOs采樣一次, 共采樣11次,由于首次采樣得到的值為0,故取平均時只需要除10次。(4)使用top工具監控內存的使用情況,計算公式為used/total。由于內存的消 耗是從內存池中申請,其消耗隨著時間的增長而逐漸積累。為了準確的計算內存的使用情 況,我們選擇最后IOs中每隔Is取樣一次的方法進行監測計算。此外,本發明采用的Web 服務器為Apache服務器,存在內存泄漏問題,為了確保內存使用率計算準確,在本發明中, 我們采用每次更改用戶請求量時重啟Apache服務器。如圖3所示,本發明可以分為兩大部分確定用戶請求量大小和執行用戶請求生 成與性能同步監測過程。為了確保實驗結果在置信度為95%情況下具有90%準確度,我們 每次確定用戶請求量大小后,至少執行用戶請求生成與性能同步監測過程三次,并提取實其中Pi, Ti為用戶請求量及對應的響應時間大小。并根據影響因子計算下一用戶請求
量Pnext大小。 其中Tsat為響應時間閥值。執行用戶請求生成與性能同步監測過程,直到實驗結 果中響應時間在置信度為95%情況下具有90%準確度;
5)若平均響應時間及平均錯誤率均小于設定的閥值,且預測的下一用戶請求量Pnrart與 滿足性能要求的最大用戶請求量Phigh之間的誤差值在容許范圍內,則確定滿足性能要求的 最大用戶請求量I3high為該服務器的峰值負載量Pprak ;否則,跳轉至步驟4)。
驗結果中的響應時間計算其準確度,若準確度小于90%,則每次增加1次執行用戶請求生成 與性能同步監測過程,直到達到90%準確度。在以下步驟中不再重復說明。具體步驟如下
1)首先給定一個較小的值作為初始用戶請求量,執行用戶請求生成與性能同步監測過 程,直到實驗結果中響應時間在置信度為95%情況下具有90%準確度;
2)根據(3)(4)監測的值提取變化最大的資源視為最有可能造成Web服務器性能瓶頸 的資源,記為參考資源,并根據資源利用率與用戶請求量之間近似線性的關系,計 算下一用戶請求量Pnrart大小,即
權利要求
1. 一種確定Web服務器性能的方法,其特征在于該方法包括如下步驟 步驟1)選擇一個初始用戶請求量,然后執行用戶請求生成與性能同步監測過程; 步驟2)根據資源利用率與用戶請求量近似線性的關系,提取所監測資源中變化最大的 資源作為參考資源RMfCT 。e,根據Rfe的最大值Umax估計下一用戶請求量Pnrat,然后執行 用戶請求生成與性能同步監測過程;若首次根據資源利用率與用戶請求量近似線性的關系 計算下一用戶請求量Pnrart時,Ufflax取理論最大值,轉至步驟3);否則跳轉至步驟4);所述的資源利用率包括宿主機的CPU、內存的利用情況;虛擬機的CPU、內存的利用情況;步驟3)若執行結果顯示參考資源艮—e并非Web服務器性能瓶頸,則記此資源利用 率為參考資源RMfCTen。e實際最大的利用率,記做Uavaliable,取Uavaliable的60% 90%作為Umax, 跳轉至步驟2);若執行結果顯示參考資源RMfCTm。e為Web服務器性能瓶頸,則執行步驟4); 步驟4)根據Web服務器到達峰值負載前,客戶端用戶請求量與響應時間近似指數的關 系,提取之前實驗中監測得到的用戶請求量及對應的響應時間,計算下一用戶請求量Pnrait, 執行用戶請求生成與性能同步監測過程;步驟5)若執行結果顯示請求的平均響應時間與響應時間閥值的偏差在設定范圍內且 用戶請求錯誤率小于錯誤率閥值,則視該用戶請求量為服務器能處理的最大負載,也即為 Web服務器的峰值負載,否則執行步驟4);所述的用戶請求生成與性能同步監測過程是調用負載生成器工具,對Web服務器產 生用戶請求,同時監測服務器端宿主機的CPU、內存的利用情況;監測虛擬機的CPU、內存的 利用情況;監測請求的響應時間和錯誤率。
全文摘要
本發明涉及一種確定Web服務器性能的方法。現有的方法難以對真實服務器進行性能評估。本發明通過監測Web服務器和宿主機內存、CPU的使用率及用戶請求的響應時間和錯誤率,分析它們與用戶請求量之間的關系來確定Web服務器的峰值負載,從而快速準確的評估Web服務器的性能,為合理有效的使用硬件資源且滿足用戶需求提供準確、可靠的依據。本發明選擇合適的參考資源實際最大的利用率作為參照點計算下一用戶請求量,不論資源是否為Web服務器性能瓶頸,計算得到的請求量都小于服務器峰值負載量。
文檔編號H04L29/06GK102123061SQ20111007487
公開日2011年7月13日 申請日期2011年3月28日 優先權日2011年3月28日
發明者萬健, 張紀林, 徐向華, 徐婷婷, 殷煜昱, 蔣從鋒 申請人:杭州電子科技大學