深入理解TPS、響應時間、並發量


TPS 和 QPS

TPS:Transaction Per Second, 每秒事務數, 是衡量系統性能的一個非常重要的指標。

具體事務的定義,都是人為的,可以一個接口、多個接口、一個業務流程等等。一個事務是指事務內第一個請求發送到接收到最后一個請求的響應的過程,以此來計算使用的時間和完成的事務個數。

以單接口定義為事務為例,每個事務包括了如下3個過程:

  a.向服務器發請求

  b.服務器自己的內部處理(包含應用服務器、數據庫服務器等)

  c.服務器返回結果給客戶端

  如果每秒能夠完成N次這三個過程,tps就是N;

如果多個接口定義為一個事務,那么,會重復執行abc,完成一次這幾個請求,算做一個tps。

簡單例子:在術語中解釋了TPS是每秒事務數,但是事務時要靠虛擬用戶做出來的,假如1個虛擬用戶在1秒 內完成1筆事務,那么TPS明顯就是1;如果某筆業務響應時間是1ms,那么1個用戶在1秒內能完成1000筆事務,TPS就是1000了;如果某筆業務 響應時間是1s,那么1個用戶在1秒內只能完成1筆事務,要想達到1000TPS,至少需要1000個用戶;因此可以說1個用戶可以產生 1000TPS,1000個用戶也可以產生1000TPS,無非是看響應時間快慢。

QPS:Queries Per Second,意思是每秒查詢率,是一台服務器每秒能夠響應的查詢次數(數據庫中的每秒執行查詢sql的次數),顯然,這個不夠全面,不能描述增刪改,所以,不建議用qps來作為系統性能指標。

TPS(Transaction per Second)作用:

反映了系統在同一時間內處理業務的最大能力,這個數據越高,說明處理能力越強,描述(看到系統的TPS隨着時間的變化逐漸變大,而在不到多少分鍾的時候系統
  每秒可以處理多少個事物。這里的最高值並不一定代表系統的最大處理能力,TPS會受到負載的影響,也會隨着負載增加而逐漸增加,當系統進入繁忙期后,TPS會有所下降。)
  而在幾分鍾以后開始出現少量的失敗事物)。

TPS是從客戶端角度審視服務器處理能力,不能證明TPS可以達到什么程度就能支持多少並發,兩者沒有必然聯系。
TPS會受到負載的影響,也會隨着負載的增加而逐漸增加,當系統進入繁忙期后,TPS會有所下降。

QPS(TPS),並發數、響應時間它們三者之間的關系是:

QPS(TPS)= 並發數/平均響應時間。

 如何獲取Vu和TPS

並發用戶數(Vu)獲取

新系統:沒有歷史數據作參考,只能通過業務部門進行評估。

舊系統:對於已經上線的系統,可以選取高峰時刻,在一定時間內使用系統的人數,這些人數認為屬於在線用戶數,並發用戶數取10%就可以了,例如在半個小時內,使用系統的用戶數為10000,那么取10%作為並發用戶數基本就夠了。

TPS獲取

新系統:沒有歷史數據作參考,只能通過業務部門進行評估。

舊系統:對於已經上線的系統,可以選取高峰時刻,在5分鍾或10分鍾內,獲取系統每筆交易的業務量和總業務量,按照單位時間內完成的筆數計算出TPS,即業務筆數/單位時間(5*60或10*60)

如何評價系統的性能

針對服務器端的性能,以TPS為主,並發用戶數為輔來衡量系統的性能。

如果必須要用並發用戶數來衡量的話,需要一個前提,那就是事務在多長時間內完成。

因為在系統負載不高的情況下,並發用戶數可以一直增加,響應時間不變,負載過大時,並發用戶數增加,響應時間增大。

因此用並發用戶 數來衡量系統的性能沒太大的意義。

 並發數、QPS、平均響應時間三者之間關系圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM