資源描述:
《《loadrunner 沒有告訴你的》之三——理發(fā)店模型》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、大概在一年前的一次討論中,我的好友陳華第一次提到了這個模型的最初版本,經過幾次討論后,我們發(fā)現(xiàn)經過完善和擴展的“理發(fā)店模型”可以用來幫助我們理解很多性能測試的概念和理論,以及一些測試中遇到的問題。在最近的一次討論后,我決定撰寫一篇文章來專門講述一下這個模型,希望可以幫助大家更好的理解性能測試有關的知識。不過,在這篇文章中,我將會盡量的只描述模型本身以及相關的一些擴展,而具體如何將這個模型完全同性能測試關聯(lián)起來,我不會全部說破,留下足夠的空間讓大家繼續(xù)思考和總結,最好也一起來對這個模型做進一步的完善和擴展^
2、_^我相信,當大家在思考的過程中有所收獲并有所突破時,那種快感和收獲的喜悅才真的是讓人倍感振奮而且終生難忘的^_^當然,我要說明的是,這個模型僅僅是1個模型,它與大家實際工作中遇到的各式各樣的情況未必都可以一一對應,但是大的方向和趨勢應該是一致的。??相信大家都進過或見過理發(fā)店,一間或大或小的鋪面,1個或幾個理發(fā)師,幾張理發(fā)用的椅子和供顧客等待的長條板凳。在我們的這個理發(fā)店中,我們事先做了如下的假設:?1.???????理發(fā)店共有3名理發(fā)師;2.?????每位理發(fā)師剪一個發(fā)的時間都是1小時;3.?????
3、我們顧客們都是很有時間觀念的人而且非常挑剔,他們對于每次光顧理發(fā)店時所能容忍的等待時間+剪發(fā)時間是3小時,而且等待時間越長,顧客的滿意度越低。如果3個小時還不能剪完頭發(fā),我們的顧客會立馬生氣的走人。?通過上面的假設我們不難想象出下面的場景:1.???????當理發(fā)店內只有1位顧客時,只需要有1名理發(fā)師為他提供服務,其他兩名理發(fā)師可能繼續(xù)等著,也可能會幫忙打打雜。1小時后,這位顧客剪完頭發(fā)出門走了。那么在這1個小時里,整個理發(fā)店只服務了1位顧客,這位顧客花費在這次剪發(fā)的時間是1小時;2.?????當理發(fā)店內
4、同時有兩位顧客時,就會同時有兩名理發(fā)師在為顧客服務,另外1位發(fā)呆或者打雜幫忙。仍然是1小時后,兩位顧客剪完頭發(fā)出門。在這1小時里,理發(fā)店服務了兩位顧客,這兩位顧客花費在剪發(fā)的時間均為1小時;3.?????很容易理解,當理發(fā)店內同時有三位顧客時,理發(fā)店可以在1小時內同時服務三位顧客,每位顧客花費在這次剪發(fā)的時間仍然是均為1小時;從上面幾個場景中我們可以發(fā)現(xiàn),在理發(fā)店同時服務的顧客數(shù)量從1位增加到3位的過程中,隨著顧客數(shù)量的增多,理發(fā)店的整體工作效率在提高,但是每位顧客在理發(fā)店內所呆的時間并未延長。當然,我們
5、可以假設當只有1位顧客和2位顧客時,空閑的理發(fā)師可以幫忙打雜,使得其他理發(fā)師的工作效率提高,并使每位顧客的剪發(fā)時間小于1小時。不過即使根據(jù)這個假設,雖然隨著顧客數(shù)量的增多,每位顧客的服務時間有所延長,但是這個時間始終還被控制在顧客可接受的范圍之內,并且顧客是不需要等待的。不過隨著理發(fā)店的生意越來越好,顧客也越來越多,新的場景出現(xiàn)了。假設有一次顧客A、B、C剛進理發(fā)店準備剪發(fā),外面一推門又進來了顧客D、E、F。因為A、B、C三位顧客先到,所以D、E、F三位只好坐在長板凳上等著。1小時后,A、B、C三位剪完頭
6、發(fā)走了,他們每個人這次剪發(fā)所花費的時間均為1小時??墒荄、E、F三位就沒有這么好運,因為他們要先等A、B、C三位剪完才能剪,所以他們每個人這次剪發(fā)所花費的時間均為2小時——包括等待1小時和剪發(fā)1小時。通過上面這個場景我們可以發(fā)現(xiàn),對于理發(fā)店來說,都是每小時服務三位顧客——第1個小時是A、B、C,第二個小時是D、E、F;但是對于顧客D、E、F來說,“響應時間”延長了。如果你可以理解上面的這些場景,就可以繼續(xù)往下看了。在新的場景中,我們假設這次理發(fā)店里一次來了9位顧客,根據(jù)我們上面的場景,相信你不難推斷,這9
7、位顧客中有3位的“響應時間”為1小時,有3位的“響應時間”為2小時(等待1小時+剪發(fā)1小時),還有3位的“響應時間”為3小時(等待2小時+剪發(fā)1小時)——已經到達用戶所能忍受的極限。假如在把這個場景中的顧客數(shù)量改為10,那么我們已經可以斷定,一定會有1位顧客因為“響應時間”過長而無法忍受,最終離開理發(fā)店走了。我想并不需要特別說明,大家也一定可以把上面的這些場景跟性能測試掛上鉤了。如果你還是覺得比較抽象,繼續(xù)看下面的這張圖^_^這張圖中展示的是1個標準的軟件性能模型。在圖中有三條曲線,分別表示資源的利用情況
8、(Utilization,包括硬件資源和軟件資源)、吞吐量(Throughput,這里是指每秒事務數(shù))以及響應時間(ResponseTime)。圖中坐標軸的橫軸從左到右表現(xiàn)了并發(fā)用戶數(shù)(NumberofConcurrentUsers)的不斷增長。在這張圖中我們可以看到,最開始,隨著并發(fā)用戶數(shù)的增長,資源占用率和吞吐量會相應的增長,但是響應時間的變化不大;不過當并發(fā)用戶數(shù)增長到一定程度后,資源占用達到飽和,吞吐量增長明顯放緩甚至