JVM的監控工具之jinfo


參考博客:https://www.jianshu.com/p/8d8aef212b25

jinfo(ConfigurationInfoforJava)的作用是實時地查看和調整虛擬機各項參數,使用jps命令的-v參數可以查看虛擬機啟動時顯式指定的參數列表。
但如果想知道未被顯式指定的參數的系統默認值,除了去找資料外,就只能使用jinfo的-flag選項進行查詢。

  • no option 輸出全部的參數和系統屬性
  • -flag name 輸出對應名稱的參數
  • -flag [+|-]name 開啟或者關閉對應名稱的參數

我們可以通過jinfo實時的修改虛擬機的參數,但是不是任何命令都可以修改,可以修改的參數我們先來執行這個命令:java -XX:+PrintFlagsFinal -version,會列出當前機器支持的所有參數,那么用jinfo可以修改的參數是什么呢?

只有最后一列顯示manageable的這一列才能進行修改。

仔細查看發現可修改的參數其實並不多,jvm的運行內存一旦在運行時確定下來,那么就無法修改。但是無法一些錯誤信息沒有記錄,或者是處於關閉狀態,還是可以修改的

 

例如我們來查詢idea的進程是否開啟了GC日志信息的詳細打印,我們可以執行這樣的命令:jinfo -flag PrintGCDetails 17312,從結果中我們可以看出是沒有開啟打印GC詳細信息的。

jinfo還可以使用-sysprops選項把虛擬機進程的System.getProperties()的內容打印出來,可以執行命令:jinfo -sysprops 17312。

 

jinfo -flags:會打印當前該線程所有相關的參數,例如我們要來打印idea這個進程的所有相關參數,我們來執行命令:jinfo -flags 40416會列出JVM的版本,顯示當前idea他的非缺省值的東西(也就是你修改過的),還有Command Line 代表的是命令行形式傳遞給idea這個進程的一些參數

 

 查看最大堆內存 jinfo -flag MaxHeapSize 17312 

 

查看所使用的垃圾收集器
jinfo -flag UseConcMarkSweepGC 17312

jinfo -flag UseG1GC 17312
jinfo -flag UseParallelGC 17312

 

可以看出所使用的垃圾回收器是 ParallelGC

 


免責聲明!

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



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