1. 程式人生 > >使用Jprofiler+jmeter進行JVM效能調優

使用Jprofiler+jmeter進行JVM效能調優

一、JProfiler簡介

  JProfiler 是一個商業授權的Java剖析工具,由EJ技術有限公司,針對的Java EE和Java SE應用程式開發的。它把CPU、執行緒和記憶體的剖析組合在一個強大的應用中。JProfiler可提供許多IDE整合和應用伺服器整合用途。JProfiler的是一個獨立的應用程式,但其提供Eclipse和IntelliJ等IDE的外掛。它允許兩個記憶體剖面評估記憶體使用情況和動態分配洩漏和CPU剖析,以評估執行緒衝突。JProfiler直覺式的GUI讓你可以找到效能瓶頸、抓出記憶體漏失(memory leaks)、並解決執行緒的問題。它讓你得以對heap walker作資源回收器的root analysis,可以輕易找出記憶體漏失;heap快照(snapshot)模式讓未被參照(reference)的物件、稍微被參照的物件、或在終結(finalization)佇列的物件都會被移除;整合精靈以便剖析瀏覽器的Java外掛功能。

二、JMeter簡介

  Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫、FTP 伺服器, 等等。JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體效能。另外,JMeter能夠對應用程式做功能/迴歸測試,通過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表示式建立斷言。 Apache jmeter 可以用於對靜態的和動態的資源(檔案,Servlet,Perl指令碼,java 物件,資料庫和查詢,FTP伺服器等等)的效能進行測試。它可以用於對伺服器、網路或物件模擬繁重的負載來測試它們的強度或分析不同壓力型別下的整體效能。你可以使用它做效能的圖形分析或在大併發負載測試你的伺服器/指令碼/物件。

三、IDEA安裝JProfiler外掛


點選install安裝該外掛,安裝完成後需要重啟IDEA,

左邊外掛是通過jprofiler啟動tomat,並同時啟動jprofiler監測。右邊工具是將jprofiler直接繫結到一個活動的JVM中,即時進行監測。在通過profiler啟動tomcat的過程中,會出現如圖所示需要選擇的介面,按照需求選擇,我這裡是進行java class的jvm效能測試,所以在Initial recording profile中選擇 CPU recording ,其他按照預設配置即可。

  當然你也可以進行filter過濾設定、jdbc監測設定等。

   選擇完成後,profiler即進行JVM監控操作,這裡可以大致的看到記憶體、GC垃圾回收、Class、執行緒、以及CPU載入情況的監控。

  現在我們重點監控CPU載入情況監控。選中左邊CPU views ,點選Attach可以修改關聯項。

  點選jmeter.bat,啟動jmeter。建立執行緒組,右鍵執行緒組,新增-->配置元件-->HTTP資訊頭管理器+HTTP請求   新增-->斷言-->響應斷言  新增-->監聽器-->檢視結果樹+聚合報告,你也可以按照你的測試要求新增其他需要的元件,我這裡是對rest的介面進行測試,所以這些已經可以滿足要求。Http訊息頭設定 contentType設定為需要的json格式 application/json。在http請求中填寫你的需要測試的服務IP/埠/介面訪問路徑/請求方式/請求協議等資訊。資料如果是post方式提交,請求的引數填寫至Body Data中即可。

  執行緒組執行緒數根據需要進行設定

  

   通過點選工具中部的右三角圖示啟動jmeter測試。啟動完成後,我們可以通過jprofiler的CPU載入檢視檢視對應的method預設級別的載入耗時效能結果。以tree的形式展示,通過這樣,你可以按照耗時進行有針對性的效能優化。同時,你可以通過jmeter的檢視結果樹介面檢視每次請求的相應返回結果資訊。jmeter會根據你的斷言判斷該請求是否成功。可以通過聚合報告檢視整體測試的失敗率等資訊。通過配合執行緒組的同時啟動執行緒量,以及響應時間等資訊來進行壓測,並出具測試報告。