java虛擬機內存監控工具

一、jps(JVM Process Status Tool):JVM機進程情況工具java

  • -m 輸出傳遞給main方法的參數,若是是內嵌的JVM則輸出爲null。
  • -l   輸出應用程序主類的完整包名,或者是應用程序JAR文件的完整路徑。
  • -v  輸出傳給JVM的參數

二、jinfo(Configuration Info for Java):JVM配置信息工具c++

  • 能夠輸出並修改運行時的java 進程的opts
  • -flag  輸出,修改,JVM命令行參數

三、Jstack(Stack Trace for Java):JVM堆棧跟蹤工具框架

  • 打印出給定的java進程ID或core file或遠程調試服務的Java堆棧信息
  • 在64位機器上,須要指定選項"-J-d64「
  • -F 當’jstack [-l] pid’沒有相應的時候強制打印棧信息
  • -l  長列表. 打印關於鎖的附加信息,例如屬於java.util.concurrent的ownable synchronizers列表.
  • -m 打印java和native c/c++框架的全部棧信息.
  • -h | -help打印幫助信息

四、jstat(JVM statistics Monitoriing Tool):JVM統計信息監視工具eclipse

  • Java應用程序的資源和性能進行實時的命令行的監控
  •     -gcutil  輸出已使用空間佔總空間的百分比
  •     -gccapacity 輸出堆中各個區域使用到的最大和最小空間

 S0C:年輕代中第一個survivor(倖存區)的容量 (字節)
         S1C:年輕代中第二個survivor(倖存區)的容量 (字節)
         S0U:年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
         S1U:年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
           EC:年輕代中Eden(伊甸園)的容量 (字節)
           EU:年輕代中Eden(伊甸園)目前已使用空間 (字節)
           OC:Old代的容量 (字節)
           OU:Old代目前已使用空間 (字節)
           PC:Perm(持久代)的容量 (字節)
           PU:Perm(持久代)目前已使用空間 (字節)
         YGC:從應用程序啓動到採樣時年輕代中gc次數
       YGCT:從應用程序啓動到採樣時年輕代中gc所用時間(s)
         FGC:從應用程序啓動到採樣時old代(全gc)gc次數
       FGCT:從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
         GCT:從應用程序啓動到採樣時gc用的總時間(s)jvm

    NGCMN:年輕代(young)中初始化(最小)的大小 (字節)工具

    NGCMX:年輕代(young)的最大容量 (字節)性能

        NGC:年輕代(young)中當前的容量 (字節)插件

   OGCMN:old代中初始化(最小)的大小 (字節) 命令行

   OGCMX:old代的最大容量 (字節)調試

       OGC:old代當前新生成的容量 (字節)

   PGCMN:perm代中初始化(最小)的大小 (字節) 

   PGCMX:perm代的最大容量 (字節)   

       PGC:perm代當前新生成的容量 (字節)

          S0:年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比

         S1:年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比

           E:年輕代中Eden(伊甸園)已使用的佔當前容量百分比

           O:old代已使用的佔當前容量百分比

           P:perm代已使用的佔當前容量百分比

  S0CMX:年輕代中第一個survivor(倖存區)的最大容量 (字節)

 S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (字節)

    ECMX:年輕代中Eden(伊甸園)的最大容量 (字節)

       DSS:當前須要survivor(倖存區)的容量 (字節)(Eden區已滿)

          TT: 持有次數限制

       MTT : 最大持有次數限制

五、jmap( Memory Map for Java):JVM內存映像工具

  • 打印出某個java進程(使用pid)內存內的全部‘對象’的狀況(如:產生那些對象,及其數量)

 -dump:[live,]format=b,file=<filename>

  •  使用二進制形式輸出jvm的heap內容到文件中
  • live子選項是可選的,假如指定live選項,那麼只輸出活的對象到文件. 

 -histo[:live] 

  • 打印每一個class的實例數目,內存佔用,類全名信息.
  • VM的內部類名字開頭會加上前綴」*」.
  • 若是live子參數加上後,只統計活的對象數量. 

 -F 強迫.

  • 在pid沒有相應的時候使用-dump或者-histo參數. 
  • 在這個模式下,live子參數無效. 

六、jhat(JVM Heap Analysis Tool):JVM堆轉儲快照分析工具

  • 用於對JAVA heap進行離線分析的工具
  • jhat data.hprof  
  • 執行成功後,訪問http://localhost:7000便可查看內存信息

七、MAT(Memory Analyzer Tool):一個基於Eclipse的內存分析工具

  • 這是eclipse的一個插件,安裝後能夠打開xxx.hprof文件,進行分析,比jhat更方便使用

八、圖形化監控工具

  •  JConsole(Java Monitoring and Management Console) 基於JMX的可視化管理工具。
  •  VisualVM(All-in-one Java Troubleshooting Tool)隨JDK發佈的最強大的運行監視和故障處理程序。
  • 推薦使用VisualVM,他有不少插件,能夠更方便的監控運行時JVM
相關文章
相關標籤/搜索