QPS挎春、TPS、RT、并發(fā)數(shù)施禾、吞吐量理解和性能優(yōu)化深入思考

吞吐量

在了解qps、tps弥搞、rt、并發(fā)數(shù)之前攀例,首先我們應(yīng)該明確一個系統(tǒng)的吞吐量到底代表什么含義,一般來說粤铭,系統(tǒng)吞吐量指的是系統(tǒng)的抗壓、負(fù)載能力酱鸭,代表一個系統(tǒng)每秒鐘能承受的最大用戶訪問量。

一個系統(tǒng)的吞吐量通常由qps(tps)凹髓、并發(fā)數(shù)來決定怯屉,每個系統(tǒng)對這兩個值都有一個相對極限值蔚舀,只要某一項達(dá)到最大值锨络,系統(tǒng)的吞吐量就上不去了。

QPS

Queries Per Second足删,每秒查詢數(shù),即是每秒能夠響應(yīng)的查詢次數(shù)失受,注意這里的查詢是指用戶發(fā)出請求到服務(wù)器做出響應(yīng)成功的次數(shù)咏瑟,簡單理解可以認(rèn)為查詢=請求request痪署。

qps=每秒鐘request數(shù)量

TPS

Transactions Per Second 的縮寫,每秒處理的事務(wù)數(shù)狼犯。一個事務(wù)是指一個客戶機(jī)向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程∶跎客戶機(jī)在發(fā)送請求時開始計時,收到服務(wù)器響應(yīng)后結(jié)束計時瓢姻,以此來計算使用的時間和完成的事務(wù)個數(shù)。

針對單接口而言绎狭,TPS可以認(rèn)為是等價于QPS的,比如訪問一個頁面/index.html儡嘶,是一個TPS扭弧,而訪問/index.html頁面可能請求了3次服務(wù)器比如css壹若、js府瞄、index接口符喝,產(chǎn)生了3個QPS兄世。

tps=每秒鐘事務(wù)數(shù)量

RT

Response Time縮寫啼辣,簡單理解為系統(tǒng)從輸入到輸出的時間間隔御滩,寬泛的來說,他代表從客戶端發(fā)起請求到服務(wù)端接受到請求并響應(yīng)所有數(shù)據(jù)的時間差削解。一般取平均響應(yīng)時間

并發(fā)數(shù)

簡而言之氛驮,系統(tǒng)能同時處理的請求/事務(wù)數(shù)量。

計算方式

QPS=并發(fā)數(shù)/RT 或者 并發(fā)數(shù)=QPS*RT

舉個栗子:

假設(shè)公司每天早上9點到10點1個小時內(nèi)都有員工要上廁所盏缤,公司有3600個員工砰蠢,平均每個員工上廁所時間為10分鐘唉铜,我們來計算一下。

QPS ? ?= 3600/60*60 ? 1

RT ? ? ?= 10*60 ? ? ? ? ? ?600秒

并發(fā)數(shù) = 1 * 600 ? ? ? ? ?600

這樣就意味著如果想達(dá)到最好的蹲坑體驗潭流,公司需要600個坑位來滿足員工需求,否則的話上廁所就要排隊等待了拆宛。

性能思考

按照QPS=并發(fā)數(shù)/RT公式,假設(shè)我們現(xiàn)在是單線程的場景胰挑,那么QPS公式應(yīng)該是這樣:QPS=1/RT椿肩,實際上RT應(yīng)該=CPU time + CPU wait time,如果將線程數(shù)提高到2郑象,那么QPS=2/(CPU time + CPU wait time),那么是否意味著我們只要單純提高線程數(shù)就能提高QPS呢厂榛?

最佳線程數(shù)計算

假設(shè)CPU time是49ms丽惭,CPU wait time是200ms击奶,那么QPS=1000ms/249ms=4.01责掏,這里200ms的wait時間我們可以認(rèn)為CPU一直處于等待狀態(tài)啥也沒干,理論上來說200ms還可以接受200/49≈4個請求换衬,不考慮上下文切換和其他開銷的話,可以認(rèn)為總線程數(shù)=(200+49)/49=5担映,如果再考慮上CPU多核和利用率的問題,我們大致可以認(rèn)為:最佳線程數(shù)=RT/CPU Time * CPU核心數(shù) * CPU利用率

