Java性能測試從入門到放棄-概述篇


Java性能測試從入門到放棄-概念篇

輔助工具

  • Jmeter: Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件做壓力測試。JMeter 可以用於對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能/回歸測試
jmeter
  • 簡書有個不錯的作者寫了一個Jmeter的系列:倔強的瀟灑小姐

  • 火焰圖:火焰圖是用來展示CPU調用堆棧的SVG圖片。

  1. y 軸表示調用棧,每一層都是一個函數。調用棧越深,火焰就 越高,頂部就是正在執行的函數,下方都是它的父函數。

  2. x 軸表示抽樣數,如果一個函數在 x 軸占據的寬度越寬,就表示它被抽到的次數多,即執行的時間長。注意,x 軸不代表時間,而是所有的調用棧合並后,按字母順序排列的。

  3. 火焰圖就是看頂層的哪個函數占據的寬度最大。只要有"平頂"(plateaus),就表示該函數可能存在性能問題。

  4. 顏色沒有特殊含義,因為火焰圖表示的是 CPU 的繁忙程度,所以一般選擇暖色調。

火焰圖
  • 鏈路追蹤:鏈路跟蹤其實就是將一次分布式請求還原成調用鏈路。顯式的在后端查看一次分布式請求的調用情況,比如各個節點上的耗時、請求具體打到了哪台機器上、每個服務節點的請求狀態、每次數據庫操作等等。在進行性能的時候,可以通過鏈路跟蹤平台記錄的接口耗時情況分析性能瓶頸,進行針對性的優化。目前主要使用的是 opentracing 協議,主流的實現有 zipkin 和 jaeger。

概念

  • 性能測試:通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
  • 壓力測試:通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試
  • 負載測試:不限制軟件的運行資源,測試軟件的數據吞吐量上限,以發現設計上的錯誤或驗證系統的負載能力。評測和評估測試對象在不同工作量條件下的性能行為,以及持續正常運行的能力。
  • 穩定性測試:被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載一定業務壓力,使系統運行一段較長時間,以此檢測系統是否穩定,一般穩定性測試

指標

  • CPU: CPU 利用率要低於業界警戒值范圍之內,即小於或者等於75%。
  • 內存:內存使用率並不能實際反映系統運行情況。主要要關注內存交換區占比,一般認為70%為臨界值,在壓力,負載測試下要保證內存可用
  • 磁盤:磁盤指標主要有每秒讀寫多少兆,磁盤繁忙率,磁盤隊列數,平均服務時間,平均等待時間,空間利用率。其中磁盤繁忙率是直接反映磁盤是否有瓶頸的的重要依據,一般情況下,磁盤繁忙率要低於70%
  • 響應時間:不同業務的可接受響應時間不同,互聯網企業普通接口應低於500ms。
  • 穩定性:一般在n*12的時間范圍內,系統應保持穩定
  • CPU,內存指標可通過HTOP,jconsole指令查看

參考文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM