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