先看下百度百科對它的定義
效能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。
我們可以認為效能測試是:通過在測試環境下對系統或構件的效能進行探測,用以驗證在生產環境下系統效能是否達
到預估的效能需求,發現系統可能存在的效能瓶頸,進而改善優化並系統的效能,提高系統的可延伸性、穩定性。
學習效能測試,或者對測試結果進行分析,都需要熟悉測試指標。接下來從效能測試分析度量的角度,介紹效能測試
不同維度的測試指標。
響應時間(Response Time),簡稱RT,是指使用者從使用者端發起一個請求開始,到使用者端接收到從伺服器端返回的結果,
整個過程所耗費的時間。不包括前端頁面的處理和渲染時間。直觀上看,這個指標與人對軟體效能的主觀感受是非常一致
的,因為它完整地記錄了整個計算機系統處理請求的時間。響應時間的絕對值並不能直接反映軟體的效能的高低,軟體性
能的高低實際上取決於使用者對該響應時間的接受程度。
指系統在利用系統硬體平臺和軟體平臺進行資訊處理的能力,系統處理能力通過系統每秒鐘能夠處理的交易數量來評
價,交易有兩種理解:
(1)從業務人員角度進行的一筆業務過程;
(2)從系統角度的一次交易申請和響應過程。
前者稱為業務交易過程,後者稱為事務,兩種交易指標都可以評價應用系統的處理能力。一般情況下,系統處理能力用以
下幾個指標來度量:
HPS(Hits Per Second):每秒點選次數,單位是次/秒
TPS(Transaction per Second):系統每秒處理交易數,單位是筆/秒
QPS(Query per Second):系統每秒處理查詢次數,單位是次/秒
對於網際網路業務中,如果某些業務有且僅有一個請求連線,那麼TPS=QPS=HPS,一般情況下用TPS來衡量整個業務
流程,用QPS來衡量介面查詢次數,用HPS來表示對伺服器點選請求。
指系統在單位時間內處理請求的數量。對於單使用者的系統,響應時間可以很好地度量系統的效能;而對於並行系統,
通常需要用吞吐量作為效能指標。一般而言,吞吐量是一個比較通用的指標,兩個具有不同使用者數和使用者使用模式的系統,
如果其最大吞吐量基本一致,則可以判斷兩個系統的處理能力基本一致。
指在同一時刻內,登入系統並進行業務操作的使用者數量。對於長連線系統來說最大並行使用者數即是系統的並行接入能力,
而對於短連線系統而言最大並行使用者數並不等於系統的並行接入能力短連線系統的並行使用者數與系統架構、系統處理能力等
各種情況相關。
與吞吐量相比,並行使用者數是一個更直觀但也更籠統的效能指標。實際上,並行使用者數是一個非常不準確的指標,因為
使用者不同的使用模式會導致不同使用者在單位時間發出不同數量的請求。
錯誤率(Error Rate),是指在一定時間內處理請求時發生的錯誤或失敗的次數與總請求數量之比。錯誤率通常以百分比形
式表示,例如:99%的成功率或1%的失敗率等。這個指標越低代表系統效能越好。
CPU又稱為中央處理器,是一塊超大規模的積體電路,是一臺計算機的運算核心(Core)和控制核心(Control Unit),功能主
要是解釋計算機指令以及處理計算機軟體中的資料。
CPU指標主要指的CPU利用率,包括:使用者態(user)、系統態(sys)、等待態(wait)、空閒態(idle)。效能測試CPU的評估建
議值:
(1)CPU利用率要低於業界警戒值範圍之內,即小於或者等於75%
(2)CPU sys%小於或者等於30%
(3)CPU wait%小於或者等於5%
記憶體是與CPU進行溝通的橋樑,計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大。
現在的作業系統為了最大利用記憶體,在記憶體中存放了快取,因此記憶體利用率100%並不代表記憶體有瓶頸。衡量系統記憶體是否
有瓶頸主要靠SWAP(與虛擬記憶體交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低於70%,太多的交換將會
引起系統效能低下。
磁碟吞吐量簡稱為Disk Throughput,是指在無磁碟故障的情況下單位時間內通過磁碟的資料量。分析指標主要有每秒
讀寫多少兆、磁碟繁忙率、磁碟佇列數、平均服務時間、平均等待時間、空間利用率等等。其中磁碟繁忙率是直接反映磁
盤是否有瓶頸的的重要依據,一般情況下,磁碟繁忙率要低於70%。
網路吞吐量簡稱為Network Throughput,是指在無網路故障的情況下單位時間內通過的網路的資料數量,單位為Byte/s。
網路吞吐量指標用於衡量系統對於網路裝置或鏈路傳輸能力的需求。當網路吞吐量指標接近網路裝置或鏈路最大傳輸能力時,
則需要考慮升級網路裝置。網路吞吐量指標主要有每秒有多少兆流量進出,一般情況下不能超過裝置或鏈路最大傳輸能力的70%。
常用的中介軟體例如Tomcat、Weblogic等指標主要包括JVM、ThreadPool和JDBC,具體如下:
一級指標 | 二級指標 | 單位 | 釋義 |
GC | GC頻率 | 每秒多少次 | java虛擬機器器垃圾部分回收頻率 |
GC | Full GC頻率 | 每小時多少次 | java虛擬機器器垃圾完全回收頻率 |
GC | Full GC平均時長 | 秒 | 用於垃圾完全回收的平均時長 |
GC | Full GC最大時長 | 秒 | 用於垃圾完全回收的最大時長 |
GC | 堆使用率 | 百分比 | 堆使用率 |
ThreadPool | Active Thread Count | 個 | 活動的執行緒數 |
ThreadPool | Pending User Request | 個 | 處於排隊的使用者請求個數 |
JDBC | JDBC Active Connection | 個 | JDBC活動連線數 |
各項指標參考標準:
(1)當前正在執行的執行緒數不能超過設定的最大值
系統效能較好的情況下,執行緒數最小值設定50和最大值設定200比較合適。
(2)當前執行的JDBC連線數不能超過設定的最大值
系統效能較好的情況下,JDBC最小值設定50和最大值設定200比較合適。
(3)GC頻率不能頻繁,特別是FULL GC更不能頻繁
系統效能較好的情況下,JVM最小堆大小和最大堆大小分別設定1024M比較合適。
常用的資料庫指標主要包括SQL、吞吐量、快取命中率、連線數等等,具體如下:
一級指標 | 二級指標 | 單位 | 釋義 |
SQL | 耗時 | 微秒 | 執行SQL耗時 |
吞吐量 | QPS | 個 | 每秒查詢次數 |
吞吐量 | 每秒查詢次數 | 個 | 每秒事務次數 |
命中率 | Key Buffer命中率 | 百分比 | 索引緩衝區命中率 |
命中率 | InnoDB Buffer命中率 | 百分比 | InnoDB緩衝區命中率 |
命中率 | Query Cache命中率 | 百分比 | 查詢快取命中率 |
命中率 | Table Cache命中率 | 百分比 | 錶快取命中率數 |
命中率 | Thread Cache命中率 | 百分比 | 執行緒快取命中率 |
鎖 | 等待次數 | 次 | 鎖等待次數 |
鎖 | 等待時間 | 微秒 | 鎖等待時間 |
參考標準:
(1)SQL耗時越小越好,一般情況下微秒級別;
(2)命中率越高越好,一般情況下不能低於95%;
(3)鎖等待次數越低越好,等待時間越短越好。
這裡的穩定性是指最短穩定時間,即系統按照最大容量的80%或標準壓力(系統的預期日常壓力)情況下執行,能夠
穩定執行的最短時間。
一般來說,對於正常工作日(8小時)執行的系統,至少應該能保證系統穩定執行8小時以上;對於7*24執行的系統,
至少應該能夠保證系統穩定執行24小時以上。如果系統不能穩定的執行,上線後,隨著業務量的增長和長時間執行,將
會出現效能下降甚至崩潰的風險。
參考標準:
(1)TPS曲線穩定,沒有大幅度的波動;
(2)各項資源指標沒有洩露或異常情況。
作者:Sweettesting —— 半醉半醒半浮生
出處:http://www.cnblogs.com/Sweettesting/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。