JVM的监控工具之jinfo
參考博客:https://www.jianshu.com/p/8d8aef212b25
jinfo(ConfigurationInfoforJava)的作用是實(shí)時(shí)地查看和調(diào)整虛擬機(jī)各項(xiàng)參數(shù),使用jps命令的-v參數(shù)可以查看虛擬機(jī)啟動(dòng)時(shí)顯式指定的參數(shù)列表。
但如果想知道未被顯式指定的參數(shù)的系統(tǒng)默認(rèn)值,除了去找資料外,就只能使用jinfo的-flag選項(xiàng)進(jìn)行查詢。
- no option 輸出全部的參數(shù)和系統(tǒng)屬性
- -flag name 輸出對(duì)應(yīng)名稱的參數(shù)
- -flag [+|-]name 開(kāi)啟或者關(guān)閉對(duì)應(yīng)名稱的參數(shù)
我們可以通過(guò)jinfo實(shí)時(shí)的修改虛擬機(jī)的參數(shù),但是不是任何命令都可以修改,可以修改的參數(shù)我們先來(lái)執(zhí)行這個(gè)命令:java -XX:+PrintFlagsFinal -version,會(huì)列出當(dāng)前機(jī)器支持的所有參數(shù),那么用jinfo可以修改的參數(shù)是什么呢?
只有最后一列顯示manageable的這一列才能進(jìn)行修改。
仔細(xì)查看發(fā)現(xiàn)可修改的參數(shù)其實(shí)并不多,jvm的運(yùn)行內(nèi)存一旦在運(yùn)行時(shí)確定下來(lái),那么就無(wú)法修改。但是無(wú)法一些錯(cuò)誤信息沒(méi)有記錄,或者是處于關(guān)閉狀態(tài),還是可以修改的
?
例如我們來(lái)查詢idea的進(jìn)程是否開(kāi)啟了GC日志信息的詳細(xì)打印,我們可以執(zhí)行這樣的命令:jinfo -flag PrintGCDetails 17312,從結(jié)果中我們可以看出是沒(méi)有開(kāi)啟打印GC詳細(xì)信息的。
jinfo還可以使用-sysprops選項(xiàng)把虛擬機(jī)進(jìn)程的System.getProperties()的內(nèi)容打印出來(lái),可以執(zhí)行命令:jinfo -sysprops 17312。
?
jinfo -flags:會(huì)打印當(dāng)前該線程所有相關(guān)的參數(shù),例如我們要來(lái)打印idea這個(gè)進(jìn)程的所有相關(guān)參數(shù),我們來(lái)執(zhí)行命令:jinfo -flags 40416會(huì)列出JVM的版本,顯示當(dāng)前idea他的非缺省值的東西(也就是你修改過(guò)的),還有Command Line 代表的是命令行形式傳遞給idea這個(gè)進(jìn)程的一些參數(shù)
?
?查看最大堆內(nèi)存 jinfo -flag MaxHeapSize 17312?
?
查看所使用的垃圾收集器
jinfo -flag UseConcMarkSweepGC 17312
jinfo -flag UseG1GC 17312
jinfo -flag UseParallelGC 17312
?
可以看出所使用的垃圾回收器是 ParallelGC
?
轉(zhuǎn)載于:https://www.cnblogs.com/cheng21553516/p/11223601.html
總結(jié)
以上是生活随笔為你收集整理的JVM的监控工具之jinfo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ERP系统开发平台 (C#语言,支持多数
- 下一篇: ajaxpro框架