性能測試須要使用不一樣的工具,結合系統日誌,監控服務器、應用等方面的多項指標。如下闡述監控指標、監控工具、瓶頸分析。java
性能測試一般須要監控的指標包括:linux
服務器 Linux(包括CPU、Memory、Load、I/O)。nginx
數據庫:Mysql(緩存命中、索引、單條SQL性能、數據庫線程數、數據池鏈接數)。sql
中間件:1.tomcat 二、nginx 三、memcache(包括線程數、鏈接數、日誌)。數據庫
網絡: 吞吐量、吞吐率。緩存
應用: jvm內存、日誌、Full GC頻率。tomcat
LoadRunner:用戶執行狀況、場景狀態、事務響應時間、TPS、吞吐量等。服務器
測試機資源:CPU、Memory、網絡、磁盤空間。網絡
Jstat併發
監控java 進程GC狀況,判斷GC是否正常。
JConsole
監控java內存、javaCPU使用率、線程執行狀況等,須要在JVM參數中進行配置。
JMap
監控java程序是否有內存泄漏,須要配合eclipse插件或者MemoryAnalyzer來使用。
JProfiler
全面監控每一個節點的CPU使用率、內存使用率、響應時間累計值、線程執行狀況等,須要在JVM參數中進行配置。
Nmon
全面監控linux系統資源使用狀況,包括CPU、內存、I/O等,可獨立於應用監控。
Probe
全面監控tomcat的線程、內存、JVM CPU 使用率、OS 和 JVM內存使用率、交換區使用率、每30秒內接收到的請求數目等等
Memadim
1. 服務器參數監控:STATS、SETTINGS、ITEMS、SLABS、SIZES實時刷新
2. 服務器性能監控:GET、DELETE、INCR、DECR、CAS等經常使用操做命中率實時監控
3. 支持數據遍歷,方便對存儲內容進行監視
4. 支持條件查詢,篩選出知足條件的KEY或VALUE
分析信息來源
5. 監控工具所採集的信息。包括TPS、響應時間、用戶併發數、JVM內存、Full GC頻率、tomcat鏈接數,數據sql執行時間、memcache的命中率、nginx的鏈接數等。
6. 應用服務器的日誌。包括錯誤日誌、超時日誌等。
7. 項目配合人員所提供的信息。包括DBA提供的數據庫監控信息、開發人員提供的代碼邏輯信息。
分析標準
1.經過性能指標的表現形式,分析性能是否穩定。好比:
2.響應時間是否符合性能預期,表現是否穩定。
3.應用日誌中,超時的機率,是否在可接受的範圍以內。
8. TPS維持在多大的範圍內,是否有波形出現,標準差有多少,是否符合預期。
9. 服務器CPU、內存、load是否在合理的範圍內,等等。
分析工具
對於部分性能指標,可藉助自動分析工具,統計出數據的整體趨勢:
一、LoadRunner analysis 分析
LoadRunneranalysis是loadrunner的一個部件,用於將運行過程當中所採集到的數據生成報表,主要用於採集TPS、響應時間、吞吐量、服務器資源使用狀況等變化趨勢。
二、Memory Analyzer分析
Memory Analyzer工具能夠解析Jmap dump出來的內存信息,查找是否有內存泄漏。
三、nmon_analyser分析
nmon工具能夠採集服務器的資源信息。列出CPU、MEM、網絡、I/O等資源指標的使用狀況。
四、MONyog分析
經過此工具咱們可以跟蹤到執行比較慢的sql語句,而且能夠分析出sql語句執行時掃描的行數,使用的索引狀況。