發布時間:2020-07-09
在介紹性能壓測概念與背景之前,首先解釋下為什么要做性能壓測。根據統計,網站每慢100毫秒,交易額下降1%。這些事件和統計數據為大家敲響了警鐘,也客觀說明了性能壓測對于企業應用的重要性。從具體的作用上講,性能壓測可以用于新系統上線支持、技術升級驗證、業務峰值穩定性保障、站點容量規劃以及性能瓶頸探測。
1. 新系統上線支持
在新系統上線前,通過執行性能壓測能夠對系統的負載能力有較為清晰的認知,從而結合預估的潛在用戶數量保障系統上線后的用戶體驗。
2. 技術升級驗證
在系統重構過程中,通過性能壓測驗證對比,可以有效驗證新技術的高效性,指導系統重構。
3. 業務峰值穩定性保障
在業務峰值到來前,通過充分的性能壓測,確保大促活動等峰值業務穩定性,保障峰值業務不受損。
4. 站點容量規劃
通過性能壓測實現對站點精細化的容量規劃,指導分布式系統機器資源分配。
5. 性能瓶頸探測
通過性能壓測探測系統中的性能瓶頸點,進行針對性優化,從而提升系統性能。
綜上所述,性能壓測伴隨著系統開發、重構、上線到優化的生命周期,因此有效的性能壓測對系統的穩定性具有重要的指導意義,是系統生命周期中不可或缺的一部分。
性能壓測概念
性能壓測是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。從測試目的上性能壓測又可以劃分為負載測試、壓力測試、并發測試、配置測試以及可靠性測試。
負載測試是測試當負載逐漸增加時,系統各項性能指標的變化情況。
壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試。
并發測試通過模擬用戶并發訪問,測試多用戶并發訪問同一個軟件、同一個模塊或者數據記錄時是否存在死鎖等性能問題。
配置測試是通過對被測系統的軟/硬件環境的調整,了解各種不同方法對軟件系統的性能影響的程度,從而找到系統各項資源的最優分配原則。
可靠性測試是在給系統加載一定業務壓力的情況下,使系統運行一段時間,以此檢測系統是否穩定。
總的來說,性能壓測是在對系統性能有一定程度了解的前提下,在確定的環境下針對壓測需求進行的一種測試。
如何選取性能壓測工具
在選取合適的性能壓測工具之前,我們需要先先了解執行一次完整的性能壓測所需要的步驟:
1. 確定性能壓測目標:性能壓測目標可能源于項目計劃、業務方需求等;
2. 確定性能壓測環境:為了盡可能發揮性能壓測作用,性能壓測環境應當盡可能同線上環境一致;
3. 確定性能壓測通過標準:針對性能壓測目標以及選取的性能壓測環境,制定性能壓測通過標準,對于不同于線上環境的性能壓測環境,通過標準也應當適度放寬;
4. 設計性能壓測:編排壓測鏈路,構造性能壓測數據,盡可能模擬真實的請求鏈路以及請求負載;
5. 執行性能壓測:借助性能壓測工具,按照設計執行性能壓測;
6. 分析性能壓測結果報告:分析解讀性能壓測結果報告,判定性能壓測是否達到預期目標,若不滿足,要基于性能壓測結果報告分析原因。
由上述步驟可知,一次成功的性能壓測涉及到多個環節,從場景設計到施壓再到分析,缺一不可。工欲善其事,必先利其器,而一款合適的性能工具意味著我們能夠在盡可能短的時間內完成一次合理的性能壓測,達到事半功倍的效果。
工具選型對比
在論述了性能壓測必要性之后,如何選取性能壓測工具成為一個重要的議題?本文選取了市場上主流性能壓測工具:(ab)Apache Bench、LoadRunner,并從多個方面出發分析了各個工具的優缺點,匯總后的優缺點如下表所示:
ab作為一款命令行測試工具,適用于本地對支持HTTP協議的單一地址進行性能壓測,但缺少相應的鏈路編排、場景管理、數據可視化等大規模性能壓測基礎功能,無法應用于生產環境。
LoadRunner 作為一款性能壓測商業軟件,功能較為齊全,使用者能夠借助 LoadRunner 達到簡單的性能壓測場景編排、施壓目標;但它也存在學習成本居高不下、擴展性差等缺點,此外支持的協議有限,不適合復雜的性能壓測環境。
PerformanceRunner是國內領先的支持http、https、websocket、tcp/ip、MQ等各種協議、10萬+海量并發、精準可靠的性能測試工具,極大地降低了應用系統運行風險。
本文介紹了性能壓測的概念以及相關背景,并針對目前幾款受眾相對較多的性能壓測工具給出了優缺點分析,每種工具都有相應的優缺點,大家可以針對自身需求選取合適的性能壓測工具。
推薦閱讀:
您的信息已成功提交!
我們的客服人員稍后會與您聯系