www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]吞吐量 在了解qps、tps、rt、并發(fā)數之前,首先我們應該明確一個系統(tǒng)的吞吐量到底代表什么含義,一般來說,系統(tǒng)吞吐量指的是系統(tǒng)的抗壓、負載能力,代表一個系統(tǒng)每秒鐘能承受的最大用戶訪問量。 一個系統(tǒng)的吞吐量通常由qps(tps)、并發(fā)數來決定,每個系統(tǒng)對這

吞吐量

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

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


QPS

Queries Per Second,每秒查詢數,即是每秒能夠響應的查詢次數,注意這里的查詢是指用戶發(fā)出請求到服務器做出響應成功的次數,簡單理解可以認為查詢=請求request。


qps=每秒鐘request數量

TPS

Transactions Per Second 的縮寫,每秒處理的事務數。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程??蛻魴C在發(fā)送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數。

針對單接口而言,TPS可以認為是等價于QPS的,比如訪問一個頁面/index.html,是一個TPS,而訪問/index.html頁面可能請求了3次服務器比如css、js、index接口,產生了3個QPS。


tps=每秒鐘事務數量

RT

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


并發(fā)數

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


計算方式

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

舉個栗子:

假設公司每天早上9點到10點1個小時內都有員工要上廁所,公司有3600個員工,平均每個員工上廁所時間為10分鐘,我們來計算一下。

QPS    = 3600/(60*60)   1

RT      = 10*60            600秒

并發(fā)數 = 1 * 600          600

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


性能思考

按照QPS=并發(fā)數/RT公式,假設我們現在是單線程的場景,那么QPS公式應該是這樣:QPS=1/RT,實際上RT應該=CPU time + CPU wait time,如果將線程數提高到2,那么QPS=2/(CPU time + CPU wait time),那么是否意味著我們只要單純提高線程數就能提高QPS呢?



最佳線程數計算

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



那么最大QPS公式推導為:

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


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



阿姆達爾定律Amdahl

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

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


假設你想從望京去順義,坐一輛車需要3小時,雖然現在有3輛車,你也不能1小時就到。這里無法并行,所有Par=0%,p=3,加速比還是等于1,并沒有提高速度。



古斯塔夫森定律Gustafson

斯塔夫森定律又被稱為擴展的加速比(scaled speedup),他說明處理器個數、串行比例和加速比之間的關系,只是和阿姆達爾定律側重角度有所不同。


按照阿姆達爾定律和QPS計算公式,在CPUtime 和 CPU利用率不變的情況下,增加CPU核心數就能增加最大QPS,在par不為0即并行的時候,增加并行數量p就能提升效率,但是實際上隨著請求數量的增加,帶來大量的上下文的切換、gc和鎖變化。qps更高,產生對象越多,gc越頻繁,cpu time和利用率都受到影響,尤其在串行的時候,鎖自旋、自適應、偏向等等也成為影響par的因素。


總結,為了提升達到最好的性能,我們需要不斷的進行性能測試,調整小城池大小,找到最合適的參數來達到提高性能的目的。



參考:

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

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

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

https://www.jianshu.com/p/8532ac88ce72

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

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


特別推薦一個分享架構+算法的優(yōu)質內容,還沒關注的小伙伴,可以長按關注一下:

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

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

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

長按訂閱更多精彩▼

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

如有收獲,點個在看,誠摯感謝

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉
關閉