選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
7 分鐘閱讀時間 (1483 個字)

Web Service系統容量量測的實務方法論 讀後心得

Web Service 效能的執行策略

在這篇文章中,我將探討《軟體測試實務Ⅱ》的第一章——Web Service系統容量量測的實務方法論。這一章節深入分析了如何有效地進行Web Service系統的容量量測,並提供了實用的方法和策略,幫助讀者更好地理解和應用這些技術。

前言

系統上線後為了符合客戶需求,通常會進行壓力測試、負載測試,其他也可能是效能測試、可靠度測試,這些統稱非功能效能議題。

*非功能效能議題:這些並非系統功能,而是為了滿足客戶需求所做的事情。

在做系統測試前,先了解四個關鍵因子,了解這些因子後,我們可以進行更詳細的討論。

系統容量量測關鍵因子

系統容量量測關鍵因子

  • 待測目標(Target Program):系統功能。
  • 資源條件(Resource):硬體資源,例如: 有多少CPU、Memory、I/O、系統架構、網路環境。
  • 輸入(InputSet):輸入請求與參數量體,例如:每秒多少請求、交易數量、查詢數量...等。
  • 輸出(OutputSet):處裡過後的實際結果。產出單位是TPS、QPS、RPS

在進行測試時,需要輸入什麼、在什麼樣的環境下進行測試、測試的目標是什麼,以及預期會產生什麼樣的結果。這些行為需要在一個連貫的過程中進行。

在取樣過程中,會收集到的資訊包括 CPU、記憶體、I/O、Logging和Raw Data。分析結果通常會用百分位統計(如 P95、P90)來表示數據分布。

這四個因子在不同需求下會有不同的變動,因此在規劃時需要在可控的關係下找到它們之間的線性關係。這個關係隱含著在特定時間範圍內,系統是穩定可預測的。

基礎概念

執行策略:

目的導向來看壓力測試常見的三種策略:

一、業務目標導向:(最常見)
依據目標找到系統需要多少資源與成本。
主要以業務需求為優先,經過測試找到整體系統需要多少資源,過程同時改善系統架構,也就是減少資訊需求。

二、用固定資源找到理想值(容量基準單位)
在固定資源下不斷輸入,找到在系統穩定的狀況下,系統可以處理多少交易。

三、固定資源的條件下,為應用程式設定目標效能值、目標值:(最難、最高規格)
目標就是把應用程式最佳化。

Web Service 效能的執行策略

Web Service 效能的執行策略

效能種類:

常見的兩種導向:

  • 驗證導向:通過、不通過
  • 統計導向:過多少之後進入不穩定狀態

效能:

定義:時間單位能處裡的目標吞吐量。

通常系統資源都是固定、有限的,透過調整Target Program,滿足設定的Output值。(效能最重要的動機就是滿足Output)

  • 效能測試的結果就是通過/不通過,不通過時會說明哪些有問題。例如: Memory Leak、I/O Blocking Issues、NetWork問題...等。

*吞吐量(Throughput):Input/Output的比經常稱作吞吐量,吞吐量的反應速度則是延遲(Latency),當Input/Output比為1,Latency為則是理論上的理想值。

壓力、負載:

定義:當輸入超過容量或效能上線值,系統能否正常運作,或者具備治癒能力。

系統超出乘載的目標,通常會出現兩種反應:

  • 系統崩潰:直接當機、沒反應。
  • 容錯、自癒力:系統正常運作,可能速度變慢。

壓力測試目的為找出極端流量進入系統時,要怎麼設計系統架構,讓系統可以保持正常運作使用者體驗不會變差。

  • 壓力、負載測試的結果是通過/不通過,不通過的問題可能是系統可靠度的問題,也有程式連鎖反應造成的崩潰。

可靠度:

定義:系統發生非預期事件時「湊巧」可以繼續正常運作。

以內外事件角度舉例:

外在事件:系統爆量使用,能可正常運作,這部分可以透過壓力測試模擬。

內在事件:硬碟故障、磁碟沒反應,系統會自動切換備援機制讓系統繼續運作。

可靠度是工程問題,包含找出系統中可能造成崩潰的因子、互動的過程中資料是可靠的。

容量:

定義:不改變系統資源與程式,找到系統Input/Output比例的理想值。

也就是找到容量基準單位。知道系統可以同時多少人上線、同時可以處裡多少交易數。

四種效能的目的導向

四種效能的目的導向

理想的次序與種類:

作者有建議前面所講的三種策略(業務導向、基準值、效能值),在什麼背景下可以做出怎麼樣的選擇。

  • 新服務、新系統、新架構,從無到有可以先滿足業務導向為主。
  • 既有系統想知道系統容量可選擇基準值。
  • 設計準備給其他團隊使用的功能選擇效能值。

理想次序:

有時間+資源充裕:

  1. 先找到效能值,把目標程式最佳化。
  2. 基於最佳化應用程式,找到基準值。
  3. 透過找到基準值,反推出業務目標所需資源。

有業務目標+時間充裕:

  1. 依業務目標,找到所需資源。
  2. 最佳化程式,找到效能值。
  3. 透過效能值,找到基準值。

有業務目標+時間不充裕:(實務上最常見)

  1. 先找基準值,然後依此作為基準,反推業務目標需求。
  2. 時間在做效能值。

 

讀者心得:

這篇文章是分享基礎概念篇,旨在幫助讀者從理論上更好地理解效能的定義,並確定在不同情境下適合使用的策略方式。這樣一來,當我們進行效能測試時,就不會在定義資源、輸入輸出和待測目標上遇到困難。有了一定的基礎了解後,執行效能測試將會更加順利。

在 K3s 為後端自簽憑證的 https 服務建立 Ingress
API Testing(Using Postman Script)—上
 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2025/06/09, 週一

Captcha 圖像