爲了分析和定位一個Java線上系統問題,咱們須要查看JVM啓動時的一些參數設置,例如:垃圾回收算法、堆大小等等。這些參數可能在啓動腳本中明確指明,也可能採用默認值。在系統運行過程當中其餘人也許動態調整了系統參數。 如何實時查看正在運行的JVM的參數呢?算法
能夠採用jcmd來查看正在運行的JVM的參數。jcmd從JDK 7開始引入的一個JVM診斷命令行工具,能夠向運行中的JVM發送診斷命令。bash
$ 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