聊聊基準測試的MVP方案

上篇博客介紹了基準測試的一些思路和方法策略,這篇博客,聊聊基準測試的MVP(最小可行性方案)。。。web

 

思惟導圖緩存

 

1、測試策略服務器

策略名稱 閾值 運行時間 性能指標 基線 註釋
併發測試 CPU75%+Error0.01% 10-30min 併發數、TPS、RT、內存佔比 併發基線 併發測試獲得的結果能夠做爲實際生產環境峯值流量下的性能表現
容量測試 CPU<100%+Error0.01% 10-30min 併發數、TPS、RT、內存佔比 容量基線 通常來講90%便可做爲閾值
雙節點測試 CPU<100%+Error0.01% 10-30min 併發數、TPS、RT、內存佔比 負載均衡基線 應考慮隨着服務節點的增長,性能的遞減效應,通常每增長1個節點,理論上性能遞減2-5%(以實際測試結果爲準)
穩定性測試 CPU75%+Error0.01% ≥12h 併發數、TPS、RT、內存佔比 穩定性基線 穩定性的運行時間根據具體狀況調整,通常不能低於12h

PS:今天和朋友聊起這個話題,朋友說還應該有一個高可用測試,不過仔細想了下,高可用我的認爲應該更側重容災和失效恢復測試領域。。。網絡

 

2、系統配置併發

nCnG:性能測試可能涉及多個系統,每一個系統的服務器配置存在不一樣,所以要明確不一樣系統的硬件配置,這樣也方便針對性的設定測試策略以及分析性能指標。負載均衡

內存分配:這裏主要指的是堆內存分配,須要根據具體的服務器配置進行分配,固然,最好針對性的進行配置測試來肯定內存的合理分配。分佈式

應用版本:以JDK爲例,每一個版本都有不一樣的改進和優化,且被測系統環境應與實際生產環境保持一致的版本。工具

線程池:線程池數量,也是一個須要重視的問題(我本人就遇到過因爲線程耗盡最終致使的OOM)。性能

最大鏈接數:容器、DB的最大鏈接數,消息隊列的消費者數量,也是一個須要考慮的因素。測試

緩存策略:爲了提升系統應對大流量衝擊以及提升可用性,緩存是離不開的一種方法,這裏須要關注的是緩存命中以及緩存穿透的問題。

 

3、環境選型

SIT:通常來講不多在SIT環境進行基準測試,緣由不少,好比:交叉影響、穩定性、配置不一致甚至多個項目部署在同一個SIT環境等。

UAT:大多數時候,性能測試都是在UAT環境下進行,由於UAT相比SIT穩定性更好,已經經過了系統測試階段,且進行性能測試的成本相比生產環境更低。

PAT:在生產環境進行性能測試,測試結果的準確性是最高的,但也須要考慮到這幾點因素:數據污染、隔離、改形成本、不能影響實際生產業務運行、測試時間等。

 

4、執行方式

穩定施壓:上面提到的併發、容量、雙節點、穩定性測試通常都是基於一個固定的併發數來模擬負載進行測試,具體的併發數值須要根據實際的用戶數、使用頻次、業務場景考慮。

浪涌測試:在實際生產環境中,有時候存在這種狀況:短期內有很高的流量衝擊,好比限時秒殺等場景。

階梯式加壓:階梯式加壓是尋找系統拐點的最有效的方式。

 

5、風險預估

在進行基準測試前,要考慮到以當前的環境、業務模型、系統配置可能存在哪些影響測試的因素,以及影響程度、應對策略,好比:網絡延時、網絡波動、交叉影響等。

 

6、業務模型

基準測試的業務模型選擇,不管是從實施難易程度或者成本考慮,通常都以如下三種類型出發:

核心業務:通常來講核心業務的重要性和使用頻次都是優先級最高的,好比支付、訂單。

高頻次業務:查詢、更新等高頻操做場景,也是須要重點關注的場景。

平常輪詢業務:基準測試的實施前提就是可重複執行和長時間進行測試,這樣才能夠進行對比和統計,來分析長期的系統性能基線變化。

 

7、工具選型

性能測試過程當中,須要藉助的工具不少,使用佔比最高的爲如下幾種:

負載生成工具:好比Jmeter、Loadrunner、Locust、Gatling、Artillery。

應用監控工具:主要用來監控服務端的各項指標,好比Nmon、Skywalking。

代碼分析工具:好比SonarQube、Codacy,通常結合持續集成工具來進行。

日誌分析工具:好比如今最經常使用的ELK。

DB監控工具:好比Zabbix、DBMonitor。

 

8、異常處理

在性能測試過程當中,常常會遇到一些異常狀況,好比超時、失敗、接口依賴、敏感數據等狀況,針對這些狀況,設計合理可行的解決方案。

 

9、統計維度

測試的結果必定要方便從各個層次、維度進行統計,這樣能夠爲後續的分析提供更可靠的數據來源,以響應時間來講,通常從如下幾個維度統計:

維度 舉例 適用測試策略
峯值 取系統CPU在75%左右的表現進行屢次統計,加權平均計算 併發測試
極值 取系統CPU<100%的表現進行屢次統計,加權平均計算 容量測試
平均值 平均值的統計,比較適用於響應時間波動不大的狀況 雙節點測試
百分比值 對於服務集羣部署或者分佈式部署的系統,百分比值,更能反映系統的性能表現 穩定性測試

 

10、查詢展現

上篇博客介紹過,基準測試的結果必定要便於統計展現,能夠明瞭直觀的展現給相關人員,通常來講,能夠從不一樣維度,粒度從大到小的形式進行查詢展現,好比:

維度 說明
時間範圍 好比默認展現最近一個月的基準變化,也能夠設置根據時間來查詢不一樣時間範圍內的基準表現
系統名稱 對於涉及對個業務系統的狀況,能夠根據系統名稱進行查詢
業務模型 從核心業務、高頻次業務、平常輪詢業務等維度,進行展現
測試策略 根據基準測試的策略,從併發、容量、雙節點、穩定性等角度進行查詢展現

能夠經過web頁面、儀表盤、折線圖、樹狀圖等形式,進行不一樣角度的系統基準表現展現,具體如何設計,能夠進行需求調研,而後針對性的設計。

相關文章
相關標籤/搜索