1. 程式人生 > >jprofiler+Linux+weblogic功能簡介,配置及內存泄漏分析示例

jprofiler+Linux+weblogic功能簡介,配置及內存泄漏分析示例

客戶 cat color 筆記 自定義 r+ htm his 統計

jprofiler簡介:

jprofiler的內存視圖部分可以提供動態的內存使用狀況更新視圖和顯示關於內存分配狀況信息的視圖。所有的視圖都有幾個聚集層並且能夠顯示現有存在的對象和作為垃圾回收的對象。

一、主要功能簡介

1.內存剖析 Memory profiler

JProfiler 的內存視圖部分可以提供動態的內存使用狀況更新視圖和顯示關於內存分配狀況信息的視圖。所有的視圖都有幾個聚集層並且能夠顯示現有存在的對象和作為垃圾回收的對象。

    • 所有對象
      顯示類或在狀況統計和尺碼信息堆上所有對象的包。你可以標記當前值並顯示差異值。
    • 記錄對象 Record objects
      顯示類或所有已記錄對象的包。你可以標記出當前值並且顯示差異值。
    • 分配訪問樹 Allocation call tree
      顯示一棵請求樹或者方法、類、包或對已選擇類有帶註釋的分配信息的J2EE組件。
    • 分配熱點 Allocation hot spots
      顯示一個列表,包括方法、類、包或分配已選類的J2EE組件。你可以標註當前值並且顯示差異值。對於每個熱點都可以顯示它的跟蹤記錄樹。

2.堆遍歷 Heap walker

在JProfiler的堆遍歷器(Heap walker)中,你可以對堆的狀況進行快照並且可以通過選擇步驟下尋找感興趣的對象。堆遍歷器有五個視圖:

    • 類 Classes
      顯示所有類和它們的實例。
    • 分配 Allocations
      為所有記錄對象顯示分配樹和分配熱點。
    • 索引 References
      為單個對象和“顯示到垃圾回收根目錄的路徑”提供索引圖的顯示功能。還能提供合並輸入視圖和輸出視圖的功能。
    • 數據 Data
      為單個對象顯示實例和類數據。
    • 時間 Time
      顯示一個對已記錄對象的解決時間的柱狀圖。

3. CPU 剖析 CPU profiler

JProfiler 提供不同的方法來記錄訪問樹以優化性能和細節。線程或者線程組以及線程狀況可以被所有的視圖選擇。所有的視圖都可以聚集到方法、類、包或J2EE組件等不同層上。CPU視圖部分包括:

    • 訪問樹 Call tree
      顯示一個積累的自頂向下的樹,樹中包含所有在JVM中已記錄的訪問隊列。JDBC,JMS和JNDI服務請求都被註釋在請求樹中。請求樹可以根據Servlet和JSP對URL的不同需要進行拆分。
    • 熱點 Hot spots
      顯示消耗時間最多的方法的列表。對每個熱點都能夠顯示回溯樹。該熱點可以按照方法請求,JDBC,JMS和JNDI服務請求以及按照URL請求來進行計算。
    • 訪問圖 Call graph
      顯示一個從已選方法、類、包或J2EE組件開始的訪問隊列的圖。

4. 線程剖析 Thread profiler

對線程剖析,JProfiler提供以下視圖:

    • 線程歷史 Thread history
      顯示一個與線程活動和線程狀態在一起的活動時間表。
    • 線程監控 Thread monitor
      顯示一個列表,包括所有的活動線程以及它們目前的活動狀況。
    • 死鎖探測圖表 Deadlock Detection
      顯示一個包含了所有在JVM裏的死鎖圖表。
    • 目前使用的監測器 Current monitor useage
      顯示目前使用的監測器並且包括它們的關聯線程。
    • 歷史檢測記錄 History usage history
      顯示重大的等待事件和阻塞事件的歷史記錄。
    • 監測使用狀態 Monitor usage statistics
      顯示分組監測,線程和監測類的統計監測數據。

5.VM 遙感勘測技術 VM telemetry

觀察JVM的內部狀態,JProfiler提供了不同的遙感勘測視圖,如下所示:

    • 堆 Heap
      顯示一個堆的使用狀況和堆尺寸大小活動時間表。
    • 記錄的對象 Recorded objects
      顯示一張關於活動對象與數組的圖表的活動時間表。
    • 垃圾回收 Garbage collector
      顯示一張關於垃圾回收活動的活動時間表。
    • 類 Classes
      顯示一個與已裝載類的圖表的活動時間表。
    • 線程 Threads
      顯示一個與動態線程圖表的活動時間表。

附:JProfiler入門筆記:http://blog.csdn.net/chendc201/article/details/22897999

二、weblogic+jprofiler+Linux配置

A:安裝前準備:

jprofiler客戶端:jprofiler_windows_7_2_2

jprofiler服務端:jprofiler_linux_7_2_2.sh

服務端:

chmod 777 jprofiler_linux_7_2_2.sh  //授權
./jprofiler_linux_7_2_2.sh -c  //安裝

服務端:key註冊碼:http://www.cnblogs.com/what-/p/7284102.html

客戶端與服務器安裝運行.exe Next 傻瓜到底就可以

B:jprofiler配置weblogic

服務端安裝,註冊完key,啟動jprofiler

cp weblogic bin目錄下startWebLogic.sh ,自定義命名文件路徑:例如:D:\aa 即可

ok 以上操作完成後繼續,啟動windows本地jprofiler

技術分享

Next:下一步

技術分享

Next:

技術分享

Next:

選擇服務端 jdk版本:

java -version 查看

技術分享

Next:

目標服務器ip

技術分享

Next:

服務端jprofiler安裝目錄,默認是opt目錄

技術分享

選擇weblogic啟動腳本

技術分享

將生成的startWebLogic_jprofiler.sh 上傳到weblogic 啟動目錄下

技術分享

重啟weblogic 連接後提示

技術分享

連接成功頁面展示如下:

技術分享

三、實戰

A:任務目標

找出項目中內存增大的原因

B:配置說明

os:windows 7

服務器:weblogic 12 c

jdk版本: 1.8.0_77

監控類型:遠程

Jprofiler本地安裝:D:\jprofiler7\bin\jprofiler.exe

服務端安裝:/opt/jprofiler7

weblogic:centos 6.5 路徑:/home/weblogic ........bin/

C:測試項目

新建web項目jprofiler

建包test.jprofiler

在該包下建類文件TestMain.Java 和 TestBean.java

ps:該努力的時候,千萬不要選擇安逸:

jprofiler+Linux+weblogic功能簡介,配置及內存泄漏分析示例