性能測試—性能環(huán)境與數(shù)據(jù)
性能環(huán)境,也是困擾性能測試人員很重要的一個(gè)問題。如何模擬線上真實(shí)的環(huán)境?如何在測試環(huán)境進(jìn)行的性能測試結(jié)果,能準(zhǔn)確的反應(yīng)到生產(chǎn)線上去?
先聊下我們的做法。
首先確認(rèn)線上的網(wǎng)絡(luò)拓?fù)鋱D。比如:
左邊是線上環(huán)境,線上一般是分布式集群部署。比如用戶訪問服務(wù)器A,而服務(wù)器A需要依賴到服務(wù)器B和C提供的服務(wù),而服務(wù)器C與DB存儲(chǔ)打交道。那么在性 能測試環(huán)境,為了模擬用戶的行為,需要搭建服務(wù)器A,B,C和DB各一臺(tái)。通過對單臺(tái)服務(wù)器A的壓測結(jié)果TPS,再線性乘以機(jī)器數(shù)量,完成線上服務(wù)器A集 群的TPS的評估。
這樣做,簡單的完成了線上和線下的結(jié)果推算。但是這樣做,有一個(gè)前提:就是保證線上和性能測試環(huán)境的機(jī)器配置是一樣的。機(jī)器的配置分為2個(gè)部分:硬件和軟件。
硬件方面,比如機(jī)器是4核4G的xen虛擬機(jī),千兆網(wǎng)卡,SATA磁盤。
軟件方面,包括操作系統(tǒng)的版本,位數(shù),比如:redhat 5.4,**位機(jī)器;JDK版本:openJDK 1.6.0;JVM參數(shù)配置;web容器:tomcat7.
上面說的是應(yīng)用層面,性能測試還有很重要的一步,就是性能測試數(shù)據(jù)的準(zhǔn)備。
性能測試數(shù)據(jù)庫的環(huán)境也與應(yīng)用層一樣,保持和線上一樣的硬件與軟件配置。這里有個(gè)問題就是:生產(chǎn)線上一臺(tái)數(shù)據(jù)庫,對應(yīng)多臺(tái)應(yīng)用。而在性能測試環(huán)境中,被我們映射成1:1的關(guān)系后,很難找到數(shù)據(jù)庫層的性能瓶頸,因?yàn)樵趬簻y過程中,應(yīng)用層會(huì)比數(shù)據(jù)層更快到達(dá)性能瓶頸。
接下來,簡單描述下性能測試數(shù)據(jù)的準(zhǔn)備。性能測試數(shù)據(jù)的準(zhǔn)備也分為2個(gè)部分。1是業(yè)務(wù)數(shù)據(jù),2是基礎(chǔ)數(shù)據(jù)。
什么是業(yè)務(wù)數(shù)據(jù)?業(yè)務(wù)數(shù)據(jù)就是性能測試要模擬的用戶擁有的數(shù)據(jù)。比如賣家A,有100個(gè)商品。100就是業(yè)務(wù)數(shù)據(jù)。基礎(chǔ)數(shù)據(jù)就是商品所在表的總數(shù)據(jù)量。比如100W。
性能測試的數(shù)據(jù),不光要關(guān)注業(yè)務(wù),更要關(guān)注數(shù)據(jù)庫表的量級,因?yàn)?00條數(shù)據(jù),和100W條數(shù)據(jù),性能測試出來完全是兩個(gè)結(jié)果。
為了數(shù)據(jù)的準(zhǔn)確性,性能測試的數(shù)據(jù)表,也要滿足生產(chǎn)線上表的量級。
滿足了這些條件,性能環(huán)境才能基本真實(shí)模擬生產(chǎn)線的環(huán)境,測試出來的結(jié)果才有推算上線后結(jié)果的可能。
后記:
每個(gè)公司的業(yè)務(wù)不同,系統(tǒng)架構(gòu)也不同,所以性能測試環(huán)境方面肯定有很大的差異。我只是簡單的寫了我所在公司的性能環(huán)境的一些知識(shí),分享給大家,供大家一個(gè)參考,希望你能從這里獲得有用的東西。關(guān)于性能測試環(huán)境,我的一些觀點(diǎn):
1. 如果允許生產(chǎn)線做性能測試,就盡量做生產(chǎn)線性能測試。同樣的環(huán)境,性能測試的結(jié)果才有意義,性能測試的價(jià)值也最大體現(xiàn)。
2. 測試環(huán)境的配置可以與線上一樣,可以做下N:1的映射。結(jié)果線性乘以機(jī)器數(shù),可以評估線上集群的負(fù)載。
3. 真沒條件,線上線下環(huán)境差異很大。就盡量找一些代碼級別的性能瓶頸。優(yōu)化后再上線,線下的結(jié)果就不用去推算線上,很不科學(xué)
posted on 2014-05-04 12:56 順其自然EVO 閱讀(520) 評論(0) 編輯 收藏 所屬分類: 性能測試 、web 前端性能測試