專利名稱::應用軟件在生產(chǎn)環(huán)境下的性能預測方法
技術領域:
:本發(fā)明涉及計算機應用軟件性能測試和性能評估,更具體地說,涉及基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法。
背景技術:
:目前軟件性能問題越來越受到重視,從事于獨立技術市場調(diào)查的NewportGroup公司2002年報告顯示53%的CIO(首席信息官)會經(jīng)常關注應用軟件性能,這個數(shù)字比1999年劇增了近5倍;另外有75%的CIO對應用性能能否達到期望的水平表示擔心,這個數(shù)字也比1999年上升了30%??紤]到成本等方面諸多原因,許多生產(chǎn)應用軟件都缺乏與生產(chǎn)環(huán)境部署完全一致的模擬環(huán)境,往往模擬環(huán)境的設備配置檔次要低,而且^t擬環(huán)境沒有生產(chǎn)環(huán)境的業(yè)務負載壓力。因此,如何完成應用軟件待發(fā)布的新版本的性能驗證,成為一大難題。在模擬環(huán)境與生產(chǎn)環(huán)境配置差異較大,且沒有生產(chǎn)環(huán)境的負栽壓力的情況下,目前除本方法外尚缺乏有效的手段進行預測應用軟件版本發(fā)布后在生產(chǎn)環(huán)境的性能表現(xiàn)。未充分測試的軟件將對生產(chǎn)造成重大的影響,同時擴散到生產(chǎn)環(huán)節(jié)的問題如要改進,成本巨大,甚至可能是不可接受的。目前在國內(nèi)軟件性能測試領域,雖有少部分軟件開發(fā)商會進行產(chǎn)品交付前的集成系統(tǒng)測試,但性能測試的場景設計不甚合理,未通過科學的場景定義方法進行場景設計,導致綜合性能測試未能夠反映應用軟件實際的負栽壓力模型。在性能預測手段方面更是捉襟見肘,只是通過簡單的線性計算進行估計,誤差很大?,F(xiàn)有的容量規(guī)劃案例均是基于在線生產(chǎn)應用軟件的,需要獲取生產(chǎn)環(huán)境的性能數(shù)據(jù),只能滿足在線應用軟件擴容的設備選型等情況,局限性較大,未能滿足新版本應用軟件上線前驗證、規(guī)避性能風險等情況。由前述現(xiàn)有技術可知,在應用系統(tǒng)性能管理方面迫切需要一種更為精確地預測應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)的方法。
發(fā)明內(nèi)容本發(fā)明提出了一種基于低端模擬環(huán)境性能測試和容量規(guī)劃的生產(chǎn)環(huán)境性能預測方法。根據(jù)本方面的該方法能夠在模擬環(huán)境與生產(chǎn)環(huán)境配置差異較大,且沒有生產(chǎn)環(huán)境的負載壓力的情況下,通過模擬測試結(jié)合容量規(guī)劃技術的方式,預測應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)。發(fā)明的目的是進行精準的性能預測,降低應用軟件上線后在生產(chǎn)環(huán)境出現(xiàn)性能問題的概率,避免無效的硬件投資。本方法是在低端模擬環(huán)境對被測應用軟件進行模擬實際業(yè)務負載的綜合壓力測試后,運用容量規(guī)劃的手段,建立排隊網(wǎng)絡模型,合理預測應用軟件在生產(chǎn)環(huán)境的性能表現(xiàn)。根據(jù)本發(fā)明,提供了一種基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法,該方法包括根據(jù)業(yè)務負栽信息,建立被測應用軟件的業(yè)務負載模型;基于Little定律實現(xiàn)由被測應用軟件的業(yè)務負栽模型向被測應用軟件的業(yè)務負栽壓力模型的轉(zhuǎn)換;根據(jù)被測應用軟件的業(yè)務負栽壓力模型以及推導出來的場景,制定在低端模擬環(huán)境下被測應用軟件的性能測試方案;在低端模擬環(huán)境下模擬真實業(yè)務負載的壓力實施被測應用軟件的性能測試,并采集被測應用軟件的性能數(shù)據(jù);以及將采集的被測應用軟件的性能數(shù)據(jù)輸入容量規(guī)劃工具,基于容量規(guī)劃預測所述應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)。根據(jù)本發(fā)明的方法解決了目前模擬環(huán)境性能測試方法未能有效模擬生產(chǎn)業(yè)務負載模型的問題。通過模擬環(huán)境性能測試與容量規(guī)劃方法相結(jié)合的手段,提高了通過低配置的模擬環(huán)境預測生產(chǎn)環(huán)境性能表現(xiàn)的能力。此外,根據(jù)本發(fā)明的方法消除了目前的容量規(guī)劃過程因基于生產(chǎn)環(huán)境實際性能負載數(shù)據(jù)而造成的無法在上線前進行版本驗證和規(guī)避性能風險的局限性。本方法能夠提高投資有效性,避免對模擬環(huán)境的巨額硬件投資,使得低配置的模擬環(huán)境也能達到滿意的驗證效果。以下附圖構(gòu)成說明書的一部分并提供對本發(fā)明的進一步說明,說明本發(fā)明的實施例。圖1示出根據(jù)本發(fā)明的基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法的流程圖;圖2示出容量規(guī)劃基本原理;圖3示出容量規(guī)劃的一般過程;圖4示出計算機系統(tǒng)排隊網(wǎng)絡模型。具體實施方式在具體描述本發(fā)明的實施例之前,首先明確以下術語業(yè)務負載模型:指從業(yè)務角度對支撐應用軟件的負栽進行建模的結(jié)果,包括影響應用軟件性能的關鍵業(yè)務參數(shù)及其組合關系,可用于定義性能需求或業(yè)務預測分析,建模的主要輸入有業(yè)務量統(tǒng)計等。容量規(guī)劃:指為了確保應用軟件能在將來高效地工作,將系統(tǒng)負栽匹配為支持此負載所需的最合適的服務器硬件的過程,用于指導容量設計和投資,以保證IT花費的合理性。做容量規(guī)劃需要相應的技術手段來預測應用軟件在增加負栽或用戶數(shù)量時、在假定的硬件配置下能夠提供的服務水平,這往往借助容量規(guī)劃工具建立容量分析模型來實現(xiàn)。圖1示出根據(jù)本發(fā)明的基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法的流程圖。如圖1所示,在步驟Sl中,建立^L測應用軟件的業(yè)務負載壓力模型,該步驟包括利用Little定律及CLOSED(封閉)型QN(排隊網(wǎng)絡)模型理論,實現(xiàn)真實業(yè)務負載模型向針對在低端模擬環(huán)境下的性能測試的業(yè)務負載壓力模型的轉(zhuǎn)換(下文中描述)。在建立了被測應用軟件的針對在低端模擬環(huán)境下的性能測試的業(yè)務負載壓力模型后,過程進行到步驟S2。在步驟S2中,制定在低端模擬環(huán)境下應用軟件的性能測試方案。在低端模擬環(huán)境下應用軟件的性能測試方案制定完成之后,過程進行到步驟S3。在步驟S3中,實施低端模擬環(huán)境下的應用軟件的性能測試。在步驟S4中,采集性能數(shù)據(jù)。在釆集性能數(shù)據(jù)完成之后,過程進行到步驟S5。在步驟S5中,執(zhí)行基于容量規(guī)劃的在生產(chǎn)環(huán)境的負栽壓力下的應用軟件性能預測。下面,針對附圖1中的各步驟進行詳細的描述。建立被測應用軟件的業(yè)務負栽壓力模型在附圖1描述的步驟Sl中,建立被測應用軟件的業(yè)務負栽壓力模型。為了得到準確的容量規(guī)劃結(jié)果,必須得到準確的被測應用軟件的業(yè)務負載模型??梢酝ㄟ^如下獲取的業(yè)務負載信息,建立業(yè)務負載模型獲取的舊版應用軟件的現(xiàn)狀信息,包括各種業(yè)務統(tǒng)計,歷史業(yè)務量和工作量統(tǒng)計(包括前、后臺)、歷史業(yè)務操作方式和操作統(tǒng)計,由此整理得到各主要業(yè)務的并發(fā)數(shù),各業(yè)務的吞吐量及各業(yè)務吞吐量的比例關系,在此基礎上可以形成真實業(yè)務負載模型;同時根據(jù)各種業(yè)務交易量隨時間的變化關系,可以針對不同的使用場景生成相應的業(yè)務負載模型(例如,針對平時和高峰時期,分別計算出不同的負載模型)。根據(jù)上述信息得到業(yè)務負載模型對于本領域技術人員是公知的,在此不再贅述;或者,可以根據(jù)獲取的用戶組織對新的應用軟件的使用計劃作為業(yè)務負栽信息,建立業(yè)務負載模型。根據(jù)上述信息得到的業(yè)務負栽模型主要由多個場景(例如平時場景、高峰場景等)構(gòu)成,每個場景包括各個事務的并發(fā)數(shù)及其相對比例關系、吞吐速率等關鍵信息。由于建立的真實業(yè)務負載模型是面向真實生產(chǎn)環(huán)境的,不適合用于性能測試,所以可以根據(jù)CLOSED(封閉)型QN(排隊網(wǎng)絡)模型理論對業(yè)務負載模型的事務并發(fā)數(shù)信息進行轉(zhuǎn)換,轉(zhuǎn)換成實際性能測試的"并發(fā)數(shù)"以及"迭代間間隔"等信息,因為在低端模擬環(huán)境下的實際性能測試的"并發(fā)數(shù)"以及"迭代間間隔,,等與實際生產(chǎn)環(huán)境的"在線用戶數(shù),,和"操作間隔時間"是不同的,即實現(xiàn)真實業(yè)務負栽模型向針對在低端模擬環(huán)境下的性能測試的業(yè)務負栽壓力模型的轉(zhuǎn)換。在此,提出一種基于Little定律的轉(zhuǎn)換方法,以實現(xiàn)上述的轉(zhuǎn)換假定X是吞吐速率,Z是操作間隔時間,R是服務器響應時間,Z,是迭代間間隔時間,OU是真實業(yè)務場景中的在線用戶數(shù),N是低端模擬環(huán)境下的壓力測試模擬的并發(fā)數(shù),則有,真實業(yè)務場景滿足X=OU/(Z+R),CLOSED型壓力測試滿足X,=N/(Z,+R),其中X,為低端環(huán)境下壓力測試情況下的吞吐速率,Z,為低端環(huán)境下壓力測試情況下的操作間隔時間,Z為真實環(huán)境下的操作間隔,壓力測試必須模擬真實業(yè)務場景,則X-X,,進而可推導出N=OU*(Z,+R)/(Z+R),其中011*是模擬業(yè)務場景中的在線用戶數(shù),若Z,=0的話,則需要N-Ol^R/(Z+R)個壓力測試并發(fā)數(shù)。由于此負載模型考慮了不同的應用場景和業(yè)務、用戶之間的比例關系,因此更加符合實際生產(chǎn)情況。例如某應用軟件新版本即將上線,需要預測其在生產(chǎn)機型II上的性能表現(xiàn),目前將其部署在較為低端的試驗機型I上。根據(jù)統(tǒng)計結(jié)果,該應用軟件平時場景和高峰場景業(yè)務情況如下表<table>tableseeoriginaldocumentpage9</column></row><table>同理乂A高峰-(l謂/3★60)*50%=5次/秒XB高峰=(1800/3*60)*50%=5次/秒由于一般情況下測試不會模擬1500個用戶操作,因此需要對負載進行換算,如果使用15個并發(fā)用戶模擬平常壓力,18個用戶模擬高峰壓力,完成同樣頻次的操作,貝'J:NA平時-15*40e/o=6+(Z,+R)A平時=6/XA平時=3禾少1\8平時=15*60%=9個(Z,十R)b平時-9/xb平時-3禾少Na高峰-18央50Yo-9個(Z,+R)a離峰-9/xa高峰-1.8詳少~8高峰=18*50/0=9個(Z,+R)b高峰-9/Xb高峰-1.8浮少這樣,只要能夠保證IK1.8秒,則可以使用15或18個用戶模擬1500、1800個用戶的負栽壓力。制定在低端模擬環(huán)境下應用軟件的性能測試方案在建立針對在低端模擬環(huán)境下的被測應用軟件的業(yè)務負栽壓力模型后,如圖2所述的步驟S2制定在低端模擬環(huán)境下應用軟件的性能測試方案。根據(jù)被測應用軟件的業(yè)務情況推導出來的業(yè)務負載壓力模型以及場景設計制定性能測試方案。性能測試方案包括環(huán)境搭建方案、數(shù)據(jù)準備方案、壓力模擬方案、負載監(jiān)控方案。環(huán)境搭建方案被測軟件在測試環(huán)境的部署應該盡量與生產(chǎn)環(huán)境一致,包括軟件的各種參數(shù)(如被測軟件的隊列長度、數(shù)據(jù)庫參數(shù)等)、部署方案(使用幾臺服務器,分別部署被測軟件那些模塊等)應該盡量與生產(chǎn)環(huán)境一致。數(shù)據(jù)準備方案測試環(huán)境中的背景數(shù)據(jù)和測試數(shù)據(jù)應該盡量反應生產(chǎn)系統(tǒng)狀況。對被測應用軟件性能影響較大的數(shù)據(jù),在數(shù)據(jù)量和數(shù)據(jù)分布上不應該與生產(chǎn)環(huán)境有較大的差異。壓力模擬方案性能測試過程中,對被測應用軟件施加的負載壓力必須根據(jù)業(yè)務負載模型建立,各個主要業(yè)務的比例必須與負載模型中的比例一致。鑒于實驗室使用了較低端的服務器,負載壓力不可能與生產(chǎn)環(huán)境一致,可以按比例減少壓力,保證性能測試在低端環(huán)境下可以順利完成。例如根據(jù)上面例子,算出了性能測試的負載壓力的并發(fā)數(shù)(N)及每個業(yè)務間的間隔(Z,+R),但是由于測試使用的機型I比生產(chǎn)環(huán)境的機型II低端,針對高峰測試無法保證R〈1.8秒,則(Z,十R)也無法保證小于1.8秒,因此測試無法順利進行,此時可以將(Z,+R)放大一倍到3.6秒,此時壓力減少了一倍,只需保證R<3.6秒即可以順利完成測試。負栽監(jiān)控方案在性能測試過程中,必須對被測應用軟件所消耗的系統(tǒng)資源進行監(jiān)控(包括CPU、磁盤IO等),監(jiān)控結(jié)果將用于后續(xù)的容量規(guī)劃。例如根據(jù)上面例子,可選用本領域技術人員公知的TeamQuestView做為監(jiān)控工具,監(jiān)控被測軟件在測試過程中耗用的CPU和磁盤IO資源等。實施低端模擬環(huán)境下的應用軟件的性能測試在模擬環(huán)境性能測試方案制定完成之后,如附圖1中的步驟S3所述的實施低端模擬環(huán)境下的應用軟件的性能測試。其中按照測試方案,可開發(fā)相應的性能測試腳本,進行性能測試。根據(jù)測試方案開發(fā)相應的性能測試腳本對于本領域技術人員是公知的,對此不進行詳細描述。采集低端模擬環(huán)境下測試的性能數(shù)據(jù)如附圖1中的步驟S4所述的,在低端模擬環(huán)境下的性能測試過程中,性能監(jiān)控工具(如本領域技術人員公知的TeamQuestView)釆集性能數(shù)據(jù),以在下一步將該采集的性能數(shù)據(jù)導入容量建模工具。其中監(jiān)控包括系統(tǒng)負載(應用軟件的各個模塊)監(jiān)控和基礎指標(CPU、磁盤IO等)監(jiān)控以及它們之間的組合關聯(lián)監(jiān)控,提供的性能數(shù)據(jù)包括諸如各個基礎部件(CPU、磁盤IO等)的總利用率、各個系統(tǒng)負載對各種基礎部件的占用率、各個系統(tǒng)負栽的響應時間及其構(gòu)成(按基礎部件分解)、各個基礎部件服務時間與等待時間的比例等詳盡的信息?;谌萘恳?guī)劃的應用軟件性能預測在上述的性能數(shù)據(jù)的采集完成之后,如附圖1的步驟S5所述的執(zhí)行基于容量規(guī)劃的應用軟件性能預測。利用上述步驟S4中獲取的模擬環(huán)境性能測試的性能數(shù)據(jù),在容量規(guī)劃工具(如本領域技術人員公知的TeamQuestModel)中建立基于排隊網(wǎng)絡的性能模型,即以在模擬環(huán)境模擬真實業(yè)務負載的壓力測試中獲取的性能數(shù)據(jù),作為容量規(guī)劃過程建立性能模型的輸入,由此可以實現(xiàn)在上線前進行版本驗證和規(guī)避性能風險的目的。其中圖2示出了容量規(guī)劃過程的基本原理,圖3示出了容量規(guī)劃一般過程,圖4描迷了計算機系統(tǒng)的排隊網(wǎng)絡模型。上述的容量規(guī)劃過程的基本原理,容量規(guī)劃一般過程,以及計算機系統(tǒng)的排隊網(wǎng)絡模型對于本領域技術人員是已知的,因此,不進行詳細描述。此外,根據(jù)獲取的性能數(shù)據(jù)利用公知的容量規(guī)劃工具建立基于排隊網(wǎng)絡的性能模型對于本領域技術人員是已知的,在此不進行詳細描述。其中在利用容量規(guī)劃工具(如TeamQuestModel)根據(jù)模擬環(huán)境性能測試的性能數(shù)據(jù)建立系統(tǒng)性能模型后,輸入各種What-If假設性條件,可以進行應用軟件性能預測。What-If假設性條件就包括了生產(chǎn)環(huán)境的設備,以及現(xiàn)在或者未來的生產(chǎn)環(huán)境業(yè)務負載。容量規(guī)劃模型能夠預測在這些What-If假設條件組合下應用軟件的性能表現(xiàn),包括CPU和磁盤IO利用率,響應時間,排隊時間等等指標。例如此時可以將測試過程中TeamQuestView采集到的各場景負載數(shù)據(jù)輸入TeamQeustModel,使用TeamQuestModel通過被測軟件在低端的試驗機型I上的性能表現(xiàn),預測該軟件在生產(chǎn)環(huán)境的負載壓力下,在生產(chǎn)機型II上的性能表現(xiàn)。雖然本發(fā)明的詳細說明是針對示范實例的,但對于本領域技術人員來說,這些實施例的各種修改形式以及替換形式都是可設想的。因此,本發(fā)明涵蓋了所有在所附權(quán)利要求明確的本發(fā)明專利保護范圍內(nèi)的修改形式和替換形式。權(quán)利要求1.一種基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法,該方法包括根據(jù)業(yè)務負載信息,建立被測應用軟件的業(yè)務負載模型;基于Little定律實現(xiàn)由被測應用軟件的業(yè)務負載模型向被測應用軟件的業(yè)務負載壓力模型的轉(zhuǎn)換;根據(jù)得到的被測應用軟件的業(yè)務負載壓力模型以及場景,制定在低端模擬環(huán)境下被測應用軟件的性能測試方案;在低端模擬環(huán)境下模擬真實業(yè)務負載的壓力實施被測應用軟件的性能測試,并采集被測應用軟件的性能數(shù)據(jù);以及將采集的被測應用軟件的性能數(shù)據(jù)輸入容量規(guī)劃工具,基于容量規(guī)劃預測所述應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)。2.4艮據(jù)權(quán)利要求1的方法,其中所述性能測試方案包括環(huán)境搭建方案、數(shù)據(jù)準備方案、壓力模擬方案和負載監(jiān)控方案。3.根據(jù)權(quán)利要求1的方法,其中根據(jù)獲取的舊版應用軟件的現(xiàn)狀信息作為業(yè)務負載信息,建立被測應用軟件的業(yè)務負載模型。4.根據(jù)權(quán)利要求1的方法,其中根據(jù)獲取的用戶組織對新的應用軟件的使用計劃作為業(yè)務負載信息,建立被測應用軟件的業(yè)務負載模型。5.根據(jù)權(quán)利要求1的方法,其中基于容量規(guī)劃預測所述應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)包含根據(jù)低端模擬環(huán)境的性能測試的性能數(shù)據(jù)建立系統(tǒng)性能模型后,輸入各種假設性條件,進行應用軟件在生產(chǎn)環(huán)境下的性能預測。6.根據(jù)權(quán)利要求5的方法,其中性能預測參數(shù)包括CPU和磁盤IO利用率、響應時間、排隊時間至少其中之一。7.根據(jù)權(quán)利要求1的方法,其中所述場景至少包括平時場景和高峰場景之一。8.根據(jù)權(quán)利要求1的方法,其中基于Little定律的轉(zhuǎn)換包括事務并發(fā)數(shù)信息的轉(zhuǎn)換。9.根據(jù)權(quán)利要求8的方法,其中事務并發(fā)數(shù)信息的轉(zhuǎn)換滿足N=OU*(Z,+R)/(Z+R)其中N是低端模擬環(huán)境下的壓力測試模擬的并發(fā)數(shù),OU是模擬業(yè)務場景中的在線用戶數(shù),Z,為低端環(huán)境下壓力測試情況下的操作間隔時間,R是服務器響應時間,Z為真實環(huán)境下的操作間隔。10.根據(jù)權(quán)利要求3的方法,其中所述舊版應用軟件的現(xiàn)狀信息至少包括各種業(yè)務統(tǒng)計、歷史業(yè)務量和工作量統(tǒng)計、歷史業(yè)務操作方式和操作統(tǒng)計之一。11.根據(jù)權(quán)利要求1的方法,其中所述根據(jù)業(yè)務負栽信息建立被測應用軟件的業(yè)務負載模型包括根據(jù)各種業(yè)務交易量隨時間的變化關系,針對不同的使用場景生成相應的業(yè)務負載模型。全文摘要一種基于低端模擬環(huán)境性能測試和容量規(guī)劃的應用軟件在生產(chǎn)環(huán)境下的性能預測方法,該方法包括根據(jù)業(yè)務負載信息,建立被測應用軟件的業(yè)務負載模型;基于Little定律實現(xiàn)由被測應用軟件的業(yè)務負載模型向被測應用軟件的業(yè)務負載壓力模型的轉(zhuǎn)換;根據(jù)被測應用軟件的業(yè)務負載壓力模型以及推導出來的場景,制定在低端模擬環(huán)境下被測應用軟件的性能測試方案;在低端模擬環(huán)境下模擬真實業(yè)務負載的壓力實施被測應用軟件的性能測試,并采集被測應用軟件的性能數(shù)據(jù);以及將采集的被測應用軟件的性能數(shù)據(jù)輸入容量規(guī)劃工具,基于容量規(guī)劃預測所述應用軟件在生產(chǎn)環(huán)境下的性能表現(xiàn)。文檔編號G06F11/36GK101211311SQ20061017116公開日2008年7月2日申請日期2006年12月25日優(yōu)先權(quán)日2006年12月25日發(fā)明者宋平波,張玉忠,雄徐,楊潤華,胡欣欣,蔡堅錚申請人:中國電信股份有限公司