性能優(yōu)化那些事之一,TPS和延時

今年很重要的一項工作是交易系統(tǒng)的性能優(yōu)化,做多了各種橫向的業(yè)務(wù)擴展的項目,能有機會做一個性能優(yōu)化的項目,而且挑戰(zhàn)很大,還是有點小期待的。問題來了,怎么樣才能算這個性能優(yōu)化的項目執(zhí)行成功了呢?需要可度量的指標,對交易系統(tǒng)而言,TPS和延時是大家常常討論的兩個指標,但是真的能把這兩個指標解釋清楚,特別是能把兩者間的關(guān)系說清楚的人,好像還真不多。如果把這兩者的關(guān)系想明白了,其實性能優(yōu)化的思路也就容易理解了。

一、TPS(Transactions Per Second) 事務(wù)數(shù)/秒
TPS是軟件測試結(jié)果的測量單位,一個事務(wù)是指一個客戶機向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程??蛻魴C在發(fā)送請時開始計時,收到服務(wù)器響應(yīng)后結(jié)束計時,以此來計算使用的時間和完成的事務(wù)個數(shù)。對交易系統(tǒng)而言,一般我們說每秒能處理多少個訂單,那對應(yīng)的就是TPS。

二、延時,也叫響應(yīng)時間RT(Response Time)
延時是一個交易系統(tǒng)最重要的指標之一,它的數(shù)值大小直接反應(yīng)了系統(tǒng)的快慢。響應(yīng)時間是指執(zhí)行一個請求從開始到最后收到響應(yīng)數(shù)據(jù)所花費的總體時間,即從客戶端發(fā)起請求到收到服務(wù)器響應(yīng)結(jié)果的時間?,F(xiàn)在很多投資者開始做算法交易了,大家也越來越關(guān)心延時的指標了,時間就是金錢啊。

三、TPS和延時的關(guān)系
如果系統(tǒng)內(nèi)部就是一個單模塊,完全沒有并發(fā),那么TPS和延時的關(guān)系很簡單,就是“TPS=1/延時”的關(guān)系。但是隨著CPU處理性能的不斷提升,流水線技術(shù)使得處理器可以同時執(zhí)行多條指令;并行技術(shù)使得處理器可以同時執(zhí)行多個任務(wù),為上層應(yīng)用的優(yōu)化提供了更多的可能性。TPS和延時的關(guān)系就更加復(fù)雜了。

四、流水線和并行化對TPS的影響
流水線的TPS看這張圖比較容易理解,這里要注意的是段的劃分,每個段都是一個可獨立運轉(zhuǎn)的單元,多個段可以并行的工作。


TPS.jpg

上圖是一個理想場景,每一段的執(zhí)行時間相等,均為△t,那么k個△t完成第一個任務(wù),即k*△t為裝入時間,其余n-1個任務(wù),每個△t完成一個任務(wù),考慮到交易系統(tǒng)的性能都是很高的,一般是萬級以上的,而k相對于TPS來說往往可以忽略不計,可以看成TPS = n/(n+k-1)△t = 1/△t
有了上面這張圖,稍微擴展一下不難理解,如果每一段的執(zhí)行時間不一致,那么TPS =1/△tmax
再擴展一下,如果執(zhí)行時間最長的一段是可以m個單元并行處理的,那么可以認為這一段的延時就下降為△t/m,那么這是的TPS就是取決于下一個瓶頸單元了。

所以,如果要提升系統(tǒng)的TPS,就是要優(yōu)化最長段的執(zhí)行時間!

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

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