JVM探秘:jinfo查看JVM運行時參數


本系列筆記主要基於《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》,是這本書的讀書筆記。
如何查看JVM運行時參數,對於線上JVM調優是很關鍵的,因為只有知道了當前使用的JVM參數是什么值,才能知道如何進行調優。
以下JVM參數,可以用來打印JVM運行時參數及它們的值:
參數說明
-XX:+PrintFlagsInitial查看初始值
-XX:+PrintFlagsFinal查看最終的值,因為初始值有可能被修改
-XX:+UnlockExperimentalVMOptions解鎖實驗參數,JVM中有些實驗參數無法直接賦值,必須先使用此參數才能賦值
-XX:+UnlockDiagnosticVMOptions解鎖診斷參數
-XX:+PrintCommandLineFlags打印命令行參數
例如,使用PrintFlagsFinal命令查看JVM參數
Copy
java -XX:+PrintFlagsFinal -version
部分輸出內容如下:
其中,"="表示的是初始值,":="表示的是修改過后的值。
這條命令查看的是執行java命令的當前進程,正式使用中,通常我們查看的是線上的Java程序進程,這時,就會用到JDK命令行工具:jps和jinfo。
所有的JDK工具都可以在Oracle官網的  Java Tools Reference 文檔中找到使用說明,這是主要參考。
jps#
JDK自帶了一些命令行工具,其中jps和Linux命令ps一樣,都是查看進程的,不過jps只用來查看Java進程。
Copy
格式:jps [ options ] [ hostid ]
查看jps的幫助信息:
使用jps命令查看本地Java進程:
輸出Bootstrap的是Tomcat進程,可以使用jps -l輸出包路徑來確認:
使用jps -v查看更多的參數:
jinfo#
jinfo命令用來查看JVM的配置信息。
Copy
格式:jinfo [ option ] pidjinfo [ option ] executable corejinfo [ option ] [ servier-id ] remote-hostname-or-IP
查看jinfo的幫助信息:
使用jinfo -flag [參數] [pid]查看Java堆的最大值:
查看是否使用了G1或者Parallel的收集器:
使用jinfo -flags [pid]查看所有修改過的參數值:
總結#
先通過jps命令找到要查看的Java進程,再使用jinfo命令就可以查看指定Java程序的運行時參數了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM