JVM診斷之查看運行參數

問題描述

爲了分析和定位一個Java線上系統問題,咱們須要查看JVM啓動時的一些參數設置,例如:垃圾回收算法、堆大小等等。這些參數可能在啓動腳本中明確指明,也可能採用默認值。在系統運行過程當中其餘人也許動態調整了系統參數。 如何實時查看正在運行的JVM的參數呢?算法

解決方案

能夠採用jcmd來查看正在運行的JVM的參數。jcmd從JDK 7開始引入的一個JVM診斷命令行工具,能夠向運行中的JVM發送診斷命令。bash

查看JVM進程的PID

$ jcmd -l
      27940 sun.tools.jcmd.JCmd -l
      24684 org.codehaus.plexus.classworlds.launcher.Launcher -Prun
      23839 com.intellij.idea.Main
      23951 org.jetbrains.idea.maven.server.RemoteMavenServer

查看進程24684的參數

$ jcmd 24684 VM.flags
      24684:
      -XX:InitialHeapSize=98566144 -XX:MaxHeapSize=1547698176 \
      -XX:MaxNewSize=515899392 -XX:MinHeapDeltaBytes=524288 \
      -XX:NewSize=1572864 -XX:OldSize=96993280 \
      -XX:+UseCompressedClassPointers \
      -XX:+UseCompressedOops -XX:+UseParallelGC

堆大小設置,垃圾回收算法等一目瞭然。maven

相關文章
相關標籤/搜索