吞吐量
吞吐量是什么?一般吞吐量是指系統(tǒng)的抗壓能力舅锄,負載能力鞭达,代表系統(tǒng)每秒能承受的最大訪問量。一個系統(tǒng)的吞吐量通常由系統(tǒng)的qps(tps)皇忿、并發(fā)數(shù)來決定畴蹭。這兩個值都有一個相對極限值,只要某一項達到最大鳍烁,系統(tǒng)的吞吐量就上不去叨襟。
QPS
QPS:Queries Per Second(每秒查詢數(shù)),就是每秒響應成功的次數(shù)(即用戶從客戶端發(fā)出請求到服務端響應成功的次數(shù))幔荒。
qps = request數(shù)量 / s
TPS
TPS: Transactions Per Second(每秒事務處理數(shù))糊闽,就是從客戶端發(fā)出請求,到收到服務端響應成功處理的事務數(shù)爹梁∮矣蹋客戶端從發(fā)送請求開始倒計時,收到服務端響應結(jié)束倒計時姚垃,以此來計算使用的時間和處理的事務數(shù)念链。
如果1秒訪問一個頁面,在請求這個頁面接口的中間积糯,這個接口沒有再請求其他的接口掂墓,可以認為TPS和QPS是等價的,但是如果在請求這個接口的過程中絮宁,這個接口請求了其他接口梆暮,也就是請求了多次服務端,比如說一共請求了三次服務端绍昂,那QPS就是3啦粹,但是TPS 卻是1。
tps = 每秒鐘事務數(shù)量
RT
RT:response time(響應時間)窘游,指從客戶端發(fā)起請求到服務端接收請求并成功返回的時間差唠椭,一般取平均響應時間。
并發(fā)數(shù)
并發(fā)數(shù) = QPS * 平均響應時間
QPS = 并發(fā)數(shù) / 平均響應時間
性能優(yōu)化思考
我們參考公式QPS = 并發(fā)數(shù) / RT忍饰,在單線程情況下贪嫂,就是QPS = 1 / RT,假如RT是200ms艾蓝,QPS就是5力崇。那么我們只要提高線程數(shù)斗塘,就可以提高系統(tǒng)性能。
最佳線程數(shù)計算
實際上RT = cpu time(CPU執(zhí)行時間) + cpu wait_time (CPU等待時間)亮靴;按照上邊的假如RT是200ms馍盟,其中cpu time是100ms,cpu wait_time是100ms茧吊;不考慮上下文切換的時間贞岭,理論上RT是可以處理2個請求。如果在考慮上CPU多核利用率搓侄,
最佳線程數(shù)=RT / cpu_time * cpu核數(shù) * cpu利用率瞄桨。