TPS與用戶數(shù),事務(wù)相應(yīng)時(shí)間關(guān)系

并發(fā)用戶數(shù)與TPS之間的關(guān)系

并發(fā)用戶數(shù):指的是現(xiàn)實(shí)系統(tǒng)中操作業(yè)務(wù)的用戶,在性能測(cè)試工具中,一般稱為虛擬用戶數(shù)(Virutal User),注意并發(fā)用戶數(shù)跟注冊(cè)用戶數(shù)、在線用戶數(shù)有很大差別的,并發(fā)用戶數(shù)一定會(huì)對(duì)服務(wù)器產(chǎn)生壓力的,而在線用戶數(shù)只是 ”掛” 在系統(tǒng)上,對(duì)服務(wù)器不產(chǎn)生壓力,注冊(cè)用戶數(shù)一般指的是數(shù)據(jù)庫(kù)中存在的用戶數(shù)。

TPS:Transaction Per Second, 每秒事務(wù)數(shù), 是衡量系統(tǒng)性能的一個(gè)非常重要的指標(biāo),

TPS和事務(wù)響應(yīng)時(shí)間的關(guān)系

例子:一個(gè)高速路有10個(gè)入口,每個(gè)入口每秒鐘只能進(jìn)1輛車(chē)

  1. 請(qǐng)問(wèn)1秒鐘最多能進(jìn)幾輛車(chē)?
    TPS=10

  2. 每輛車(chē)需要多長(zhǎng)時(shí)間進(jìn)行響應(yīng)?
    reponse time = 1

  3. 改成20輛車(chē),每秒能進(jìn)幾輛?每輛車(chē)的響應(yīng)時(shí)間是多長(zhǎng)?
    TPS = 10,reponse time = 1

  4. 入口擴(kuò)展到20個(gè),每秒能進(jìn)幾輛?每輛車(chē)的響應(yīng)時(shí)間是多長(zhǎng)?
    TPS = 20,reponse time = 1

  5. 看看,現(xiàn)在TPS變了,響應(yīng)時(shí)間沒(méi)變,TPS和響應(yīng)時(shí)間有關(guān)系嗎?
    沒(méi)關(guān)系

  6. 如何理解?
    TPS和響應(yīng)時(shí)間在理想狀態(tài)下都是額定值,把入口看成線程池,如果有20個(gè)入口,并發(fā)數(shù)只有10的時(shí)候,TPS就是10,而響應(yīng)時(shí)間始終是1,說(shuō)明并發(fā)數(shù)不夠,需要增加并發(fā)數(shù)達(dá)到TPS的峰值。

  7. 同樣是20個(gè)入口,如果并發(fā)數(shù)變成100的話,TPS和響應(yīng)時(shí)間會(huì)怎么樣呢?
    并發(fā)數(shù)到100的時(shí)候,就會(huì)出現(xiàn)堵車(chē),堵車(chē)了平均每個(gè)車(chē)過(guò)去的時(shí)間就長(zhǎng)了,把100個(gè)車(chē)按照20一份分成5份,第5份的等待時(shí)間就是最長(zhǎng)的,從等待開(kāi)始到這個(gè)車(chē)進(jìn)去,實(shí)際花費(fèi)了5秒,那100輛車(chē)都過(guò)去的響應(yīng)時(shí)間就是(5+4+3+2+1)/5=3,平均的TPS就是(20/1+20/2+20/3+20/4+20/5)/5=8.89(我怎么感覺(jué)應(yīng)該是100/(5+4+3+2+1)=6.67?。。?/p>

  8. 由此可知,TPS和響應(yīng)時(shí)間宏觀上是倒數(shù)關(guān)系,但是兩者實(shí)際上木有直接的關(guān)系的,在上例中,系統(tǒng)只存在20個(gè)線程,100的并發(fā)就會(huì)造成線程的等待,引起平均響應(yīng)時(shí)間從1秒增加到3秒,TPS從20下降到9,TPS和響應(yīng)時(shí)間都是單獨(dú)計(jì)算出來(lái)的,并不是互相算出來(lái)的!

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

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

如何評(píng)估系統(tǒng)的性能是否穩(wěn)定

一個(gè)正常的系統(tǒng),在不斷加壓的過(guò)程,應(yīng)該經(jīng)歷下面五個(gè)階段:

? 第一階段:并發(fā)用戶逐漸增加,系統(tǒng)的TPS(每秒處理事務(wù)筆數(shù))逐步增大,直到達(dá)到最大值,這一階段事務(wù)的響應(yīng)時(shí)間不會(huì)有太大變化,會(huì)非常穩(wěn)定;

? 第二階段:并發(fā)用戶繼續(xù)增加,TPS基本維持在最大值不變,但響應(yīng)時(shí)間將會(huì)逐步變長(zhǎng)。

? 第三階段:并發(fā)用戶繼續(xù)增加,TPS將會(huì)有少量下降(20%以內(nèi)),但是決不能快速急劇下降,響應(yīng)時(shí)間仍會(huì)逐步變長(zhǎng)。
本階段可以拒絕服務(wù),但是不能宕機(jī)。

? 第四階段:并發(fā)用戶逐步減小,系統(tǒng)處理能力開(kāi)始得到恢復(fù),TPS能夠逐步恢復(fù)到之前的最大值,響應(yīng)時(shí)間開(kāi)始變短;

? 第五階段:壓力逐步降為零,TPS繼續(xù)降低,響應(yīng)時(shí)間繼續(xù)變快,所有占用的CPU/內(nèi)存/IO資源得到釋放。

服務(wù)器運(yùn)維與網(wǎng)站架構(gòu)|Linux運(yùn)維|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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容