效能概念 理髮店模型

2021-10-19 20:39:34 字數 3120 閱讀 8708

理髮店模型,可以很好的用來理解很多效能測試的概念和理論,以及一些測試中遇到的問題

將抽象的概念具體化,結合實際,通過理髮店模型理解系統的效能和併發處理

在這個理髮店中,事先做如下的假設:

理髮店共有3名理髮師

每位理髮師剪乙個頭髮的時間都是1小時

顧客們對於每次光顧理髮店時所能容忍的等待時間+剪髮時間是3小時,而且等待時間越長,顧客的滿意度越低。如果3個小時還不能剪完頭髮,我們的顧客會立馬生氣的走人

場景總結:

在理髮店同時服務的顧客數量從1位增加到3位的過程中,隨著顧客數量的增多,理髮店的整體工作效率在提高,而且每位顧客在理髮店內所呆的時間並未延長

當然,可以假設當只有1位顧客和2位顧客時,空閒的理髮師可以幫忙打雜,使得其他理髮師的工作效率提高,並使每位顧客的剪髮時間小於1小時

不過即使根據這個假設,雖然隨著顧客數量的增多,每位顧客的服務時間有所延長,但是這個時間始終還被控制在顧客可接受的範圍之內,並且顧客是不需要等待的

隨著理髮店的生意越來越好,顧客也越來越多,出現新的場景

假設有一次顧客a、b、c剛進理髮店準備剪髮,外面一推門又進來了顧客d、e、f

因為a、b、c三位顧客先到,所以d、e、f三位只好坐在長板凳上等著

1小時後,a、b、c三位剪完頭髮走了,他們每個人這次剪髮所花費的時間均為1小時。可是d、e、f三位就沒有這麼好運,因為他們要先等a、b、c三位剪完才能剪,所以他們每個人這次剪髮所花費的時間均為2小時——包括等待1小時和剪髮1小時

通過上面這個場景我們可以發現,對於理髮店來說,都是每小時服務三位顧客——第1個小時是a、b、c,第二個小時是d、e、f;但是對於顧客d、e、f來說,「響應時間」延長了

假設這次理髮店裡一次來了9位顧客,這9位顧客中有3位的「響應時間」為1小時,有3位的「響應時間」為2小時(等待1小時+剪髮1小時),還有3位的「響應時間」為3小時(等待2小時+剪髮1小時)——已經到達使用者所能忍受的極限。假如在把這個場景中的顧客數量改為10,那麼我們已經可以斷定,一定會有1位顧客因為「響應時間」過長而無法忍受,最終離開理髮店走了

上面的場景如何與效能測試掛鉤呢?

根據區域交界處,又衍生兩個概念:

隨著理髮店裡顧客人數的增多和理髮師工作時間的延長,理髮師會逐漸產生疲勞,還要多花一些時間來清理環境和維持秩序,這些因素將最終導致理髮師的工作效率隨著顧客人數的增多和工作的延長而逐漸的下降,到最後可能要1.5小時甚至2個小時才能剪完1個發

進一步闡述最佳併發使用者數和最大併發使用者數

對於乙個確定的被測系統來說,在某個具體的軟硬體環境下,它的最佳併發使用者數和最大併發使用者數都是客觀存在

假設乙個系統的最佳併發使用者數是x,一旦併發量超過這個值,系統的吞吐量和響應時間必然會 此消彼長

如果系統負載長期大於這個數,必然會導致使用者的滿意度降低並最終達到一種無法忍受的地步

保證最佳併發使用者數要大於系統的平均負載

思考:

當需要對乙個系統長時間施加壓力(如7*24),驗證系統的可靠性或者說穩定性時,使用的併發使用者數應該等於或小於最佳併發使用者數,原因是?

超時時間限度這個時間限度**於效能需求

最大使用者數節點

不要把顧客因為無法忍受而離開時店內的顧客數量作為理髮店的最大併發使用者數,因為這位顧客是在3小時前到達的,也就是說3小時前理髮店內的顧客數量才是我們要找的最大併發使用者數

這位顧客的離開只是乙個開始,可能有會更多的顧客隨後也因為無法忍受超長的等待時間而離開

