https://blog.csdn.net/lzj1216/article/details/62042919
監控指標
性能測試通常需要監控的指標包括:
1.服務器Linux(包括CPU、Memory、Load、I/O)。
2.數據庫:1.Mysql 2.Oracle(緩存命中、索引、單條SQL性能、數據庫[/url]線程數、數據池連接數)。
3.中間件:1.Jboss 2. Apache(包括線程數、連接數、日志)。
4.網絡: 吞吐量、吞吐率。
5.應用: jvm內存、日志、FullGC頻率。
6.監控工具(LoadRunner[/url]):用戶執行情況、場景狀態、事務響應時間、TPS等。
7.測試機資源:CPU、Memory、網絡、磁盤空間。
監控工具
性能測試通常采用下列工具進行監控:
1.Profiler。一個記錄log的類,阿里巴巴集團自主開發,嵌入到應用代碼中使用。
2.Jstat。監控java[/url]進程GC情況,判斷GC是否正常。
3.JConsole。監控java內存、javaCPU使用率、線程執行情況等,需要在JVM參數中進行配置。
4.JMap。監控java程序是否有內存泄漏,需要配合eclipse插件或者MemoryAnalyzer來使用。
5.JProfiler。全面監控每個節點的CPU使用率、內存使用率、響應時間累計值、線程執行情況等,需要在JVM參數中進行配置。
6.Nmon。全面監控linux系統資源使用情況,包括CPU、內存、I/O等,可獨立於應用監控。
7.Valgrind。監控C/C++程序是否存在內存泄漏,基於linux環境。
8.Vmmap和ApplicationVerifier。監控C/C++程序是否存在內存泄漏,基於windows環境。
性能分析
可按以下順序:
中間件瓶頸(apache/jboss參數配置、數據庫參數配置)->
應用服務的debug log ->
應用服務的filter log ->
本應用的性能瓶頸(SQL語句、索引、業務邏輯、線程池設置、算法)->
服務提供者的性能瓶頸 ->
相關聯的底層存儲應用的性能瓶頸
分析標准
通過性能指標的表現形式,分析性能是否穩定。比如:
1.響應時間是否符合性能預期,表現是否穩定。
2.應用日志中,超時的概率,是否在可接受的范圍之內。
3.TPS維持在多大的范圍內,是否有波形出現,標准差有多少,是否符合預期。
4.服務器CPU、內存、load是否在合理的范圍內,等等。
分析工具
對於部分性能指標,可借助自動分析工具,統計出數據的總體趨勢:
1.LoadRunner analysis
LoadRunner analysis是loadrunner的一個部件,用於將運行過程中所采集到的數據生成報表,主要用於采集TPS、響應時間、服務器資源使用情況等變化趨勢。
2.Memory Analyzer
Memory Analyzer工具可以解析Jmap dump出來的內存信息,查找是否有內存泄漏。
3.nmon_analyser
nmon工具可以采集服務器的資源信息。列出CPU、MEM、網絡、I/O等資源指標的使用情況。
術語及縮寫詞
測試時間:一輪測試從開始到結束所使用的時間
並發線程數:測試時同時訪問被測系統的線程數。注意,由於測試過程中,每個線程都是以盡可能快的速度發請求,與實際用戶的使用有極大差別,所以,此數據不等同於實際使用時的並發用戶數。
每次時間間隔:測試線程發出一個請求,並得到被測系統的響應后,間隔多少時間發出下一次請求。
平均響應時間:測試線程向被測系統發請求,所有請求的響應時間的平均值。
處理能力:在某一特定環境下,系統處理請求的速度。
cache影響系數:測試數據未必如實際使用時分散,cache在測試過程中會比實際使用時發揮更大作用,從而使測試出的最高處理能力偏高,考慮到這個因素而引入的系數。
用戶習慣操作頻率:根據用戶使用習慣估算出來的,單個用戶在一段時間內,使用此類功能的次數。通常以一天內某段固定的高峰使用時間來統計,如果一天內沒有哪段時間是固定的高峰使用時間,則以一天的工作時間來統計。
預期平均響應時間:由用戶提出的,希望系統在多長時間內響應。注意,這個值並不是某一次訪問的時間,而是一段時間多次訪問后的平均值。
最大並發用戶數:在給定的預期平均響應時間下,系統最多能支持多少個並發用戶。這個數據就是實際可以同時使用系統的用戶數。
