前言
本指標適用於使用效能測試進行效能測試專案技術質量評價依據,規範技術測試結果評價,統一效能測試
技術測試質量度量。應用系統技術質量度量指標範圍廣泛,本文難以涵蓋全部。 預期讀者為測試管理人員、測
試實施人員、技術支援人員、專案管理人員等系統技術質量相關人員。
系統效能指標
- 交易響應時間
- 定義及解釋
響應時間指使用者從客戶端發起一個請求開始,到客戶端接收到從伺服器端返回的響應結束,整個過程所耗費的時間。在效能檢測中一般以壓力發起端至被壓測伺服器返回處理結果的時間為計量,單位一般為秒或毫秒。平均響應時間指系統穩定執行時間段內,同一交易的平均響應時間。一般而言,交易響應時間均指平均響應時間。 平均響應時間指標值應根據不同的交易分別設定,一般情況下,分為複雜交易響應時間、簡單交易響應時間、特殊交易響應時間。其中,特殊交易響應時間的設定必須明確該交易在響應時間方面的特殊性。
- 簡稱
Response Time: RT
- 參考標準
不同行業不同業務可接受的響應時間是不同的,一般情況,對於線上實時交易:
- 網際網路企業:500毫秒以下,例如淘寶業務10毫秒左右。
- 金融企業:1秒以下為佳,部分複雜業務3秒以下。
- 保險企業:3秒以下為佳。
- 製造業:5秒以下為佳。
對於批量交易:
- 時間視窗:即整個壓測過程的時間,不同資料量則時間不一樣,例如雙11和99大促,資料量級不一樣則時間視窗不同。大資料量的情況下,2小時內可完成壓測。
- 定義及解釋
- 系統處理能力
- 定義及解釋
系統處理能力是指系統在利用系統硬體平臺和軟體平臺進行資訊處理的能力。 系統處理能力通過系統每秒鐘能夠處理的交易數量來評價,交易有兩種理解:一是業務人員角度的一筆業務過程;二是系統角度的一次交易申請和響應過程。前者稱為業務交易過程,後者稱為事務。兩種交易指標都可以評價應用系統的處理能力。一般的建議與系統交易日誌保持一致,以便於統計業務量或者交易量。系統處理能力指標是技術測試活動中重要指標。
- 簡稱
一般情況下,用以下指標來度量:
- HPS(Hits Per Second) :每秒點選次數,單位是次/秒。
- TPS(Transaction per Second):系統每秒處理交易數,單位是筆/秒。
- QPS(Query per Second):系統每秒處理查詢次數,單位是次/秒。 對於網際網路業務中,如果某些業務有且僅有一個請求連線,那麼TPS=QPS=HPS,一般情況下用TPS來衡量整個業務流程,用QPS來衡量介面查詢次數,用HPS來表示對伺服器單擊請求。
- 標準
無論TPS、QPS、HPS,此指標是衡量系統處理能力非常重要的指標,越大越好,根據經驗,一般情況下:
- 金融行業:1000 TPS~50000 TPS,不包括網際網路化的活動。
- 保險行業:100 TPS~100000 TPS,不包括網際網路化的活動。
- 製造行業:10 TPS~5000 TPS。
- 網際網路電子商務:10000 TPS~1000000 TPS。
- 網際網路中型網站:1000 TPS~50000 TPS。
- 網際網路小型網站:500 TPS~10000 TPS。
- 定義及解釋
- 併發使用者
- 定義及解釋
併發使用者數指在同一時刻內,登入系統並進行業務操作的使用者數量。 併發使用者數對於長連線系統來說最大併發使用者數即是系統的併發接入能力。對於短連線系統而言最大併發使用者數並不等於系統的併發接入能力,而是與系統架構、系統處理能力等各種情況相關。例如系統吞吐能力很強,加上短連線一般都有連線複用,往往併發使用者數大於系統的併發接入連線數。所以對於大部分短連線型別的系統,吞吐量模式(RPS模式,Request Per Second)比較適合,也是阿里的最佳實踐,PTS支援RPS模式的壓測,吞吐量的壓測構建和衡量一步到位。 在測試中,採用虛擬使用者來模擬現實中使用者進行業務操作。
- 簡稱
Virtual User:VU
- 標準
一般情況下,效能測試是將系統處理能力容量測出來,而不是測試併發使用者數,除了伺服器長連線可能影響併發使用者數外,系統處理能力不受併發使用者數影響,可以用最小的使用者數將系統處理能力容量測試出來,也可以用更多的使用者將系統處理能力容量測試出來。
- 定義及解釋
- 錯誤率
- 定義及解釋
錯誤率指系統在負載情況下,失敗交易的概率。錯誤率=(失敗交易數/交易總數)×100%。穩定性較好的系統,其錯誤率應該由超時引起,即為超時率。
- 簡稱
Virtual Failure Ratio:FR: VU
- 標準
不同系統對錯誤率的要求不同,但一般不超出千分之六,即成功率不低於99.4%。
- 定義及解釋
資源指標
- CPU
- 定義及解釋
中央處理器是一塊超大規模的積體電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟體中的資料。CPU Load:系統正在幹活的多少的度量,佇列長度。系統平均負載。
- 簡稱
Central Processing Unit:CPU
- 標準
CPU指標主要指的CPU使用率、利用率,包括使用者態(user)、系統態(sys)、等待態(wait)、空閒態(idle)。CPU使用率、利用率要低於業界警戒值範圍之內,即小於或者等於75%、CPU sys%小於或者等於30%,CPU wait%小於或者等於5%。單核CPU也需遵循上述指標要求。CPU Load要小於CPU核數。
- 定義及解釋
- Memory
- 定義及解釋
記憶體是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大。
- 簡稱
Memory就是記憶體的簡稱。
- 標準
現代的作業系統為了最大利用記憶體,在記憶體中存放了快取,因此記憶體利用率100%並不代表記憶體有瓶頸,衡量系統內有瓶頸主要靠SWAP(與虛擬記憶體交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低於70%,太多的交換將會引起系統效能低下。
- 定義及解釋
- 磁碟吞吐量
- 定義及解釋
磁碟吞吐量是指在無磁碟故障的情況下單位時間內通過磁碟的資料量。
- 簡稱
Disk Throughput。
- 標準
磁碟指標主要有每秒讀寫多少兆,磁碟繁忙率,磁碟佇列數,平均服務時間,平均等待時間,空間利用率。其中磁碟繁忙率是直接反映磁碟是否有瓶頸的重要依據,一般情況下,磁碟繁忙率要低於70%。
- 定義及解釋
- 網路吞吐量
- 定義及解釋
網路吞吐量是指在無網路故障的情況下單位時間內通過的網路的資料數量。單位為Byte/s。網路吞吐量指標用於衡量系統對於網路裝置或鏈路傳輸能力的需求。當網路吞吐量指標接近網路裝置或鏈路最大傳輸能力時,則需要考慮升級網路裝置。
- 簡稱
Network Throughput
- 標準
網路吞吐量指標主要有每秒有多少兆流量進出,一般情況下不能超過裝置或鏈路最大傳輸能力的70%。
- 定義及解釋
- 核心引數
作業系統核心引數主要包括訊號量、程式、檔案控制程式碼,一般不要超過設定的引數值即可,具體如下:
一級指標 二級指標 單位 解釋 核心引數 Maxuprc 個 限制每個使用者的使用者程式的最大數量 Max_thread_proc 個 定義每個程式允許的最大執行緒數量 Filecache_max 位元組 最大可用於cache file I/O的實體記憶體 Ninode 個 記憶體中HFS檔案系統開啟i節點的最大數量 Nkthread 個 限制允許同時執行的執行緒數量 Nproc 個 限制允許同時執行的程式數量 Nstrpty 個 基於STREAMS的偽終端 (pts) 的最大數量 Maxdsiz 位元組 任何使用者程式的資料段的最大大小(以位元組為單位) maxdsiz_64bit 位元組 任何使用者程式的資料段的最大大小(以位元組為單位) maxfiles_lim 個 每個程式的檔案描述符的最大數目硬限制 maxssiz_64bit 位元組 任何使用者程式的堆疊的最大大小 Maxtsiz 位元組 任一使用者程式的文字段的最大大小 nflocks 個 檔案鎖的最大數量 maxtsiz_64bit 位元組 任一使用者程式的文字段的最大大小 msgmni 個 系統級System V IPC訊息佇列 (ID) 所允許的最大數量 msgtql 個 系統中任意時間的最大System V IPC訊息數 npty 個 BSD偽終端 (pty) 的最大數量 nstrtel 個 指定核心可支援傳入telnet會話的telnet裝置檔案的數量 nswapdev 個 可用於交換的裝置的最大數量 nswapfs 個 可用於交換的檔案系統的最大數量 semmni 個 System V IPC系統級訊號量識別符號的數量 semmns 個 System V系統級訊號量的數量 shmmax 位元組 System V共享記憶體段的最大大小 shmmni 個 系統中System V共享記憶體段識別符號的數量 shmseg 個 每個程式System V共享記憶體段的最大數量
中介軟體指標
- 定義及解釋
常用的中介軟體例如Tomcat、Weblogic等指標主要包括JVM、ThreadPool、JDBC,具體如下:
一級指標 二級指標 單位 解釋 GC GC頻率 每秒多少次 Java虛擬機器垃圾部分回收頻率 Full GC頻率 每小時多少次 Java虛擬機器垃圾完全回收頻率 Full GC平均時長 秒 用於垃圾完全回收的平均時長 Full GC最大時長 秒 用於垃圾完全回收的最大時長 堆使用率 百分比 堆使用率 ThreadPool Active Thread Count 個 活動的執行緒數 Pending User Request 個 處於排隊的使用者請求個數 JDBC JDBC Active Connection 個 JDBC活動連線數 - 標準
- 當前正在執行的執行緒數不能超過設定的最大值。一般情況下系統效能較好的情況下,執行緒數最小值設定50和最大值設定200比較合適。
- 當前執行的JDBC連線數不能超過設定的最大值。一般情況下系統效能較好的情況下,JDBC最小值設定50和最大值設定200比較合適。
- GC頻率不能頻繁,特別是FULL GC更不能頻繁,一般情況下系統效能較好的情況下,JVM最小堆大小和最大堆大小分別設定1024 M比較合適。
資料庫指標
- 定義及解釋
常用的資料庫例如MySQL指標主要包括SQL、吞吐量、快取命中率、連線數等,具體如下:
一級指標 二級指標 單位 解釋 SQL 耗時 微秒 執行SQL耗時 吞吐量 QPS 個 每秒查詢次數 TPS 個 每秒事務次數 命中率 Key Buffer命中率 百分之 索引緩衝區命中率 InnoDB Buffer命中率 百分之 InnoDB緩衝區命中率 Query Cache命中率 百分之 查詢快取命中率 Table Cache命中率 百分之 表快取命中率 Thread Cache命中率 百分之 執行緒快取命中率 鎖 等待次數 次 鎖等待次數 等待時間 微秒 鎖等待時間 - 標準
- SQL耗時越小越好,一般情況下微秒級別。
- 命中率越高越好,一般情況下不能低於95%。
- 鎖等待次數越低越好,等待時間越短越好。
前端指標
- 定義及解釋
前端指標主要包括頁面展示和網路所花的時間,具體如下:
一級指標 二級指標 單位 解釋 頁面展示 首次顯示時間 毫秒 在瀏覽器位址列輸入URL按回車到使用者看到網頁的第一個視覺標誌為止。 OnLoad事件時間 毫秒 瀏覽器觸發onLoad事件的時間,當原始文件和所有引用的內容完全下載後才會觸發這個事件。 完全載入的時間 毫秒 所有onLoad JavaScript處理程式執行完畢,所有動態的或延遲載入的內容都通過這些處理程式觸發的時間。 頁面數量 頁面大小 KB 整個頁面大小。 請求數量 次 從網站下載資源時所有網路請求的總數,儘量少。 網路 DNS時間 毫秒 DNS查詢時間。 連線時間 毫秒 連線時間就是瀏覽器與Web伺服器建立TCP/IP連線的時間。 伺服器時間 毫秒 伺服器處理時間。 傳輸時間 毫秒 內容傳輸所用時間。 等待時間 毫秒 等待某個資源釋放的時間。 - 標準
- 頁面要儘可能小及壓縮。
- 頁面展示和花費時間越短越好。
穩定性指標
- 定義及解釋
最短穩定時間:系統按照最大容量的80%或標準壓力(系統的預期日常壓力)情況下執行,能夠穩定執行的最短時間。 一般來說,對於正常工作日(8小時)執行的系統,至少應該能保證系統穩定執行8小時以上。對於7×24執行的系統,至少應該能夠保證系統穩定執行24小時以上。 如果系統不能穩定的執行,上線後,隨著業務量的增長和長時間執行,將會出現效能下降甚至崩潰的風險。
- 標準
- TPS曲線穩定,沒有大幅度的波動。
- 各項資源指標沒有洩露或異常情況。
批量處理指標
- 定義及解釋
指批量處理程式單位時間內處理的資料數量。一般用每秒處理的資料量來衡量。處理效率是估算批量處理時間視窗最重要的計算指標。 關於批量處理時間視窗,不同系統的批量處理時間視窗在起止時間上可以部分重疊。另外,同一系統內部,也可能存在多個批量處理過程同時進行,其時間視窗相互疊加。 長時間批量處理將會對聯機線上實時交易產生重大的效能影響。
- 標準
- 在資料量很大的情況下,批處理時間視窗時間越短越好。
- 不能影響實時交易系統效能。
可擴充套件性指標
- 定義及解釋
指應用軟體或作業系統以叢集方式部署,增加的硬體資源與增加的處理能力之間的關係。計算公式為:(增加效能/原始效能)/(增加資源/原始資源)×100%。 擴充套件能力應通過多輪測試獲得擴充套件指標的變化趨勢。 一般擴充套件能力非常好的應用系統,擴充套件指標應是線性或接近線性的,現在很多大規模的分散式系統的擴充套件能力非常好。
- 標準
- 理想的擴充套件能力是資源增加幾倍,效能就提升幾倍。
- 擴充套件能力至少在70%以上。
可靠性指標
- 雙機熱備
對於將雙機熱備作為可靠性保障手段的系統,可衡量的指標如下:
- 節點切換是否成功及其消耗時間。
- 雙機切換是否有業務中斷。
- 節點回切是否成功及其耗時
- 雙機回切是否有業務中斷。
- 節點回切過程中的資料丟失量。在進行雙機切換的同時,使用壓力發生工具模擬實際業務發生情況,對應用保持一定的效能壓力,保證測試結果符合生產實際情況。
- 叢集
對於使用叢集方式的系統,主要通過以下方式考量其叢集可靠性:
- 叢集中某個節點出現故障時,系統是否有業務中斷情況出現。
- 在叢集中新增一個節點時,是否需要重啟系統。
- 當故障節點恢復後,加入叢集,是否需要重啟系統。
- 當故障節點恢復後,加入叢集,系統是否有業務中斷情況出現。
- 節點切換需要多長時間。在驗證叢集可靠性的同時,需根據具體情況使用壓力工具模擬實際業務發生相關情況,對應用保持一定的效能壓力,確保測試結果符合生產實際情況。
- 備份和恢復
本指標為了驗證系統的備份、恢復機制是否有效可靠,包括系統的備份和恢復、資料庫的備份和恢復、應用的備份和恢復,包括以下測試內容:
- 備份是否成功及其消耗時間。
- 備份是否使用指令碼自動化完成。
- 恢復是否成功及其消耗時間。
- 恢復是否使用指令碼自動化完成指標體系的運用原則。
- 指標項的採用和考察取決於對相應系統的測試目的和測試需求。被測系統不一樣,測試目的不一樣,測試需求也不一樣,考察的指標項也有很大差別。
- 部分系統涉及額外的前端使用者接入能力的,需要考察使用者接入併發能力指標。
- 對於批量處理過程的效能驗證,主要考慮批量處理效率並估算批量處理時間視窗。
- 如測試目標涉及到系統效能容量,測試需求中應根據相關指標項的定義,明確描述效能指標需求。
- 測試指標獲取後,需說明相關的前提條件(如在多少的業務量、系統資源情況等)。