? ? ? 吞吐量
? ? 一個系統的吞吐量(承壓能力)需由 單個request對cpu的消耗、外部接口、IO等綜合評定,單個request對cpu消耗越高,外部系統接口、IO響應越慢,系統吞吐能力也就越低
? ? ? ?系統吞吐量幾個重要參數:QPS、TPS、并發數、響應時間
????????QPS:Queries Per Second意思是“每秒查詢率”,是一臺服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準
? ??????TPS:是TransactionsPerSecond的縮寫,也就是事務數/秒。它是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發送請求然后服務器做出反應的過程。客戶機在發送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數。
QPS vs TPS:QPS基本類似于TPS,但是不同的是,對于一個頁面的一次訪問,形成一個TPS;但一次頁面請求,可能產生多次對服務器的請求,服務器對這些請求,就可計入“QPS”之中。如,訪問一個頁面會請求服務器2次,一次訪問,產生一個“T”,產生2個“Q”
????????并發數:?系統同時處理的request/事務數;
? ? ? ? 并發用戶數:指的是現實系統中操作業務的用戶;在性能測試工具中,一般稱為虛擬用戶數(Virutal User),注意并發用戶數跟注冊用戶數、在線用戶數有很大差別的,并發用戶數一定會對服務器產生壓力的,而在線用戶數只是?”掛”?在系統上,對服務器 不產生壓力,注冊用戶數一般指的是數據庫中存在的用戶數
????????響應時間(RT):??一般取平均響應時間
? ? ? (重要:并發有別于tps。TPS是每秒事務數,但事務是基于虛擬用戶數(VU)的,假如1個虛擬用戶在1秒內完成1筆事務,那么TPS明顯就是1;如果某筆業務響應時間是1ms,那么1個用戶在1秒內能完成1000筆事務,TPS就是1000了;如果某筆業務響應時間是1s,那么1個用戶在1秒內只能完成1筆事務,要想達到1000TPS,至少需要1000個用戶;因此可以說1個用戶可以產生1000TPS,1000個用戶也可以產生1000TPS,無非是看響應時間快慢)
? ? ? ?由此可推出他們之間的關系:
? ? ? ? ? ? QPS(TPS) = 并發數/平均響應時間
? ? 看個實例:按照二八原則,百分之八十的訪問集中在百分之二十的時間(峰值時間)內
? ? ? ? ? ? ? ? ? ? 總PV數*80%) / 總時間(秒)*20% = 峰值時間每秒請求數(QPS)
? ? ? ? ? ? ? ? ? ? 假設:網站日PV100萬,則服務器需要至少多少QPS?
? ? ? ? ? ? ? ? ? ? ? ? ? ? (1000000 * 0.8) / (86400 * 0.2) = 47(QPS)
? ? ? 某些情況下的計算中,需要引入Think?Time,從業務角度來看,這個時間指用戶進行操作時每個請求之間的時間間隔,而在做新能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作,即系統真實TPS(QPS) = 并發數/(響應時間+Think Time)
? ??????當沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數之間存在一定的聯系,可以采用以下公式計算:F=VU?*?R?/ T
??其中F為吞吐量,VU表示虛擬用戶個數,R表示每個虛擬用戶發出的請求數,T表示性能測試所用的時間