回覆列表
  • 1 # 飛航動力

    1.楔子

    jprofiler9.2是一款非常好用且功能強大的跨平臺java必能分析工具,使用它可以有效地對JAVA程式的CPU、記憶體使用情況進行監控行裝,同時還可以對JAVA程式的效能瓶頸進行分析。

    主要功能

    本地會話實時分析模式

    遠端會話實時分析模式

    離線分析模式

    快照比較

    檢視HPROF快照

    JDBC、JPA和NOSQL的資料庫分析

    極好的支援JAVA企業版(JDBC,JPA/Hibernate,JMS和JNDI呼叫)

    更高級別的分析資料(JDBC,JPA/Hibernate,JSP/Servlets,JMS,Web服務和JNDI,RMI呼叫,檔案,套接字和程序的高階資訊)

    記憶體洩漏分析

    強大的CPU分析器

    2.安裝

    建議大家安裝JProfiler9.2.1版本,網上的註冊碼大多都可以用,也可以實現遠端監控。在高的網上的版本註冊碼基本不能使用,會報如下的錯誤:

    JProfiler> ERROR: Invalid license key. Aborting

    安裝教程:jprofiler(Java效能分析工具) 下載安裝

    3. 本地使用

    最好在IDE中使用,方便快捷。也可直接透過GUI分析本地JVM程序。

    IntelliJ IDEA整合JProfiler,入門教程

    JProfiler效能分析工具詳解

    4.監控遠端linux伺服器的JVM程序

    下面兩篇文章簡紹了使用jprofiler怎樣監控遠端linux的tomcat程序。

    jProfiler遠端連線Linux監控tomcat執行狀態1

    jProfiler遠端連線Linux監控tomcat執行狀態2

    那麼如何使用jprofiler監控其它的Java程序?下面將詳細介紹。

    第一步:Linux上安裝jprofiler

    下載軟體linux服務端jprofiler軟體,要與Windows Jprofiler的版本一致(jprofiler_linux_9_2_1.tar.gz):官網地址:http://www.ej-technologies.com/download/jprofiler/files ,下載好後把tar包上傳的linux伺服器,解壓即可(tar -zxvf jprofiler_linux_9_2_1.tar.gz)。

    第二步:遠端主機上運行了的/bin/jpenable代理,開啟一個特定的剖析埠

    進入jprofiler的bin目錄,然後執行./jpenable啟動代理(JVMTI分析代理程式)。然後選擇要監控的jar包,選擇監控的埠,之後出現You can now use the JProfiler...代表執行成功,之後就可以使用Windows Jprofiler分析遠端JVM了。

    第三步:JProfiler啟動遠端會話分析,監聽一個特定的剖析埠

    配置遠端會話分析的IP和Port即可啟動遠端回話分析。

    5.原理

    1.JVMTI

    JDK 本身定義了目標明確並功能完善的JNI( Java Native Interface )與虛擬機器直接進行互動,這些 API 能很方便的進行擴充套件,從而滿足開發者各式的需求.

    JVMTI( JVM Tool Interface),是JAVA虛擬機器提供的本地介面,它是實現排程器以及其它Java執行測試與分析工具的基礎.

    並不一定在所有的JDK提供商都有實現,但在主流的Oracle JDK、Open JDK上都有其實現.

    在開發的過程中一般是使用Agent的方式來使用JVMTI,透過呼叫JVMTI的函式,從JVM中得到當前的執行資訊.

    2.JProfiler內部模型

    3.JProfiler資料採集的原理

    2.JProfiler GUI透過自身Socket的8849埠向位於JVM的JProfiler Agent傳送監控指令.

    3.JProfiler Agent收到指令後向JVMTI註冊事件或執行相關的命令.

    4.JVMTI根據事件和命令的型別返回相對應的資料( 執行緒狀態、物件例項、CPU負荷、GC狀態資訊等)

    5.JProfiler Agent從JVMTI中得到相應資料後將對其進行計算,最終透過Socket傳輸給JProfiler GUI中進行展示.

  • 中秋節和大豐收的關聯?
  • windows7旗艦版玩遊戲卡怎麼?