TPS與用戶數,事務相應時間關系

并發用戶數與TPS之間的關系

并發用戶數:指的是現實系統中操作業務的用戶,在性能測試工具中,一般稱為虛擬用戶數(Virutal User),注意并發用戶數跟注冊用戶數、在線用戶數有很大差別的,并發用戶數一定會對服務器產生壓力的,而在線用戶數只是 ”掛” 在系統上,對服務器不產生壓力,注冊用戶數一般指的是數據庫中存在的用戶數。

TPS:Transaction Per Second, 每秒事務數, 是衡量系統性能的一個非常重要的指標,

TPS和事務響應時間的關系

例子:一個高速路有10個入口,每個入口每秒鐘只能進1輛車

  1. 請問1秒鐘最多能進幾輛車?
    TPS=10

  2. 每輛車需要多長時間進行響應?
    reponse time = 1

  3. 改成20輛車,每秒能進幾輛?每輛車的響應時間是多長?
    TPS = 10,reponse time = 1

  4. 入口擴展到20個,每秒能進幾輛?每輛車的響應時間是多長?
    TPS = 20,reponse time = 1

  5. 看看,現在TPS變了,響應時間沒變,TPS和響應時間有關系嗎?
    沒關系

  6. 如何理解?
    TPS和響應時間在理想狀態下都是額定值,把入口看成線程池,如果有20個入口,并發數只有10的時候,TPS就是10,而響應時間始終是1,說明并發數不夠,需要增加并發數達到TPS的峰值。

  7. 同樣是20個入口,如果并發數變成100的話,TPS和響應時間會怎么樣呢?
    并發數到100的時候,就會出現堵車,堵車了平均每個車過去的時間就長了,把100個車按照20一份分成5份,第5份的等待時間就是最長的,從等待開始到這個車進去,實際花費了5秒,那100輛車都過去的響應時間就是(5+4+3+2+1)/5=3,平均的TPS就是(20/1+20/2+20/3+20/4+20/5)/5=8.89(我怎么感覺應該是100/(5+4+3+2+1)=6.67啊!)

  8. 由此可知,TPS和響應時間宏觀上是倒數關系,但是兩者實際上木有直接的關系的,在上例中,系統只存在20個線程,100的并發就會造成線程的等待,引起平均響應時間從1秒增加到3秒,TPS從20下降到9,TPS和響應時間都是單獨計算出來的,并不是互相算出來的!

  9. 同樣可知,在并發量保持不變的情況下,提高TPS的手段有幾種?
    A、增加線程池的數量(入口)
    B、降低每輛車入關的時間(也就是提高單個線程的處理效率)

  10. 從TPS和response time的定義查看這2者的區別?
    TPS = 在場景或者灰化步驟運行的每一秒鐘中,每個事務通過、失敗以及停止的次數.
    也就是說,TPS = 總的通過、失敗的事務總數/整個場景的運行時間;
    reponse time = 每個事務完成實際需要的時間/事務處理數目
    因此,這2個東西壓根就是木有關系的!

如何評估系統的性能是否穩定

一個正常的系統,在不斷加壓的過程,應該經歷下面五個階段:

? 第一階段:并發用戶逐漸增加,系統的TPS(每秒處理事務筆數)逐步增大,直到達到最大值,這一階段事務的響應時間不會有太大變化,會非常穩定;

? 第二階段:并發用戶繼續增加,TPS基本維持在最大值不變,但響應時間將會逐步變長。

? 第三階段:并發用戶繼續增加,TPS將會有少量下降(20%以內),但是決不能快速急劇下降,響應時間仍會逐步變長。
本階段可以拒絕服務,但是不能宕機。

? 第四階段:并發用戶逐步減小,系統處理能力開始得到恢復,TPS能夠逐步恢復到之前的最大值,響應時間開始變短;

? 第五階段:壓力逐步降為零,TPS繼續降低,響應時間繼續變快,所有占用的CPU/內存/IO資源得到釋放。

服務器運維與網站架構|Linux運維|X研究

http://www.ha97.com/5095.html

http://www.51testing.com/html/66/587566-855826.html

http://www.aliyun.com/product/pts

http://hitest.aliyun.com/front/share/searchShare.htm?spm=0.0.0.0.muWanp&catId=3

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容