JDK的命令行工具

1课锌、Jps:虛擬機(jī)進(jìn)程狀況工具

列出正在運(yùn)行的虛擬機(jī)進(jìn)程,并顯示虛擬機(jī)執(zhí)行主類(Main class 函數(shù)所在的類)的名稱以及這些進(jìn)程的本地虛擬機(jī)唯一ID(LVMID)

 jps [options] [hostid]

jps可以通過(guò)RMI協(xié)議查詢開(kāi)啟了RMI服務(wù)的遠(yuǎn)程虛擬機(jī)進(jìn)程狀態(tài)凛俱,hostid就是RMI注冊(cè)表中注冊(cè)的主機(jī)名敛苇。

選項(xiàng) 作用 示例
-q 只輸出LVMID梳码,省略主類的名稱
-m 輸出虛擬機(jī)進(jìn)程啟動(dòng)時(shí)候傳遞給朱磊main()函數(shù)的參數(shù)
配置main啟動(dòng)參數(shù).png
jps-m.png
-l 輸出主類的全名斜筐,如果進(jìn)程執(zhí)行的是Jar包,輸出Jar路徑
jps-l.png
-v 輸出虛擬機(jī)進(jìn)程啟動(dòng)時(shí)JVM參數(shù)
設(shè)置VM參數(shù)
image.png

2邓夕、 jstat: 虛擬機(jī)統(tǒng)計(jì)信息監(jiān)視工具

用于監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令工具 刘莹,它可以 顯示本地或者遠(yuǎn)程虛擬機(jī)中的 類裝載、內(nèi)存焚刚、垃圾收集点弯、JIT編譯等運(yùn)行數(shù)據(jù)

