軟體效能指標
1、響應時間(RT)
響應時間是一個系統最重要的指標之一,它的數值大小直接反應了系統的快慢。響應時間是指執行一個請求從開始到最後收到響應資料所花費的總體時間。
響應時間=發起請求網路傳輸時間+伺服器處理時間+返回響應網路傳輸時間
2、平均響應時間、百分位響應時間
平均響應時間指的是所有請求平均花費的時間,如果有100個請求,其中 98 個耗時為 1ms,其他兩個為 100ms。那麼平均響應時間為 (98 * 1 + 2 * 100) / 100.0 = 2.98ms 。
百分位數( Percentile - Wikipedia )是一個統計學名詞。以響應時間為例, 99% 的百分位響應時間 ,指的是 99% 的請求響應時間,都處在這個值以下。
拿上面的響應時間來說,其整體平均響應時間雖然為 2.98ms,但 99% 的百分位響應時間卻是 100ms。
相對於平均響應時間來說,百分位響應時間通常更能反映服務的整體效率。現實世界中用的較多的是 98% 的百分位響應時間,比如 GitHub System Status 中就有一條 98TH PERC. WEB RESPONSE TIME 曲線。
平均響應時間: 所有請求的平均響應時間,取的平均值
95%percentile : 統計學術語,如果將一組資料從小到大排序,並計算相應的累計百分位,則某一百分位所對應資料的值就稱為這一百分位的百分位數。可表示為:一組n個觀測值按數值大小排列。如,處於p%位置的值稱第p百分位數。
例如有100個請求, 每個請求的響應時間分別是 1-100 平均分佈
平均響應時間: 1-100 的平均值,即 50.5
95% percentile : 按從小到大排序,累計第95百分位,也就是 95 (即樣本里95% 的資料都不高於這個值)
3、併發使用者數 (最大併發數,最佳併發數)
併發
狹義:指同一時間點,執行相同請求的操作(秒殺) ======集合點
廣義:同一時間點,向伺服器發起的請求(更多用於真正的效能測試)
併發數
併發數是指系統同時能處理的請求數量,這個也是反應系統的負載能力
併發使用者數
同一時間點,執行請求的使用者數
系統使用者數:所有註冊使用者
線上使用者數:線上使用者,可能發起請求,可能沒有發起請求
併發使用者數(Jmeter中的執行緒數):線上,發起請求使用者
如,10個人發起了20個請求
最佳併發使用者數:當系統的負載等於最佳併發使用者數時,系統的整體效率最高,沒有資源被浪費,使用者也不需要等待
最大併發使用者數:系統的負載一直持續,有些使用者在處理而有的使用者在自己最大的等待時間內等待的時候我們需要保證
1、最佳併發使用者數需大於系統的平均負載
2、系統的最大併發使用者數要大於系統需要承受的峰值負載
4,TPS和HPS的區別
TPS(Transaction per second) 是估算應用系統效能的重要依據。其意義是應用系統每秒鐘處理完成的交易數量。
一般的,評價系統效能均以每秒鐘完成的技術交易的數量來衡量。 系統整體處理能力取決於處理能力最低模組的TPS 值。依據經驗,應用系統的處理能力一般要求在10-100左右。不同應用系統的TPS有著十分大的差別,一般需要透過效能測試進行準確估算。
HPS(Hits per Second)是指在一秒鐘的時間內使用者對Web頁面的連結、提交按鈕等點選總和。 它一般和TPS成正比關係,是B/S系統中非常重要的效能指標之一。
throughput:分為網路吞吐量和事務吞吐量,當作為事務吞吐量時,採用TPS來衡量。
當作為網路吞吐量時(LR分析器中的throughput統計圖是網路吞吐量),與HPS有一定的聯絡,但是不是必然的正比關係。
當然在傳送的報文或請求的大小一定的情況下,HPS越高,Throughput也相應的越大。
一般情況下,傳送報文或請求較大時的HPS會比傳送報文或請求較小時的HPS小,但較大報文或請求的Throughput不一定比較小報文或請求的Throughput小
點選數HPS (每秒點選次數):是指發起請求時, 服務端對請求進行響應的頁面資源對應的請求數量.
注意:
日常操作中, 對頁面的點選動作不是這裡說的點選數
該指標只在 Web 專案中需要注意
5、吞吐量 、吞吐率
吞吐量:單位時間內處理的請求數量(事務/s)(衡量網路)
吞吐量是指單位時間內系統能處理的請求數量,體現系統處理請求的能力,這是目前最常用的效能測試指標。
QPS(每秒查詢數)、TPS(每秒事務數)是吞吐量的常用量化指標,另外還有HPS(每秒HTTP請求數)。注,網路沒有瓶頸的時候,伺服器每秒處理的事物數應該等於吞吐量數值
跟吞吐量有關的幾個重要是:併發數、響應時間。
QPS(TPS),併發數、響應時間它們三者之間的關係是:
QPS(TPS)= 併發數/平均響應時間
吞吐率:單位時間內透過的資料的平均速率(kB/s)
如,請求資料多少k,這個資料在網路中需要傳輸的時間
6、事務
指一個客戶機向伺服器傳送請求然後伺服器做出反應的過程。
Jmeter中預設一個介面請求就是一個事務。
Jmeter中也支援多個介面整體作為一個事務。
7、TPS/QPS(每秒事務數) (重點)
TPS:伺服器每秒處理的事物數(衡量伺服器處理能力的綜合體現+最主要指標)
TPS是單位時間內處理事務的數量,從程式碼角度來說,一段程式碼或多段程式碼可以組成一個事務.單位時間內完成的事務數越多,伺服器的效能越好
QPS:每秒查詢率(如登入,可能會查詢是否使用者已存在,是否已登入,密碼是否正確等)
TPS和QPS的區別?
TPS(transaction per second)是單位時間內處理事務的數量,QPS(query per second)是單位時間內請求的數量。TPS代表一個事務的處理,可以包含了多次請求。很多公司用QPS作為介面吞吐量的指標,也有很多公司使用TPS作為標準,兩者都能表現出系統的吞吐量的大小,TPS的一次事務代表一次使用者操作到伺服器返回結果,QPS的一次請求代表一個介面的一次請求到伺服器返回結果。當一次使用者操作只包含一個請求介面時,TPS和QPS沒有區別。當使用者的一次操作包含了多個服務請求時,這個時候TPS作為這次使用者操作的效能指標就更具有代表性了。
個人理解如下:
1、Tps即每秒處理事務數,包括了
1)使用者請求伺服器
2)伺服器自己的內部處理
3)伺服器返回給使用者
這三個過程,每秒能夠完成N個這三個過程,Tps也就是N;
2、Qps基本類似於Tps,但是不同的是,對於一個頁面的一次訪問,形成一個Tps;但一次頁面請求,可能產生多次對伺服器的請求,伺服器對這些請求,就可計入“Qps”之中。
例如:訪問一個頁面會請求伺服器3次,一次訪問,產生一個“T”,產生3個“Q”
8、點選率、點選量
“吞吐率”圖和“點選率”圖的區別:
“吞吐率”圖,是每秒伺服器處理的HTTP申請數。
“點選率”圖,是客戶端每秒從伺服器獲得的總資料量。
點選數:是衡量Web伺服器處理能力的一個重要指標。它的統計是客戶端向Web伺服器發了多少次HTTP請求計算的。通常我們也用每秒點選次數(Hits per Second)指標來衡量Web伺服器的處理能力。
9、錯誤率
定義: 錯誤率指系統在負載情況下,失敗交易的機率。
錯誤率 = (失敗交易數/交易總數)*100%
注意:
大多系統都會要求無限接近於 100% 成功率, 因此, 錯誤率一般都非常低
相對穩定的系統產生的錯誤率又稱超時率(由網路傳輸導致的)
10、資源的利用率(包含cpu、記憶體、磁碟I/O等):
定義: 系統資源(CPU/記憶體/磁碟/網路)使用佔比(使用量/總量*100%)
利用率指標:(沒有特殊要求情況下)
CPU 不超過 75%-85%
記憶體不超過 80%
硬碟不超過 90%(容量佔有率/讀寫時間比)
CPU進行判斷和處理,能反應系統的繁忙程度,一般分系統CPU與使用者CPU
Load Average:指一段時間內,CPU正在處理和等待CPU處理的任務,即CPU使用佇列的長度統計資訊
Memory:資料從記憶體上讀取要比從磁碟上讀取的速度要快,而記憶體經常出現記憶體洩露或記憶體溢位的現象
佇列:佇列較長,說明處理能力達到了極限或者遇到阻塞
IO:與磁碟互動
網路:重點關注網路流量,看是否存在網路頻寬瓶頸
注:一般要求資源利用率不超過80%
硬體效能:
cpu
記憶體
磁碟(disk I/O)
網路(NETWORK I/0)
1、CPU
定義:
CPU指標主要指的CPU利用率,包括使用者態(user)、系統態(sys)、等待態(wait)、空閒態(idle)。
參考標準
CPU 利用率要低於業界警戒值範圍之內,即小於或者等於75%;
CPU sys%小於或者等於30%;
CPU wait%小於或者等於5%;
2、記憶體
定義:
記憶體是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大
參考標準
現在的作業系統為了最大利用記憶體,在記憶體中存放了快取,因此記憶體利用率100%並不代表記憶體有瓶頸,衡量系統記憶體是否有瓶頸主要靠SWAP(與虛擬記憶體交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低於70%,太多的交換將會引起系統效能低下。
3、磁碟
定義:
定義和解釋:磁碟吞吐量簡稱為Disk Throughput,是指在無磁碟故障的情況下單位時間內透過磁碟的資料量。
參考標準
磁碟指標主要有每秒讀寫多少兆,磁碟繁忙率,磁碟佇列數,平均服務時間,平均等待時間,空間利用率。其中磁碟繁忙率是直接反映磁碟是否有瓶頸的的重要依據,一般情況下,磁碟繁忙率要低於70%。
4、網路
定義:
網路吞吐量簡稱為Network Throughput,是指在無網路故障的情況下單位時間內透過的網路的資料數量。單位為Byte/s。網路吞吐量指標用於衡量系統對於網路裝置或鏈路傳輸能力的需求。當網路吞吐量指標接近網路裝置或鏈路最大傳輸能力時,則需要考慮升級網路裝置。
參考標準
網路吞吐量指標主要有每秒有多少兆流量進出,一般情況下不能超過裝置或鏈路最大傳輸能力的70%。
CPU對資料進行判斷以及邏輯處理,本身不能儲存資料;這時cpu從記憶體取資料進行邏輯計算,如果記憶體沒有資料,才會從硬碟讀資料到記憶體,再對資料進行處理
就像人吃飯一樣,cpu就是人,記憶體就是碗,硬碟就是飯鍋!
當cpu程序等待,會造成記憶體開銷的增加,記憶體不夠用的時候會用到虛擬記憶體,導致虛擬記憶體的增加,這時磁碟IO開銷就會增加,系統態sy%提升,cpu開銷增加;記憶體裡資料不夠用,才用磁碟中取資料