摘 要: 由于云計算應(yīng)用和傳統(tǒng)應(yīng)用的特性區(qū)別,使用傳統(tǒng)的測試方法和工具對云端應(yīng)用進(jìn)行性能測試有很多限制和不足。提出云端應(yīng)用模式的性能測試模式需要創(chuàng)新,并介紹了幾種新的測試方法。
關(guān)鍵詞: 云計算;性能測試;方法
云計算被認(rèn)為是繼個人電腦、互聯(lián)網(wǎng)之后信息技術(shù)的又一次重大變革。我國國民經(jīng)濟(jì)和社會發(fā)展“十二五”規(guī)劃綱要把以云計算為代表的新一代信息技術(shù)確定為戰(zhàn)略性新興產(chǎn)業(yè)的發(fā)展重點(diǎn)。以云計算模式為服務(wù)特點(diǎn)的應(yīng)用將在各行業(yè)中得到快速發(fā)展[1]。
?。?)電信行業(yè)的三大運(yùn)營商加快實(shí)施云計算戰(zhàn)略,借助云計算實(shí)現(xiàn)業(yè)務(wù)創(chuàng)新。
?。?)在金融行業(yè)中小型金融行業(yè)合力搭建公有云服務(wù)中心。
?。?)政府通過云計算平臺建設(shè)帶動電子政務(wù)改革。
?。?)教育行業(yè)建立共享云平臺提高資源利用率。
在云端應(yīng)用蓬勃發(fā)展的時代潮流中,面對云端應(yīng)用不同于傳統(tǒng)應(yīng)用的特點(diǎn),在性能測試領(lǐng)域也面臨新的挑戰(zhàn),對云端應(yīng)用性能測試在方法上需要創(chuàng)新。云計算服務(wù)模式下性能測試面臨著諸多挑戰(zhàn)。
1 傳統(tǒng)性能測試模式發(fā)展滯后
相對于云計算服務(wù)應(yīng)用,傳統(tǒng)應(yīng)用的服務(wù)器資源網(wǎng)絡(luò)資源是摸得著看得見的,是數(shù)據(jù)和資源集中模式的部署,對于傳統(tǒng)模式的應(yīng)用當(dāng)前的自動化測試工具能高效代替人工完成性能測試,但是面對高度透明化和系統(tǒng)超大規(guī)?;脑朴嬎惴?wù)應(yīng)用,傳統(tǒng)的性能測試工具和方法的發(fā)展已經(jīng)滯后。
隨著網(wǎng)絡(luò)日益復(fù)雜化、異構(gòu)化,特別是云計算背景下蓬勃發(fā)展的虛擬化技術(shù)、分布式計算、分布式存儲等新技術(shù)發(fā)展,云計算服務(wù)的應(yīng)用模式變得日益透明和龐大。很多時候,不僅被測對象是龐大的數(shù)量規(guī)模,甚至被測對象是看不到摸不著的云端應(yīng)用。傳統(tǒng)測試方法和工具面臨更大的挑戰(zhàn)。
對于在云環(huán)境中的應(yīng)用來說,要測試與應(yīng)用有關(guān)的網(wǎng)絡(luò)性能、服務(wù)器性能、數(shù)據(jù)庫性能、軟件性能以及它在客戶端上的緩存情況。對于在云環(huán)境中只有在某個位置上運(yùn)行的一個應(yīng)用,但是對于Amazon或Facebook來說,應(yīng)用分布在許多不同且無法預(yù)測的位置上。這種情況顯然要比運(yùn)行一個基于單一服務(wù)器的應(yīng)用測試腳本復(fù)雜得多。
2 傳統(tǒng)性能測試方法的局限
2.1 海量云端壓力的模擬
目前性能測試工具的模擬用戶量受限且許可協(xié)議受約束。以LoadRunner為例,上萬級別的許可費(fèi)用往往高達(dá)百萬元的級別,而對于類似于鐵路售票、公務(wù)員考試報名、淘寶應(yīng)用等動輒幾十萬甚至上百萬的用戶壓力,這類測試工具往往無能為力。即使許可允許,對于壓力機(jī)的部署數(shù)量也是一個恐怖的數(shù)字。假設(shè)一臺4核CPU,8 GB內(nèi)存的服務(wù)器能模擬產(chǎn)生10 000用戶在線的腳本壓力,對于上述透明統(tǒng)一的“云端”應(yīng)用系統(tǒng)動輒需要幾十臺甚至上百臺壓力機(jī)進(jìn)行測試,形成了多臺壓力機(jī)壓云端的形態(tài),測試成本非常龐大。這是傳統(tǒng)壓力測試中“一機(jī)壓多機(jī)”的模式所不能比的。
2.2 傳統(tǒng)測試工具獲得真實(shí)用戶體驗(yàn)的難度
傳統(tǒng)數(shù)據(jù)集中式情況下的性能測試結(jié)果往往更多反應(yīng)的是系統(tǒng)本身的性能,對于用戶的真實(shí)體驗(yàn)情況數(shù)據(jù)支撐不夠。而云端服務(wù)的應(yīng)用模式、服務(wù)器、數(shù)據(jù)、存儲等資源都是透明化的,對于服務(wù)提供商來說不僅僅關(guān)心的是系統(tǒng)自身的性能,更大程度上服務(wù)提供商同樣關(guān)心分布在各地的用戶體驗(yàn),這是服務(wù)提供商的QoS指標(biāo)。對于最終用戶來說,獲取良好的QoS體驗(yàn)是其接受云服務(wù)的源動力之一。
目前性能測試工具可以模擬出用戶的訪問行為,但是腳本記錄往往是某次訪問的路徑,不能代表所有用戶的訪問路徑,所以當(dāng)前腳本要遍歷用戶的訪問路徑在腳本開發(fā)和工具部署方面將付出巨大的成本。
2.3 網(wǎng)絡(luò)運(yùn)營商及CDN服務(wù)提供商對性能測試的影響
圖1所示是一個典型互聯(lián)網(wǎng)售票系統(tǒng)使用CDN[2]技術(shù)進(jìn)行網(wǎng)絡(luò)加速的應(yīng)用。這類架構(gòu)的系統(tǒng)具有典型的代表性。可以看出相對于原來無CDN技術(shù)的數(shù)據(jù)中心模式,當(dāng)前云服務(wù)應(yīng)用的整個生態(tài)鏈融入了更多的廠商和應(yīng)用,其中網(wǎng)絡(luò)運(yùn)營商和CDN服務(wù)提供商是大型云計算服務(wù)器應(yīng)用不可回避的機(jī)構(gòu)。性能測試同樣需要這些諸多方面的配合。如測試網(wǎng)絡(luò)帶寬限制與協(xié)調(diào)、模擬IP的限制與協(xié)調(diào)、接入的安全問題、與其他云服務(wù)的測試隔離問題等。
3 目前行業(yè)場景的云服務(wù)性能測試方式
3.1 完全模擬云端壓力測試
此種方式的測試結(jié)果參考性最強(qiáng)。但是對于大型的云端應(yīng)用,如淘寶系統(tǒng)、公眾售票系統(tǒng)、LoadRunner等傳統(tǒng)的壓力測試工具無法模擬海量用戶,目前LoadRunner可獲取的許可只是65 000個虛擬用戶,無法面對幾十萬甚至上百萬的測試用戶需求。而且需要獲得網(wǎng)絡(luò)運(yùn)營商和網(wǎng)絡(luò)分發(fā)服務(wù)商的支持和配合,受限大。目前得到應(yīng)用的往往是一些小規(guī)模的云計算應(yīng)用,比如小型企業(yè)私有云測試。
3.2 混合測試策略
用傳統(tǒng)壓力工具如LoadRunner在內(nèi)網(wǎng)進(jìn)行背景壓力產(chǎn)生,結(jié)合云端的用戶體驗(yàn)工具進(jìn)行模擬。此方法測試結(jié)果參考性相對于獨(dú)立的內(nèi)網(wǎng)測試要強(qiáng),但是同樣無法模擬大量的云端壓力,無法遍歷云端應(yīng)用的用戶訪問路徑,獲取全面的用戶體驗(yàn)數(shù)據(jù)。
3.3 無云端內(nèi)網(wǎng)測試
拋開云端用戶體驗(yàn)的測試,在系統(tǒng)的內(nèi)網(wǎng)進(jìn)行測試,結(jié)果數(shù)據(jù)只能代表系統(tǒng)本身的性能,無法獲取散布的用戶體驗(yàn)數(shù)據(jù)。
3.4 對云端服務(wù)器進(jìn)行切片測試
通過推演計算云端服務(wù)能力進(jìn)行切片測試。此方法雖執(zhí)行容易,但是測試結(jié)果參考性最差。
4 業(yè)內(nèi)的測試方法探討與嘗試
基于目前云計算服務(wù)模式的發(fā)展,當(dāng)前行業(yè)內(nèi)傳統(tǒng)的性能測試方法已經(jīng)相對滯后。云計算服務(wù)模式對性能測試的要求更高,如更高的海里壓力模擬、更豐富的用戶體驗(yàn)數(shù)據(jù)等。面對這個局面,業(yè)內(nèi)也在進(jìn)行新測試方法的嘗試和探討。
4.1 超算中心
使用超級計算中心產(chǎn)生壓力,針對各地CDN以及系統(tǒng)本身進(jìn)行性能測試。模擬負(fù)載來自不同的地域,可以綜合模擬在南北方不同網(wǎng)絡(luò)環(huán)境下的并發(fā)與在線情況;高性能計算機(jī)規(guī)模大,可以模擬大規(guī)模的虛擬用戶。但壓力通過不同運(yùn)營商鏈路復(fù)雜,拓?fù)洳幻鳎赡軐?dǎo)致模擬的負(fù)載失效,而且?guī)捵赓U成本較高,1 Gb/s運(yùn)營商帶寬租賃費(fèi)用達(dá)數(shù)十萬元。
4.2 通過云端產(chǎn)生測試壓力用于測試云計算應(yīng)用
這將是今后云性能測試的發(fā)展方向和理念。利用現(xiàn)有成熟的網(wǎng)絡(luò)技術(shù)和虛擬化技術(shù)將分布在世界各個角落的壓力機(jī)整合起來進(jìn)行性能測試也是一種值得探討的方式。性能測試云平臺的概念是基于通過云端壓力測試云端服務(wù)的理念,是超算中心模式的延伸,這個超算中心不是超級計算機(jī)的集中,而是大量廉價服務(wù)器的集中,將大量廉價服務(wù)器的計算能力整合為云端壓力的產(chǎn)生平臺。如Compuware公司的Gomez云測試平臺[3]和NEOTYS公司的Neolaod云測試平臺[4],目前此類測試服務(wù)的價格都是非常昂貴的。
4.3 整合開源測試軟件進(jìn)行二次開發(fā)新的云端測試平臺
可以預(yù)見在將來使用云端性能測試工具進(jìn)行云端服務(wù)的性能測試將是一個新的業(yè)務(wù)增長點(diǎn),應(yīng)對這個業(yè)務(wù)增長需求,除了購買昂貴的商業(yè)云測試工具服務(wù)外,整合現(xiàn)有的開源軟件測試工具進(jìn)行二次開發(fā),從當(dāng)前的工具功能和開發(fā)技術(shù)來說具備技術(shù)可行性,這樣基于開源平臺的云端測試平臺將是很低廉的。
參考文獻(xiàn)
[1] 野村綜合研究所技術(shù)調(diào)查部.2010-2014年全球信息技術(shù)導(dǎo)航圖[J].2010:60-72.
[2] 內(nèi)容分發(fā)網(wǎng)絡(luò)[EB/OL].[2010-03-06]http://baike.baidu.com/view/21895.htm.
[3] Gomez[EB/OL].[2010-09-16]http://www.compuware.com/application-performance-management.
[4] Neoload testing[EB/OL].[2010-04-12]http://www.neotys.com/.