使用者容量

在響應時間還沒有到達使用者可忍受的最大限度前,有可能已經出現了使用者請求的失敗

以理髮店模型為例:

如果理髮店只能容納6位顧客,當7位顧客同時來到理髮店時,雖然所有顧客都能在可容忍的時間內剪完頭髮,但是因為理髮店容量有限,最終只好有一位顧客打道回府,改天再來

對於乙個系統來說,我們應該確保:

針對理髮店模型的擴充套件,如何將這些擴充套件與效能測試以及效能解決方案等方面關聯起來

有些理髮店的老顧客和理髮師非常熟悉,理髮師不用花費時間溝通就知道這位顧客的想法,並且理髮師對這位顧客的腦袋形狀等很熟悉,可以更快的完成一次理髮的工作

模擬於系統的快取

問題:

理髮店並不僅僅剪髮一種業務,還提供燙髮染髮等業務,隨著燙髮和染髮業務的增加,理髮師服務一位顧客的時間可能會超過標準的1小時,有些顧客的排隊時間會比原來預計的延長,並最終導致他們因無法忍受而離開

解決:

理髮師們決定分工,兩位專門剪髮,一位專門負責燙髮和染髮

理髮師們的分工就是在對伺服器處理不同請求的分工,b/s系統的乙個縮影

隨著使用者流量的提公升,提供功能的豐富,系統的整體架構需要發生相應的改變,以滿足使用者的需求

問題:

理髮店的生意越來越好,理髮師的數量和理髮店的門面已經無法滿足顧客的要求

解決:

理髮店老闆決定在旁邊再開一家店,並招聘一些工作能力更強的理髮師

乙個cpu相當於乙個理髮師,那麼乙個伺服器又有幾個cpu

當業務擴充套件的時候,需要增加cpu,再增長的時候需要增加伺服器

問題:

理髮店的生意變得極為火爆了,兩家店都無法滿足顧客數量增長的需求,並且有些顧客開始反映到理髮店的路途太遠,到了以後又因為燙髮和染髮的人太多而等太久

解決:

理髮店的老闆明白燙髮和染髮的收入要遠遠高於剪髮,於是決定繼續改變策略

在附近的幾個大型小區租用小的鋪面開設分店,專職剪髮業務

在市區的繁華路段開設***,專門為燙髮、染髮的顧客,以及vip顧客服務

增設800**,當顧客想要剪髮時撥打**,並由服務人員根據顧客居住地點,將其指引到距離最近的一家分店

業務達到一定的水準的時候分成專門的伺服器提供具體的服務

針對不同的使用者的效能需求將功能模組拆解

**相當於網域名稱解析伺服器,根據不同的提交服務轉到不同的伺服器

理髮店模型與效能測試

理髮店模型 理髮店共有3名理髮師 每位理髮師剪乙個發的時間都是1h 我們顧客們都是有時間觀念的人而且非常挑剔,他們對於每次光顧理髮店時所能容忍的等待時間 剪髮時間是3h,而且等待時間越長,顧客的滿意度越低。如果3h還不能剪完頭髮,我們的顧客會立馬生氣走人。想象場景 1.當理髮店內只有1位顧客時,只需...

兩個理髮店的思考

樓下有兩個理髮店 由近及遠,暫且命名為a和b。a與b之間大概有100公尺的距離。a比較新,空間相對較大,b開的時間久,空間也比較小,比較陳舊。由於我平時就理乙個平頭,感覺到 剪髮都差不多,所以,我一直選擇路程比較短,相對方便的a,而不會想著特意光顧b。到a店裡面,老闆會問,你要洗頭嗎?當我選擇不洗頭...

理髮店開店的合理性(第二題)

在 公共汽車停站問題 之後,再丟擲理髮店開店合理性問題,這是個論述題,大家可以各抒己見。我在清華大學生活過1年,裡面有一家理髮店很古老 以下簡稱老店 周邊的清華老師,學生都常去,也很公道,去年在這家理髮店的旁邊有個新老闆開了一家新店 以下簡稱新店 新店 比老店 貴1元錢,裝修無區別,新店地盤小,幾乎...