那么最大QPS公式推導(dǎo)為:

最大QPS=最佳線程數(shù)*單線程QPS=(RT/CPU Time * CPU核心數(shù) * CPU利用率)*(1/RT) = CPU核心數(shù)*CPU利用率/CPU time

那么這樣是否意味著我們只要不停增加CPU核心數(shù)就能無限提高QPS呢

阿姆達(dá)爾定律Amdahl

G.M.Amdahl在1967年提出了Amdahl’s law蝇完,針對并行處理的scalability給出了一個模型,指出使用并行處理的提速由問題的可并行的部分所決定短蜕。我們可以簡單理解為程序通過額外的計算資源,理論上能獲得的加速值忿危。

par為并行計算所占的比例,p為并行處理節(jié)點個數(shù)

假設(shè)你想從望京去順義铺厨,坐一輛車需要3小時,雖然現(xiàn)在有3輛車赃磨,你也不能1小時就到。這里無法并行邻辉,所有Par=0%,p=3值骇,加速比還是等于1移国,并沒有提高速度吱瘩。

古斯塔夫森定律Gustafson

斯塔夫森定律又被稱為擴(kuò)展的加速比(scaled speedup)迹缀,他說明處理器個數(shù)、串行比例和加速比之間的關(guān)系祝懂,只是和阿姆達(dá)爾定律側(cè)重角度有所不同。

按照阿姆達(dá)爾定律和QPS計算公式砚蓬,在CPUtime 和 CPU利用率不變的情況下,增加CPU核心數(shù)就能增加最大QPS颅和,在par不為0即并行的時候,增加并行數(shù)量p就能提升效率峡扩,但是實際上隨著請求數(shù)量的增加障本,帶來大量的上下文的切換教届、gc和鎖變化。qps更高案训,產(chǎn)生對象越多,gc越頻繁忿项,cpu time和利用率都受到影響,尤其在串行的時候轩触,鎖自旋家夺、自適應(yīng)脱柱、偏向等等也成為影響par的因素拉馋。

總結(jié),為了提升達(dá)到最好的性能煌茴,我們需要不斷的進(jìn)行性能測試,調(diào)整小城池大小蔓腐,找到最合適的參數(shù)來達(dá)到提高性能的目的。

參考:

http://javahao123.com/?p=772

https://cloud.tencent.com/developer/article/1106559

https://www.cnblogs.com/caishunzhe/p/13056105.html

http://www.reibang.com/p/8532ac88ce72

https://zhuanlan.zhihu.com/p/66929848

https://www.cnblogs.com/lupeng2010/p/12705795.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撒璧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僚害,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萨蚕,死亡現(xiàn)場離奇詭異蹄胰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)裕寨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門派继,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捻艳,“玉大人,你說我怎么就攤上這事认轨。” “怎么了嘁字?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長假栓。 經(jīng)常有香客問我,道長匾荆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任牙丽,我火速辦了婚禮兔魂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘析校。我一直安慰自己,他們只是感情好智玻,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盖彭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪召边。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天隧熙,我揣著相機(jī)與錄音幻林,去河邊找鬼贱鼻。 笑死,一個胖子當(dāng)著我的面吹牛邻悬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肝谭,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛾扇,長吁一口氣:“原來是場噩夢啊……” “哼攘烛!你這毒婦竟也來了镀首?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤芋齿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后觅捆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡栅炒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年术羔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片级历。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趋观,到底是詐尸還是另有隱情,我是刑警寧澤皱坛,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站剩辟,受9級特大地震影響往扔,放射性物質(zhì)發(fā)生泄漏熊户。R本人自食惡果不足惜萍膛,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一嚷堡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝌戒,春花似錦、人聲如沸北苟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屋匕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間过吻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工纤虽, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留绞惦,地道東北人逼纸。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓济蝉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親王滤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359