如何查找對應的JVM參數

JVM參數選項

# 查看標準選項
java -help 	
# 查看-X選項
java -X	
# 查看高級選項 -XX
java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsInitial

JDK11:https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE

JDK8:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC

使用java -XX:+PrintFlagsInitial |grep 關鍵詞,獲得關鍵詞相關的JVM參數。如果是Windows,把grep換成findstr即可。

java -XX:+PrintFlagsInitial 表示打印出所有參數選項的默認值 
java -XX:+PrintFlagsFinal 表示打印出所有參數選項在運行程序時生效的值

例如,查詢Hospot回邊計數器提交OSR編譯請求時的閾值

# windows
$ java -XX:+PrintFlagsInitial | findstr OnStack
     intx OnStackReplacePercentage                  = 140                                 {pd product}
     bool UseOnStackReplacement                     = true                                {pd product}

對照 https://chriswhocodes.com ,輸入參數,查詢這些參數的含義。需要按照JDK版本選擇,例如JDK8沒有CounterHalfLifeTime參數。

PS. 生產環境不建議隨意調整這些參數,保持默認即可。

使用jinfo也可以實現同樣功能

$ jinfo -flag ThreadStackSize 14356
-XX:ThreadStackSize=0

## JDK9起
jhsdb clhsdb --pid 進程號
然後輸入flags去查看

使用XXFOX

使用XXFOX查詢、校驗、優化、生成參數,切換版本。網站還可以分析Java線程dump文件和Java內存dump文件。

https://opts.console.heapdump.cn/

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章