在做系統設計時,架構師希望建立一套高效能的系統,而吞吐量(tps)則作為衡量系統效能的重要指標。在做效能測試的時候,測試人員需要了解系統併發使用者數、系統吞吐量、以及響應時間等,下面就按照這幾者之間的關係簡單整理如下。
其中c是平均的併發使用者數,n是平均每天訪問使用者數(login session),l是一天內使用者從登入到退出的平均時間(login session的平均時間),t是考察時間長度(一天內多長時間有使用者使用系統)
其中c1是併發使用者峰值,c是平均併發使用者數,sqr(c)代表c的平方根。
示例:假設有乙個oa系統,該系統有3000個使用者,平均每天大約有400個使用者要訪問該系統,對乙個典型使用者來說,一天之內使用者從登入到退出該系統的平均時間為4個小時,在一天的時間內,使用者只在8小時內使用該系統。
則根據公式1和公式2,可以得到:
c = 400 * 4 / 8 = 200
c1 = 200 + 3 * sqr(200) = 242
示例:乙個典型的上班簽到系統,早上8點上班,7點半到8點的30分鐘的時間裡使用者會登入簽到系統進行簽到。公司員工為1000人,平均每個員上登入簽到系統的時長為5分鐘。可以用下面的方法計算。
qps = 1000/(30*60) 事務/秒
平均響應時間為 = 5*60 秒
併發數= qps*平均響應時間 = 1000/(30*60) *(5*60) = 166.7
vu和tps換算舉例說明
tps是每秒事務數,但是事務是要靠虛擬使用者run出來的,假如1個虛擬使用者在1秒內完成1筆事務,那麼tps明顯就是1;如果某筆業務響應時間是1ms,那麼1個使用者在1秒內能完成1000筆事務,tps就是1000了;如果某筆業務響應時間是1s,那麼1個使用者在1秒內只能完成1筆事務,要想達到1000的tps,至少需要1000個使用者;因此可以說1個使用者可以產生1000tps,1000個使用者也可以產生1000tps,主要是看響應時間快慢。
4、如何獲取vu和tps
新系統:沒有歷史資料作參考,只能通過業務部門進行評估。
舊系統:對於已經上線的系統,可以選取高峰時刻,在5分鐘或10分鐘內,獲取系統每筆交易的業務量和總業務量,按照單位時間內完成的筆數計算出tps,即業務筆數/單位時間(5*60或10*60)
因此對於大型系統、業務量非常高、硬體配置足夠多的情況下,5000使用者併發就足夠了;對於中小型系統,1000使用者併發就足夠了。
5、tps與硬體、網路配置
平均響應時間1s
tps峰值242
頁面平均大小20kb
每頁平均包含20張,每張平均大小50kb
平均一天8個小時工作時間都按峰值估算,tps * 8 * 60 * 60 = 6969600
假設每個頁面平均執行3個sql,每個sql平均耗時100毫秒,資料庫需要的併發數為3 * 242 / 0.1s = 73
應用伺服器頻寬,頁面平均大小20kb,平均響應時間1s,去除資料庫的互動時間(1000ms - 3 * 100ms)後為700ms,平均每個requst頻寬是28.57kb/s,最大頻寬242 * 28.57 / 1024 = 6.75mb/s
伺服器頻寬估算類似應用伺服器
TPS 併發使用者數 吞吐量關係
主要描述了在效能測試中,關於tps 併發使用者數 吞吐量之間的關係和一些計算方法。乙個系統的吞度量 承壓能力 與request對cpu的消耗 外部介面 io等等緊密關聯。單個reqeust 對cpu消耗越高,外部系統介面 io影響速度越慢,系統吞吐能力越低,反之越高。系統吞吐量幾個重要引數 qps ...
簡述 QPS TPS 併發使用者數 吞吐量關係
qps queries per second 是每秒查詢率 是一台伺服器每秒能夠相應的查詢次數,是對乙個特定的查詢伺服器在規定時間內所處理流量多少的衡量標準,即每秒的響應請求數,也即是最大吞吐能力。tps transactions per second 也就是事務數 秒。乙個事務是指乙個客戶機向伺服...
併發使用者數 吞吐量 思考時間的計算公式
二 軟體效能的幾個主要術語 響應時間 n1 a1 n2 a2 n3 a3 n4 2 併發使用者數的計算公式 系統使用者數 系統額定的使用者數量,如乙個oa系統,可能使用該系統的使用者總數是2000個,那麼這個數量,就是系統使用者數 平均併發使用者數的計算 c nl t 其中c是平均的併發使用者數,n...