【基礎+實戰】JVM原理及優化系列之八:如何檢視JVM引數配置?
1. 檢視JAVA版本資訊
2. 檢視JVM執行模式
在$JAVA_HOME/jre/bin下有client和server兩個目錄,分別代表JVM的兩種執行模式。
client執行模式,針對桌面應用,載入速度比server模式快10%,而執行速度為server模式的10分之一。client下預設的堆容量 -Xms1M -Xmx64M
server執行模式,針對伺服器應用。server下預設的堆容量 -Xms128M -Xmx1024M
通過 java -version 檢視JVM的預設執行模式。
通過 java -client -version 檢視JVM的client執行模式環境。
通過 java -server -version 檢視JVM的server執行模式環境。
3. 檢視標準選項
4. 檢視非標準選項
5. 檢視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 |
6. 根據JVM程序ID檢視JVM設定
$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 |
7. 顯示所有可設定引數及預設值
8. 顯示所有可設定引數的當前值
$java -XX:+PrintFlagsFinal |
可結合-XX:+PrintFlagsInitial與-XX:+PrintFlagsFinal對比設定前、設定後的差異,方便知道對那些引數做了調整
9. 顯示出JVM所有跟預設值不同的引數及值
該專題是一個系列,參照了一系列JVM資料,對JVM基礎知識做了摘要總結,並結合實戰做了總結:
通覽該系列文章之後,對JVM會有一個整體的認識,對於JVM問題排查和優化會有一定的幫助,如果想對JVM有更深入的理解和認知,建議深入看一下這本書《Java虛擬機器:JVM高階特性與最佳實踐(最新第二版)》,網上可以找到pdf版的,大家可以自己百度一下。