TPS究竟如何計算

2021-09-29 13:32:31 字數 1190 閱讀 9098

tps,即transaction per second,每秒事務數。是衡量系統效能的乙個非常重要的指標。

每當**有活動時,特別是秒殺類活動,我們都需要預估一下系統效能,其中就有tps。

然而tps的估算方式可謂眾說紛紜,許多相關概念也都夾纏不清。

所以今天,我們就來好好理一理。

對於併發使用者數,這裡還有個概念需要澄清。即併發使用者數並不等於系統併發數

假設有10萬使用者,如果他們都約好了,在同一時刻訪問乙個介面,那麼我們才能說這個介面有10萬併發數。

而真是情況下,這10萬使用者是在某段時間內,比如1分鐘,陸續來訪問的。所以系統併發數一般都是小於併發使用者數的。(所以秒殺的可怕之處就在於,這10萬使用者真的是約好了同一時刻來訪問…)

先舉乙個例子:

乙個高速公路有10個入口,每個入口每秒鐘只能通過一輛車。

1、請問1秒鐘最多能進幾輛車?

答:1秒鐘最多10輛,所以tps=10

2、每輛車需要多長時間進行響應?

答:1秒鐘,所以響應時間是1秒鐘

3、如果有50輛車過來,tps和響應時間是多少?

答:假設這50輛車排成5排過來,每排10輛。那麼第一排的響應時間是1秒,第二排要等第一排過去了才輪到他,所以第二排的響應時間是2秒,以此類推, 平均響應時間是(1+2+3+4+5)/5=3秒。這50輛車在5秒內全部通過,所以平均tps就是50/5=10tps。

4、如何提高tps?

如果經過流程優化,使得0.5秒就能通過一輛車,那麼tps就提高到了10/0.5=20了。

或者通過時間不變,把入口擴寬到20個,那麼tps也提高到20了。

所以你看,經驗公式就是tps=入口數/通過路口的時間。換成it術語,就是tps=連線數/響應時間。

理清了上面那些概念,我們嘗試來估算乙個秒殺活動tps。

假設**有100萬註冊使用者,其中有10萬使用者有資格參加秒殺。我們就當這10萬人到時候都來參加活動,那麼併發使用者數就是10萬。

假設這10萬使用者會在10秒鐘內嘗試3次,那麼tps就是100000*3/10=30000tps

介面響應時間我們定乙個經驗值200毫秒,那麼併發連線數等於30000*0.2=6000。

一般來講,併發連線數並不會成為瓶頸,但是在高併發時,伺服器的的處理效能會嚴重下降。至於怎樣抗住高併發,請見我的另一篇文章(還沒寫…)。

揭秘微軟究竟如何為Windows改進PHP?

2009年09月07日 16 35 it168.com 文字tag php windows 7 it168 專稿 微軟示愛開源社群已經不是一件新鮮事,最近的乙個證明是,微軟正在努力讓php可以更好的執行在windows上,微軟開源社群主管garrett serack最近接受了 採訪,談論了微軟為實現...

Qookeeper集群選主機制究竟如何實現

zookeeper作為分布式協調工具,具有很廣泛的應用,zookeeper集群選主機制究竟如何實現?下面來進行分析。在zookeeper集群中,主要分為三者角色,而每乙個節點同時只能扮演一種角色,這三種角色分別是 1 leader 接受所有follower的提案請求並統一協調發起提案的投票,負責與所...

奈米技術淨化室內環境前景究竟如何?

由於奈米粒子體積極小,特別適合作為 催化劑 catalyst 尤其是近年來新發現的 光催化作用 使 光觸媒 photocatalyst 淨化室內的奈米產品倍受人們的關注。今年3 月12日,在兩會期間,有代表提交議案,為室內環境汙染防空立法,該議案已經被大會議案組接納 請見 兩會室內環保新聞 代表提交...