jstat 命令格式
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
如果 是本地虛擬機(jī)進(jìn)程,則vmid跟LVMID一致矿咕,如果是遠(yuǎn)程虛擬機(jī)抢肛,則VMID的格式應(yīng)當(dāng)是:
[protocol:][//] lvmid[@hostname[:port]/servername]
interval 和 count表示 查詢間隔和次數(shù),如果省略這兩個(gè)參數(shù)痴腌,則只查一次

參數(shù)解釋:

option   可以從下面參數(shù)中選擇
-class                 顯示ClassLoad的相關(guān)信息雌团;
-compiler           顯示JIT編譯的相關(guān)信息;
-gc                     顯示和gc相關(guān)的堆信息士聪;
-gccapacity     顯示各個(gè)代的容量以及使用情況;
-gccause             顯示垃圾回收的相關(guān)信息(通-gcutil),同時(shí)顯示最后一次或當(dāng)前正在發(fā)生的垃圾回收的誘因猛蔽;
-gcnew               顯示新生代信息剥悟;
-gcnewcapacity  顯示新生代大小和使用情況灵寺;
-gcold                 顯示老年代和永久代的信息;
-gcoldcapacity    顯示老年代的大星凇略板;
-gcpermcapacity 顯示永久代的大小慈缔;
-gcutil             顯示垃圾收集信息叮称;   
-printcompilation輸出JIT編譯的方法信息;
-t         可以在打印的列加上Timestamp列藐鹤,用于顯示系統(tǒng)運(yùn)行的時(shí)間
-h     可以在周期性數(shù)據(jù)數(shù)據(jù)的時(shí)候瓤檐,可以在指定輸出多少行以后輸出一次表頭
interval 執(zhí)行每次的間隔時(shí)間,單位為毫秒
count   用于指定輸出多少次記錄娱节,缺省則會(huì)一直打印

例如:每250毫秒查詢一次進(jìn)程2746垃圾收集狀況挠蛉,一共查詢20次,那么命令是

jstat -gc 2746 250 20

3肄满、jmap:Java內(nèi)存映像工具

jmap用于生成堆轉(zhuǎn)儲(chǔ)快照谴古,還可以查詢finalize執(zhí)行隊(duì)列、Java堆和永久代的詳細(xì)信息稠歉,如空間使用率掰担、當(dāng)前使用哪種收集器等;

jmap [option] <pid>
        (to connect to running process)
    jmap [option] <executable <core>
        (to connect to a core file)
    jmap [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

基本參數(shù):

-dump:[live,]format=b,file=<filename> 使用hprof二進(jìn)制形式,輸出jvm的heap內(nèi)容到文件=. live子選項(xiàng)是可選的怒炸,假如指定live選項(xiàng),那么只輸出活的對(duì)象到文件. 

-finalizerinfo 打印正等候回收的對(duì)象的信息.

-heap 打印heap的概要信息带饱,GC使用的算法,heap的配置及wise heap的使用情況.

-histo[:live] 打印每個(gè)class的實(shí)例數(shù)目,內(nèi)存占用,類全名信息. VM的內(nèi)部類名字開(kāi)頭會(huì)加上前綴”*”. 如果live子參數(shù)加上后,只統(tǒng)計(jì)活的對(duì)象數(shù)量. 

-permstat 打印classload和jvm heap長(zhǎng)久層的信息. 包含每個(gè)classloader的名字,活潑性,地址,父classloader和加載的class數(shù)量. 另外,內(nèi)部String的數(shù)量和占用內(nèi)存數(shù)也會(huì)打印出來(lái). 

-F 強(qiáng)迫.在pid沒(méi)有相應(yīng)的時(shí)候使用-dump或者-histo參數(shù). 在這個(gè)模式下,live子參數(shù)無(wú)效. 

-h | -help 打印輔助信息 

-J 傳遞參數(shù)給jmap啟動(dòng)的jvm. 

pid 需要被打印配相信息的java進(jìn)程id,創(chuàng)業(yè)與打工的區(qū)別 - 博文預(yù)覽,可以用jps查問(wèn).

例如 生成快照

jmap -dump:format=b,file=dumpfiletest.txt -F 39182

由于在我沒(méi)有 加 -F 的時(shí)候失敗了

39182: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding

所以加上-F強(qiáng)制他生成快照了横媚;

4纠炮、jhat:虛擬機(jī)堆轉(zhuǎn)儲(chǔ)快照分析工具

jhat與jmap搭配使用,jhat分析jmap生成的堆轉(zhuǎn)儲(chǔ)快照灯蝴,jhat內(nèi)置一個(gè)微型的http/html服務(wù)器恢口,分析dump結(jié)果后可以在瀏覽器中查看,已過(guò)一般不會(huì)用這個(gè)來(lái)分析穷躁,也不會(huì)在當(dāng)前服務(wù)器分析耕肩,一般都是講dump文件轉(zhuǎn)儲(chǔ)到另外一臺(tái)專門的服務(wù)器去分析文件
例如:分析jmap生成的dump文件

jhat dumpfiletest.txt

執(zhí)行結(jié)果

然后打開(kāi)瀏覽器訪問(wèn) 127.0.0.1:7000


分析結(jié)果

5、Jstack :Java堆棧跟蹤工具

jstack用于打印出給定的java進(jìn)程ID或core file或遠(yuǎn)程調(diào)試服務(wù)的Java堆棧信息问潭,如果是在64位機(jī)器上猿诸,需要指定選項(xiàng)"-J-d64",Windows的jstack使用方式只支持以下的這種方式:

jstack [-l] pid

如果java程序崩潰生成core文件狡忙,jstack工具可以用來(lái)獲得core文件的java stack和native stack的信息梳虽,從而可以輕松地知道java程序是如何崩潰和在程序何處發(fā)生問(wèn)題。另外灾茁,jstack工具還可以附屬到正在運(yùn)行的java程序中窜觉,看到當(dāng)時(shí)運(yùn)行的java程序的java stack和native stack的信息, 如果現(xiàn)在運(yùn)行的java程序呈現(xiàn)hung的狀態(tài)谷炸,jstack是非常有用的。
命令格式

jstack [ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP

常用參數(shù)

1)禀挫、options: 

executable Java executable from which the core dump was produced.

(可能是產(chǎn)生core dump的java可執(zhí)行程序)

core 將被打印信息的core dump文件

remote-hostname-or-IP 遠(yuǎn)程debug服務(wù)的主機(jī)名或ip

server-id 唯一id,假如一臺(tái)主機(jī)上多個(gè)遠(yuǎn)程debug服務(wù) 

2)旬陡、基本參數(shù):

-F當(dāng)’jstack [-l] pid’沒(méi)有相應(yīng)的時(shí)候強(qiáng)制打印棧信息

-l長(zhǎng)列表. 打印關(guān)于鎖的附加信息,例如屬于java.util.concurrent的ownable synchronizers列表.

-m打印java和native c/c++框架的所有棧信息.

-h | -help打印幫助信息

pid 需要被打印配置信息的java進(jìn)程id,可以用jps查詢.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市语婴,隨后出現(xiàn)的幾起案子描孟,更是在濱河造成了極大的恐慌,老刑警劉巖砰左,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匿醒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡菜职,警方通過(guò)查閱死者的電腦和手機(jī)青抛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酬核,“玉大人蜜另,你說(shuō)我怎么就攤上這事〉找猓” “怎么了举瑰?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蔬螟。 經(jīng)常有香客問(wèn)我此迅,道長(zhǎng),這世上最難降的妖魔是什么旧巾? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任耸序,我火速辦了婚禮,結(jié)果婚禮上鲁猩,老公的妹妹穿的比我還像新娘坎怪。我一直安慰自己,他們只是感情好廓握,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布搅窿。 她就那樣靜靜地躺著,像睡著了一般隙券。 火紅的嫁衣襯著肌膚如雪男应。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天娱仔,我揣著相機(jī)與錄音沐飘,去河邊找鬼。 笑死牲迫,一個(gè)胖子當(dāng)著我的面吹牛薪铜,可吹牛的內(nèi)容都是我干的众弓。 我是一名探鬼主播恩溅,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼隔箍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了脚乡?” 一聲冷哼從身側(cè)響起蜒滩,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奶稠,沒(méi)想到半個(gè)月后俯艰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锌订,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年竹握,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辆飘。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啦辐,死狀恐怖扩氢,靈堂內(nèi)的尸體忽然破棺而出槽袄,到底是詐尸還是另有隱情,我是刑警寧澤行瑞,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布紧卒,位于F島的核電站侥衬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏跑芳。R本人自食惡果不足惜轴总,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望博个。 院中可真熱鬧怀樟,春花似錦、人聲如沸坡倔。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)罪塔。三九已至投蝉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間征堪,已是汗流浹背瘩缆。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佃蚜,地道東北人庸娱。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓着绊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親熟尉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子归露,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355