網站性能測試PV到TPS的轉換以及TPS的波動

性能測試的難點不在於測,在於測出的數據和實際的對照關係,以及測試出來的數據對性能的評估(究竟是好,仍是很差)。數據庫

 

淘寶性能測試白皮書,解決了個人4個問題:一、PV到TPS的轉換關係。二、TPS的波動標準。三、壓力變化以及測試類型。四、網頁測試的標準(惋惜不少數據都抹掉了)安全

 

一、PV到TPS的轉換服務器

    日PV對於一個網站,很容易就統計出來,可是LoadRunner性能測試時,只有TPS可供參考。日PV和TPS之間如何對應?公式就是80%的日PV,發生在T小時內。則公式爲:網絡

    TPS =  日PV * 80% / 24 * 60 * 60 * (T/24)架構

    定義 R = 1萬 * 80% / 24 * 60 * 60 * (T/24)  = 10000 * 24 * 0.8 / 24 * 3600 * T = 2.2222/Tide

    TPS = 日PV(萬) * R 這裏的TPS就是平均的TPS。性能

    能夠T的值代入,則求出R的值便可測試

    T      6             8             10            12優化

    R      0.3704    0.2778    0.2222     0.1852網站

10w     3.704      2.778      2.222       1.852

100w   37.04      27.78      22.22       18.52

1000w 370.4      277.8      222.2       185.2

1億       3704       2778       2222        1852

關於TPS 我再多說兩句,單就靜態頁面,TPS大概能到1W+,簡單數據庫操做大概2K+的樣子,用Cache大概能到5K+。

 

    峯值的TPS,能夠從圖中看出來。

 

二、TPS的波動標準

TPS應該是一個比較平穩的曲線,而不是上下波動

TPS波動範圍 = TPS標準差/TPS平均值 * 100%

在5%內算是正常的

 

三、測試壓力變化

pdf中的圖1-8
a點:性能指望值
b點:高於指望,系統資源處於臨界點
c點:高於指望,拐點
d點:超過負載,系統崩潰

 

性能測試 
a點到b點之間的系統性能
定義:狹義的性能測試,是指以性能預期目標爲前提,對系統不斷施加壓力,驗證系統在資源可接受範圍內,是否能達到性能預期。

 

負載測試
b點的系統性能
定義:狹義的負載測試,是指對系統不斷地增長壓力或增長必定壓力下的持續時間,直到系統的某項或多項性能指標達到極限,例如某種資源已經達到飽和狀態等。

壓力測試
b點到d點之間
定義:狹義的壓力測試,是指超過安全負載的狀況下,對系統不斷施加壓力,是經過肯定一個系統的瓶頸或不能接收用戶請求的性能點,來得到系統能提供的最大服務級別的測試。


穩定性測試
a點到b點之間
定義:狹義的穩定性測試,是指被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載必定業務壓力,使系統運行一段較長時間,以此檢測系統是否穩定,通常穩定性測試時間爲n*12小時。

 

 

四、網站測試標準

 

 

 

==========================================================================

性能相關的系列文章:

LoadRunner利用ODBC編寫MySql腳本 
LoadRunner壓力測試時監控服務器Linux的資源狀況 
壓力測試衡量CPU的三個指標:CPU Utilization、Load Average和Context Switch Rate 
高性能服務器架構(High-Performance Server Architecture) 
網站性能測試PV到TPS的轉換以及TPS的波動 
用GTmetrix來優化你的網頁(集成了YSlow、FireBug的功能)

 

Q&A

 

由於CSDN評論不知道爲何無法用了,因此貼在這裏吧

 

Q:yxt168118 可否請做者將TPS的T,在測試腳本中,怎麼定義說明一下?我是將某個關鍵操做定義爲一個事務(T),這樣測試出來的TPS很難達到10。

 

A:回覆 yxt168118:定義T transaction 事務,是根據測試目的來決定的,若是是性能測試,T定義爲一次請求,若是是可用性測試,T定義爲整個頁面的加載,主要看響應時間用戶是否能接受。TPS高低和操做的複雜程度、以及後臺擴展、以及T的定義是相關的。通常,單次的請求,單臺機器,百數量級上是正常的。另外,在一次請求中,不要每次都去初始化一些好比用戶等數據,若是有不少的數據庫操做,TPS也會低一些,若是達不到10,還須要優化,好比看看數據庫方面是否有優化的空間,好比索引。

相關文章
相關標籤/搜索