在效能測試中,需要根據具體的效能需求和系統架構等情況,採用不同的測試策略,其中最常見的策略就有容量測試。
這篇部落格,就來聊聊容量測試以及容量規劃的一些內容。。。
一、什麼是容量?如何理解?
在開始之前,有一點需要知道:系統的處理能力是有限的!
1、容量定義
所謂容量,即系統處於最大負載狀態或某項指標達到所能接受的最大閾值下對請求的最大處理能力。
2、如何理解
①、系統的容量(處理能力)是有限的;
②、容量是可度量的;
二、如何統計容量指標?
1、統計維度
一般來說,可以從如下兩個維度來定量系統的容量:
維度型別
列舉說明
最大負載狀態
伺服器cpu使用率達到100%
記憶體使用達到最大值
磁碟io延時超過所能接受的最大時延
磁碟使用率超過最大限制
網路使用率達到上限(最大吞吐量)
最大接受閾值
每秒請求數/事務數(qps/tps)
響應時間(art/99%rt)
事務成功率(一般要求99.99%甚至更高)
超時/異常錯誤率
配置引數,比如:最大連線數、最大執行緒數、jvm記憶體分配上限
2、統計方法
一般來說,常用的採集資料的方法,有以下幾種方式:
①、埋點採集:即在系統的各個節點,根據需要新增埋點,針對性的進行資料採集;
②、日誌/資料庫:通過日誌服務(比如elk)或者運維監控(現在很流行的devops),採集分析資料;
③、agent/探針:在需要採集的節點新增agent/探針,實時採集,資料存入時序資料庫(比如influxdb),實時展示;
3、注意事項
①、採集對比的資料一定要採集線上的真實資料,這樣才能反映真實客觀的系統壓力。
②、容量測試環境的配置,一定要和線上保持一致(伺服器數量可以不同,但配置盡可能保持一致)。
三、容量測試
容量測試是效能測試裡的一種測試方法,它的目的就是測量系統的最大容量,為系統擴容,效能優化提供參考,節省成本投入,提高資源利用率。
1、測試思路
①、根據具體的業務情況和系統架構,通過配置測試的手段,測量得到單個服務節點在對應的業務場景下最大的效能表現;
②、根據系統架構(集群、分布式、微服務)特點,通過啟用≥2的服務節點,來得到服務節點的增加和系統效能的提公升比例;
③、通過線上採集的系統資料,分析出過去某段時間(或某個業務)的高峰流量,然後通過計算,得到容量擴容,需要投入的實際服務數量;
2、約束/停止條件
在測試過程中,只要限定的某項指標達到最大可接受閾值或某項資源達到最大使用狀態,即刻停止測試。
3、選擇合適的容量指標
考慮到業務需求和系統架構的不同,在選取容量指標時一般遵循如下原則:
②、資料儲存型:即需要儲存讀寫的資料量較大的型別,一般吞吐量和io是比較關注的指標;
四、容量規劃
1、為什麼需要容量規劃?
對於業務越來越複雜的商業形態,每個業務都由一系列不同的系統來提供服務,每個業務系統都部署在不同的機器上。容量規劃的目的在於讓每乙個業務系統能夠清晰地知道:
①、什麼時候應該增加服務節點,什麼時候應該減少服務節點(比如服務端接受到的流量達到什麼量級)?(比如雙十一,大促,秒殺)
②、為了雙 11 、**、秒殺、渠道拓展引流等業務需求,需要擴充到什麼數量級的服務,才能即保證系統的可用性、穩定性,又能節約成本?
2、容量規劃四步走
①、業務流量預估階段:通過分析歷史資料以及實時的線上監控,預估未來某個時間點或者某個業務可能會有多少多少的流量衝擊;
②、系統容量評估階段:根據具體的業務場景,分析每個業務場景的流量配比,然後計算每個業務大概需要多少服務節點來提供可靠穩定的效能支撐;
③、系統容量測試階段:通過全鏈路壓測或者pat/uat環境的壓測,來模擬真實的業務場景,確定每個服務節點的具體效能表現,進行針對性的調整;
④、流量分配調整階段:根據壓測的結果,設定限流、服務降級等系統保護措施,來預防當實際流量超過系統所能承受的最大流量時,系統無法提供服務;
3、擴容手段
①、垂直擴容
公升級服務的硬體配置,讓單個服務節點的容量更大,來提供更高的系統服務能力。比如:
加大服務機器的cpu數量和記憶體,更換效能更好的快取記憶體伺服器,資料儲存用nas盤替換等。
②、水平擴充套件
服務集群:伺服器的數量由1→n(但需要重點關注負載均衡);
分布式:提供服務的節點由統一集中管理部署,分散到不同的地點;
容器:提供更靈活的彈性擴容機制,根據具體的訪問流量大小來彈性擴容或者縮容;
4、更多參考
關於容量規劃,可以看這裡:阿里巴巴全鏈路壓測
關於集群和分布式,看這裡:分布式與集群的區別是什麼?
容量規劃概述
容量規劃概述 作者 左琴,火龍果軟體 發布於 2014 06 13 1 單台節點到底最大處理能力是多少?2 目前線上有多少容量正在被使用?3 在一次大促前當前的機器數是否能夠支撐?4 什麼時候需要增加機器?加多少?這時候,容量規劃就顯得格外必要了。通過集體組織的容量規劃學習,談談自己對容量規劃的認識...
apache WEB應用的容量規劃
apache主要是乙個記憶體消耗型的服務應用,我個人總結的經驗公式 apache max process with good perfermance total hardware memory apache memory per process 2 apache max process apache...
Exchange2007容量規劃
1 exchange 2k7郵箱伺服器資料與dc數量比例 如果您的dc為32位平台,ex2k7與dc的比例為4 1 如果您的dc為64位平台,ex2k7與dc的比例為8 1,若要達到 1 8 的比率,您必須在目錄伺服器上安裝足夠的記憶體,以在記憶體中快取整個 active directory 資料庫...