一個每天1000萬PV的網站需要什么樣的性能去支撐呢?
繼續上一篇,下面我們就來計算一下,前面我們已經搞到了一票數據,但是這些數據的意義還沒有說。技術是為業務服務的,下面就來說說怎么讓些數據變得有意義。
一、聚合報告
初識聚合報告是不是有些眼熟,是的你沒看錯,他跟Apache AB的結果是類似的,事實上LoadRunner也會有一票這樣類似的數據。
下面分別說下各個數據的意義,其中標成紅色的是需要特別關注的。
1. #Samples:樣本數,如果你看過上一篇,這個就是前面我們那個公式算出來的結果
(Loop Count(Loop Controler)*Number of Threads*Loop Count(group))
(Loop Count(Loop Controler)*Number of Threads*Loop Count(group))
2. Average:平均響應時間。
3. Median:中位數,50%用戶響應時間。
4. %90 Line:90%用戶響應時間。
5. Min:最小響應時間。
6. Max:最大響應時間。
3. Median:中位數,50%用戶響應時間。
4. %90 Line:90%用戶響應時間。
5. Min:最小響應時間。
6. Max:最大響應時間。
7. Error%:本次測試中出現錯誤的請求的數量/請求的總數
8. Throughput:吞吐量,表示每秒完成的請求數。
9. KB/Sec:每秒從服務器端接收到的數據量(只是接收)。
下面說說幾個重點參數:
1.為什么說%90 Line重要呢?
1.為什么說%90 Line重要呢?
舉個栗子:姚明與郭敬明平均身高約1.84米能說明什么?如果這個例子不夠形象再想想我大天朝的平均工資。所以平均不代表公平,因為總有那么一小撮人會極大的影響平均值,而大多數人是被平均的。
通過JMeter官網我們能發現對這個參數的定義(
http://jmeter.apache.org/usermanual/glossary.html):
90% Line (90 th Percentile) is the value below which 90% of the samples fall. The remaining samples too at least as long as the value. This is a standard statistical measure. See, for example: Percentile entry at Wikipedia.
貌似這段話說的不明不白,但他給我提示了一個重要的詞Percentile,於是我們繼續跟進,原來這是一個統計術語。維基上有詳細說明,並有公式:
n=(100/P)*N+1/2
其中n=排序位;P=待排序值;N=總的排序值數量
這塊說的有點繞,看維基上的例子會比較清晰(
http://en.wikipedia.org/wiki/Percentile)。
說白了就是將一組數據從大到小排序,並計算相應的累計百分位,則某一百分位所對應數據的值就稱為這一百分位的百分位數。
2.Error%
這個不說了,大家都懂。
這個不說了,大家都懂。
3.Throughput
這又是個很重要的參數了,開頭提到的PV計算就跟這個數有關了。
計算公式見下圖,通過Throughput可以換算出PV,當然為了應付突發狀況還要留出一定的Buffer。
所以現在回到開頭的那個問題,理論上每秒231的事務數就可以(10000000*0.8)/(24*60*60*0.4),當然這只是理論上;-)
4.KB/Sec
這個不細說了,跟計算你的機房帶寬有關的。
二、圖形結果
這里比較重要的參數是偏離量。
偏離量,理論上是越小系統穩定的。但多少是小呢?所以這種說法是不准確的,“朝菌不知晦朔,蟪蛄不知春秋”,在不同的場景下對標准的定義也是不同的。
因為對正態分布和置信區間這塊我也不太懂,這里就不敢瞎說了。
三、結果樹
請求的執行狀態,這里略。
本文固定鏈接: http://www.chepoo.com/jmeter-stress-testing-and-concurrent-calculation-2.html | IT技術精華網

