專利名稱:一種通用壓力仿真系統(tǒng)及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種應用于網(wǎng)絡(luò)負載壓力測試的仿真系統(tǒng),特別涉及一種通用壓力仿真系統(tǒng)及其控制方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)越來越迅猛的發(fā)展,上網(wǎng)人數(shù)每年以10%左右速度增長,數(shù)據(jù)信息量越來越龐大,加上最近幾年來網(wǎng)絡(luò)熱點層出不窮,從新聞傳媒到博客,以及SNS、WAP等,使得各大網(wǎng)站的網(wǎng)絡(luò)負載壓力與日俱增,鑒于這種壓力,如何不斷優(yōu)化整合已有的軟硬件資源以及優(yōu)化提高當前的架構(gòu)設(shè)計,是當今互聯(lián)網(wǎng)技術(shù)不斷發(fā)展和創(chuàng)新的動力源泉。對于軟硬件資源或網(wǎng)絡(luò)架構(gòu)設(shè)計進行優(yōu)化,需要對其進行測試并提供結(jié)果來反映優(yōu)化是否有效,目前市面上流行的測試工具包括loadrunner、sysbench、bonnie++、iozone、 orion等,這些測試工具各自所偏重的測試點均不相同,有的著重于簡單易用,有的著重于豐富的報告功能。上述工具一般是通過自身所模擬的測試環(huán)境來進行測試,然而互聯(lián)網(wǎng)上用戶的網(wǎng)絡(luò)服務(wù)請求不僅多樣而且復雜,不同的網(wǎng)絡(luò)熱點帶來的網(wǎng)絡(luò)負載壓力也不盡相同,通過模擬所得的測試環(huán)境比較單一,顯然無法模擬出用戶復雜化的服務(wù)請求。因此,通過測試工具所觀測和判定的優(yōu)化結(jié)果與客觀實際的結(jié)果往往存在較大的偏差,優(yōu)化測試的瓶頸主要體現(xiàn)在以下幾點1 在模擬的測試環(huán)境中,無法得到互聯(lián)網(wǎng)網(wǎng)絡(luò)工作線上生產(chǎn)環(huán)境的真實壓力狀況,所測試的結(jié)果與真實環(huán)境下的情況存在偏差,難以確認測試環(huán)境下所產(chǎn)生的優(yōu)化結(jié)果是否在真實環(huán)境中也有效;2:如果直接在互聯(lián)網(wǎng)真實環(huán)境的網(wǎng)絡(luò)工作線上進行測試優(yōu)化,絕大部分情況會造成線上的業(yè)務(wù)受到影響,輕則業(yè)務(wù)波動,重則業(yè)務(wù)停頓,這都是服務(wù)商和用戶不能容忍的。 實際上,一個成功的優(yōu)化需要多次反復的嘗試,很明顯,我們不能在真實的業(yè)務(wù)中進行這種優(yōu)化嘗試;3:除了優(yōu)化外,我們還希望能了解互聯(lián)網(wǎng)網(wǎng)絡(luò)工作線上的真實壓力極限,而這些壓力極限往往都不是呈線性增長,并且一些網(wǎng)絡(luò)熱點的分布是很難估計和模擬出來,因此, 我們無法對系統(tǒng)的單點或整體的極限做到心中有數(shù)。如果定義網(wǎng)絡(luò)工作線的真實環(huán)境為生產(chǎn)環(huán)境,提供測試的環(huán)境為測試環(huán)境,我們面臨的一個問題就是如何將生產(chǎn)環(huán)境引入到測試環(huán)境中,而測試環(huán)境的任何優(yōu)化動作不能影響到生產(chǎn)環(huán)境的正常運作,并且該測試環(huán)境可以引入生產(chǎn)環(huán)境的網(wǎng)絡(luò)負載壓力,或是依據(jù)需求而定義測試環(huán)境的壓力,做到測試需求可定制。鑒于上述問題,本發(fā)明公開一種通用壓力仿真系統(tǒng)。其具有如下文所述之技術(shù)特征,以解決現(xiàn)有的問題。
發(fā)明內(nèi)容
3
為了解決上述技術(shù)問題,本發(fā)明將網(wǎng)絡(luò)工作線的真實環(huán)境即生產(chǎn)環(huán)境中的真實數(shù)據(jù)接入到測試環(huán)境中,并且不影響生產(chǎn)環(huán)境正常的運作,提供了一種通用壓力仿真系統(tǒng)。本發(fā)明的一種通用壓力仿真系統(tǒng),包括表示層、中間層集群、數(shù)據(jù)層。所述中間層集群分別與表示層、數(shù)據(jù)層連接,中間層集群對表示層是透明的,數(shù)據(jù)層對中間層集群是透明的。所述中間層集群包含業(yè)務(wù)邏輯中間層和測試中間層,業(yè)務(wù)邏輯中間層與測試中間層連接。所述中間層集群是無狀態(tài)的中間層,該無狀態(tài)中間層配置有中間層服務(wù)器,中間層服務(wù)器對業(yè)務(wù)邏輯數(shù)據(jù)的處理是利用嵌入式腳本實現(xiàn)的。所述數(shù)據(jù)層配置有緩存存儲器、數(shù)據(jù)庫代理服務(wù)器和多套數(shù)據(jù)庫服務(wù)器。所述的一種通用壓力仿真系統(tǒng)的控制方法,包含以下步驟步驟1 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層接收表示層的用戶請求,提交給嵌入式腳本進行處理,嵌入式腳本反序列化用戶請求,產(chǎn)生一個請求對象;步驟2 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層針對請求對象,產(chǎn)生一個輕量級線程,調(diào)用嵌入式腳本執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯;步驟3 在生產(chǎn)環(huán)境中,根據(jù)數(shù)據(jù)庫管理員的需求,產(chǎn)生一個新的用戶請求;步驟4 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層繼續(xù)執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯。所述的一種通用壓力仿真系統(tǒng)的控制方法,所述步驟3還包含以下步驟步驟3. 1 所述產(chǎn)生的新的用戶請求異步發(fā)送至測試環(huán)境的測試中間層,測試中間層接收新的用戶請求后提交給嵌入式腳本進行處理,嵌入式腳本反序列化新的用戶請求,產(chǎn)生一個新的用戶請求對象;步驟3. 2 在測試環(huán)境中,測試中間層針對新的用戶請求對象,產(chǎn)生一個新的輕量級線程,調(diào)用嵌入式腳本執(zhí)行測試環(huán)境的業(yè)務(wù)邏輯;步驟3. 3 在測試環(huán)境中,測試中間層的業(yè)務(wù)邏輯處理完畢,直接結(jié)束。本發(fā)明取代了對真實網(wǎng)絡(luò)生產(chǎn)環(huán)境進行模擬的方式,在獨立于生產(chǎn)環(huán)境的測試環(huán)境中引入生產(chǎn)環(huán)境的網(wǎng)絡(luò)負載壓力參數(shù),并根據(jù)導入的壓力在測試環(huán)境中對測試環(huán)境進行優(yōu)化整合,該優(yōu)化過程不對真實的生產(chǎn)環(huán)境造成任何業(yè)務(wù)波動,并且測試環(huán)境的優(yōu)化結(jié)果為生產(chǎn)環(huán)境自身的優(yōu)化提供了依據(jù)。
圖1是本發(fā)明的一種通用壓力仿真系統(tǒng)的結(jié)構(gòu)圖。圖2是本發(fā)明的一種通用壓力仿真系統(tǒng)的構(gòu)架示意圖。圖3是通用壓力仿真系統(tǒng)控制方法的流程圖。
具體實施例方式根據(jù)本發(fā)明的權(quán)利要求和發(fā)明內(nèi)容所公開的內(nèi)容,本發(fā)明的技術(shù)方案具體如下實施例所述實施例如圖1所示,表示層1配置有Web服務(wù)器,主要接收用戶的請求并返回數(shù)據(jù),為客戶端提供應用邏輯控制的訪問;中間層集群2配置有中間層服務(wù)器,負責對數(shù)據(jù)業(yè)務(wù)邏輯處理;數(shù)據(jù)層3配置有緩存存儲器及連接數(shù)據(jù)庫的數(shù)據(jù)庫代理服務(wù)器和多套數(shù)據(jù)庫服務(wù)器,負責管理對數(shù)據(jù)庫數(shù)據(jù)的讀寫。如圖2所示,本發(fā)明的一種通用壓力仿真系統(tǒng),包括表示層1、中間層集群2、數(shù)據(jù)層3,是一個三層體系的結(jié)構(gòu)。中間層集群2分別與表示層1、數(shù)據(jù)層3連接,中間層集群2對表示層1是透明的, 數(shù)據(jù)層3對中間層集群2是透明的。中間層集群2包含業(yè)務(wù)邏輯中間層21和測試中間層22,業(yè)務(wù)邏輯中間層21與測試中間層22連接,業(yè)務(wù)邏輯中間層21主要處理生產(chǎn)環(huán)境的業(yè)務(wù)邏輯,測試中間層22主要處理測試環(huán)境的業(yè)務(wù)邏輯。中間層集群2是無狀態(tài)的中間層,該無狀態(tài)中間層配置有中間層服務(wù)器,中間層服務(wù)器對業(yè)務(wù)邏輯數(shù)據(jù)的處理是利用嵌入式腳本實現(xiàn)的。本發(fā)明使用的嵌入式腳本可采用 Clurk腳本,Clurk腳本是作為一門方便的嵌入式并可擴展的輕量級腳本來設(shè)計的,一直遵從著簡單、小巧、可移植、快速的原則,能嵌入到宿主處理單元中,以此來實現(xiàn)可配置性、可擴展性。Clurk虛擬機支持多進程、多線程、輕量級線程的邏輯模型,Clurk腳本配合引擎完成數(shù)據(jù)描述、配置管理和業(yè)務(wù)邏輯控制等任務(wù)。數(shù)據(jù)層3配置有緩存存儲器、數(shù)據(jù)庫代理服務(wù)器和多套數(shù)據(jù)庫服務(wù)器。如圖3所示,所述的一種通用壓力仿真系統(tǒng)的控制方法,包含以下的步驟步驟1 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層21接收表示層1的用戶請求,提交給嵌入式腳本進行處理,嵌入式腳本反序列化用戶請求,產(chǎn)生一個請求對象;步驟2 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層21針對請求對象,產(chǎn)生一個輕量級線程, 調(diào)用嵌入式腳本執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯;步驟3 在生產(chǎn)環(huán)境中,根據(jù)數(shù)據(jù)庫管理員的需求,產(chǎn)生一個新的用戶請求;步驟4 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層21繼續(xù)執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯。所述的一種通用壓力仿真系統(tǒng)的控制方法,所述步驟3還包含以下步驟步驟3. 1 所述產(chǎn)生的新的用戶請求異步發(fā)送至測試環(huán)境的測試中間層22,測試中間層22接收新的用戶請求后提交給嵌入式腳本進行處理,嵌入式腳本反序列化新的用戶請求,產(chǎn)生一個新的用戶請求對象;步驟3. 2 在測試環(huán)境中,測試中間層22針對新的用戶請求對象,產(chǎn)生一個新的輕量級線程,調(diào)用嵌入式腳本執(zhí)行測試環(huán)境的業(yè)務(wù)邏輯;步驟3. 3 在測試環(huán)境中,測試中間層22的業(yè)務(wù)邏輯處理完畢,直接結(jié)束。根據(jù)上述控制方法的步驟,在生產(chǎn)環(huán)境中,中間層服務(wù)器接收Web前端表示層1的服務(wù)指令,獲取客戶請求數(shù)據(jù),提交給嵌入式腳本處理,針對單個請求,中間層服務(wù)器的業(yè)務(wù)邏輯中間層21按照生產(chǎn)環(huán)境要求進行處理,但是涉及處理數(shù)據(jù)庫相關(guān)請求時,業(yè)務(wù)邏輯中間層21在按照自己流程處理業(yè)務(wù)邏輯的同時,將該服務(wù)請求異步發(fā)送至測試中間層22, 業(yè)務(wù)邏輯中間層21無需等待測試中間層22的反饋,依然遵從原有業(yè)務(wù)邏輯的處理方式對客戶服務(wù)請求進行后續(xù)的邏輯處理。根據(jù)上述控制方法的步驟,在測試環(huán)境中,測試中間層22獲取業(yè)務(wù)邏輯中間層21 異步傳送的服務(wù)請求,即使獲得生產(chǎn)環(huán)境的網(wǎng)絡(luò)壓力數(shù)據(jù)參數(shù),測試中間層22可根據(jù)對數(shù)
5據(jù)庫的測試要求定制處理流程,該處理流程處理完畢之后直接結(jié)束,不需要將處理結(jié)果返回至生產(chǎn)環(huán)境。本發(fā)明將生產(chǎn)環(huán)境和測試環(huán)境完全隔離,測試中間層22在對數(shù)據(jù)庫的測試處理流程中,以1 1的比例引入真實網(wǎng)絡(luò)工作線上的壓力至測試環(huán)境中,在測試環(huán)境中,不僅限于DB當機、網(wǎng)絡(luò)中斷、中間件服務(wù)器硬件等故障,其他測試環(huán)境中的任何優(yōu)化動作都不會影響到現(xiàn)實中真實的生產(chǎn)環(huán)境。除了 1 1引入真實環(huán)境的壓力,該通用壓力仿真系統(tǒng)還能以1 N放大壓力,定制前端緩存存儲器的命中率,如定制分布式Cache的命中率,調(diào)節(jié)后端數(shù)據(jù)庫代理服務(wù)器、 多套數(shù)據(jù)庫服務(wù)器處理數(shù)據(jù)庫數(shù)據(jù)的壓力,重新定義用戶請求內(nèi)容,即可針對專門的熱點事件、熱點用戶進行測試單表或單點的極限壓力,非線性的熱點壓力可以據(jù)此得到極限壓力,用以滿足測試可定制的需求。此外,測試環(huán)境中,可任意指定HASH規(guī)則,可以跟生產(chǎn)環(huán)境完全一致,也可以不一致,給優(yōu)化重組架構(gòu)提供可能測試的底層可以是數(shù)據(jù)庫也可以是存儲器,提供一種完全透明的底層。本發(fā)明取代了對真實網(wǎng)絡(luò)生產(chǎn)環(huán)境進行模擬的方式,在獨立于生產(chǎn)環(huán)境的測試環(huán)境中引入生產(chǎn)環(huán)境的網(wǎng)絡(luò)負載壓力參數(shù),并根據(jù)導入的壓力在測試環(huán)境中對測試環(huán)境進行優(yōu)化整合,該優(yōu)化過程不對真實的生產(chǎn)環(huán)境造成任何業(yè)務(wù)波動,并且測試環(huán)境的優(yōu)化結(jié)果為生產(chǎn)環(huán)境自身的優(yōu)化提供了真實有效的依據(jù)。上述實施例僅是本發(fā)明可選實施方式的舉例,其所公開的特征僅用于說明及闡述本發(fā)明的技術(shù)方案,并不用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種通用壓力仿真系統(tǒng),其特征在于,包括表示層(1)、中間層集群O)、數(shù)據(jù)層⑶;所述中間層集群( 分別與表示層(1)、數(shù)據(jù)層C3)連接,中間層集群( 對表示層(1) 是透明的,數(shù)據(jù)層(3)對中間層集群(2)是透明的;所述中間層集群( 包含業(yè)務(wù)邏輯中間層和測試中間層(22),業(yè)務(wù)邏輯中間層 (21)與測試中間層02)連接。
2.根據(jù)權(quán)利要求1所述的一種通用壓力仿真系統(tǒng),其特征在于,所述中間層集群(2)是無狀態(tài)的中間層,該中間層配置有中間層服務(wù)器。
3.根據(jù)權(quán)利要求1或2所述的一種通用壓力仿真系統(tǒng),其特征在于,所述中間層服務(wù)器對業(yè)務(wù)邏輯數(shù)據(jù)的處理是利用嵌入式腳本實現(xiàn)的。
4.根據(jù)權(quán)利要求1所述的一種通用壓力仿真系統(tǒng),其特征在于,所述數(shù)據(jù)層(3)配置有緩存存儲器、數(shù)據(jù)庫代理服務(wù)器和多套數(shù)據(jù)庫服務(wù)器。
5.根據(jù)權(quán)利要求1所述的一種通用壓力仿真系統(tǒng)的控制方法,其特征在于,包含以下步驟步驟1 在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層接收表示層(1)的用戶請求,提交給嵌入式腳本進行處理,嵌入式腳本反序列化用戶請求,產(chǎn)生一個請求對象;步驟2:在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層針對請求對象,產(chǎn)生一個輕量級線程,調(diào)用嵌入式腳本執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯;步驟3 在生產(chǎn)環(huán)境中,根據(jù)數(shù)據(jù)庫管理員的需求,產(chǎn)生一個新的用戶請求;步驟4:在生產(chǎn)環(huán)境中,業(yè)務(wù)邏輯中間層繼續(xù)執(zhí)行生產(chǎn)環(huán)境的業(yè)務(wù)邏輯。
6.根據(jù)權(quán)利要求4所述的一種通用壓力仿真系統(tǒng)的控制方法,其特征在于,所述步驟3 還包含以下步驟步驟3. 1 所述產(chǎn)生的新的用戶請求異步發(fā)送至測試環(huán)境的測試中間層(22),測試中間層0 接收新的用戶請求后提交給嵌入式腳本進行處理,嵌入式腳本反序列化新的用戶請求,產(chǎn)生一個新的用戶請求對象;步驟3. 2 在測試環(huán)境中,測試中間層0 針對新的用戶請求對象,產(chǎn)生一個新的輕量級線程,調(diào)用嵌入式腳本執(zhí)行測試環(huán)境的業(yè)務(wù)邏輯;步驟3. 3:在測試環(huán)境中,測試中間層0 的業(yè)務(wù)邏輯處理完畢,直接結(jié)束。
全文摘要
本發(fā)明涉及一種應用于網(wǎng)絡(luò)負載壓力測試的仿真系統(tǒng),特別涉及一種通用壓力仿真系統(tǒng)及其控制方法,該通用壓力仿真系統(tǒng)是包括表示層、中間層集群、數(shù)據(jù)層的三層結(jié)構(gòu),中間層集群包含生產(chǎn)環(huán)境中的業(yè)務(wù)邏輯中間層和測試環(huán)境中的測試中間層。本發(fā)明取代了對真實網(wǎng)絡(luò)生產(chǎn)環(huán)境進行模擬的方式,在獨立于生產(chǎn)環(huán)境的測試環(huán)境中引入生產(chǎn)環(huán)境的網(wǎng)絡(luò)負載壓力參數(shù),并根據(jù)導入的壓力在測試環(huán)境中對測試環(huán)境進行優(yōu)化整合,該優(yōu)化過程不對真實的生產(chǎn)環(huán)境造成任何業(yè)務(wù)波動,并且測試環(huán)境的優(yōu)化結(jié)果為生產(chǎn)環(huán)境自身的優(yōu)化提供了真實有效的依據(jù)。
文檔編號H04L12/26GK102195829SQ20101012857
公開日2011年9月21日 申請日期2010年3月19日 優(yōu)先權(quán)日2010年3月19日
發(fā)明者余偉, 徐景春, 李 杰, 秦曉玲 申請人:升東網(wǎng)絡(luò)科技發(fā)展(上海)有限公司