概述
jinfo 是 JDK 自帶的命令逮诲,可以用來查看正在運(yùn)行的 java 應(yīng)用程序的擴(kuò)展參數(shù),包括Java System屬性和JVM命令行參數(shù)幽告;也可以動(dòng)態(tài)的修改正在運(yùn)行的 JVM 一些參數(shù)梅鹦。當(dāng)系統(tǒng)崩潰時(shí),jinfo可以從core文件里面知道崩潰的Java應(yīng)用程序的配置信息
jinfo 用法
參數(shù)說明
- pid 對(duì)應(yīng)jvm的進(jìn)程id
- executable core 產(chǎn)生core dump文件
- [server-id@]remote server IP or hostname 遠(yuǎn)程的ip或者h(yuǎn)ostname冗锁,server-id標(biāo)記服務(wù)的唯一性id
option
- no option 輸出全部的參數(shù)和系統(tǒng)屬性
- -flag name 輸出對(duì)應(yīng)名稱的參數(shù)
- -flag [+|-]name 開啟或者關(guān)閉對(duì)應(yīng)名稱的參數(shù)
- -flag name=value 設(shè)定對(duì)應(yīng)名稱的參數(shù)
- -flags 輸出全部的參數(shù)
- -sysprops 輸出系統(tǒng)屬性
Javacore 概述
Javacore齐唆,也可以稱為“threaddump”或是“javadump”,它是 Java 提供的一種診斷特性蒿讥,能夠提供一份可讀的當(dāng)前運(yùn)行的 JVM 中線程使用情況的快照蝶念。即在某個(gè)特定時(shí)刻,JVM 中有哪些線程在運(yùn)行芋绸,每個(gè)線程執(zhí)行到哪一個(gè)類媒殉,哪一個(gè)方法。
應(yīng)用程序如果出現(xiàn)不可恢復(fù)的錯(cuò)誤或是內(nèi)存泄露摔敛,就會(huì)自動(dòng)觸發(fā) Javacore 的生成廷蓉。
示例一: no option
命令:jinfo pid
描述:輸出當(dāng)前 jvm 進(jìn)程的全部參數(shù)和系統(tǒng)屬性
示例二: -flag name
命令:jinfo -flag name pid
描述:輸出對(duì)應(yīng)名稱的參數(shù)
使用該命令,可以查看指定的 jvm 參數(shù)的值马昙。如:查看當(dāng)前 jvm 進(jìn)程是否開啟打印 GC 日志桃犬。
示例三:-flag [+|-]name
命令:jinfo -flag [+|-]name pid
描述:開啟或者關(guān)閉對(duì)應(yīng)名稱的參數(shù)
使用 jinfo 可以在不重啟虛擬機(jī)的情況下,可以動(dòng)態(tài)的修改 jvm 的參數(shù)行楞。尤其在線上的環(huán)境特別有用攒暇。
使用如下:
示例四:-flag name=value
命令:jinfo -flag name=value pid
描述:修改指定參數(shù)的值。
同示例三子房,但示例三主要是針對(duì) boolean 值的參數(shù)設(shè)置的形用。
如果是設(shè)置 value值,則需要使用 name=value 的形式证杭。
使用如下:
注意事項(xiàng) :
jinfo雖然可以在java程序運(yùn)行時(shí)動(dòng)態(tài)地修改虛擬機(jī)參數(shù)田度,但并不是所有的參數(shù)都支持動(dòng)態(tài)修改
示例五: -flags
命令:jinfo -flags pid
描述:輸出全部的參數(shù)
示例六:-sysprops
命令:jinfo -sysprops pid
描述:輸出當(dāng)前 jvm 進(jìn)行的全部的系統(tǒng)屬性