虛擬機性能監(jiān)控與故障處理工具

Java的命令行工具

工具:位于JDK的bin目錄中

這些程序體積都非常小嚎朽,因為這些命令行工具只是jdk/lib/tools.jar類庫的一層薄包裝而已,主要的功能代碼是在tools類庫中實現(xiàn)的:

jps:虛擬機進程狀況工具氛赐。

可以列出正在運行的虛擬機進程,并顯示虛擬機執(zhí)行主類名稱以及這些進程的本地虛擬機唯一ID(LVMID),可以通過RMI協(xié)議查詢開啟了RMI服務(wù)的遠程虛擬機進程狀態(tài)佛析,hostid為RMI注冊表中的注冊的主機名

命令格式:jps [ options ] ?[ hostid ]

執(zhí)行樣例:

相關(guān)選項:

-q:只輸出LVMID栗精,省略主類的名稱

-m:輸出虛擬機進程啟動時傳遞給主類main()函數(shù)的參數(shù)

-l:輸出主類的全名栅炒,如果進程執(zhí)行的是jar包,輸出jar路徑

-v::輸出虛擬機進程啟動時JVM參數(shù)

jstat:虛擬機統(tǒng)計信息監(jiān)視工具

用于監(jiān)視虛擬機各種運行狀態(tài)信息术羔,可以顯示本地或者遠程虛擬機進程中的類裝載赢赊、內(nèi)存、垃圾收集级历、JIT編譯等運行數(shù)據(jù)

命令格式:jstat [ option ?vmid [ interval [ s|ms ] [ count ] ] ](VMID:虛擬機進程 ?interval:查詢間隔 ?count:查詢次數(shù) 如果省略代表只查詢一次)

執(zhí)行樣例:

選項option代表用戶希望查詢的虛擬機信息释移,主要分為三類:類裝載、垃圾收集寥殖、運行期編譯狀況

具體選項及其作用:

-class:監(jiān)視類裝載玩讳、卸載數(shù)量涩蜘、總空間以及類裝載所耗費的時間

-gc:監(jiān)視Java堆狀況,包括Eden區(qū)熏纯、兩個Survivor區(qū)同诫、老年代、永久代等的容量樟澜、已用空間误窖、GC時間合計等信息

-gccapacity:監(jiān)視內(nèi)容與-gc基本相同,但輸出主要關(guān)注Java堆各個區(qū)域使用到的最大最小空間

-gcutil:監(jiān)視內(nèi)容與-gc基本相同秩贰,但輸出主要關(guān)注已使用空間占可用空間的百分比

-gccause:與-gcutil功能一樣霹俺,但是會額外輸出導(dǎo)致上一次GC產(chǎn)生的原因

-gcnew:監(jiān)視新生代GC狀況

-gcnewcapacity:監(jiān)視內(nèi)容與-gcnew基本相同,但輸出主要關(guān)注使用到的最大最小空間

-gcold:監(jiān)視老年代GC狀況

-gcoldcapacity:監(jiān)視內(nèi)容與-gcold基本相同毒费,但輸出主要關(guān)注使用到的最大最小空間

-gcpermcapacity:輸出永久代使用到的最大最小空間

-compiler:輸出JIT編譯器編譯過的方法宗雇、耗時等信息

-printcompilation:輸出已經(jīng)被JIT編譯的方法

jinfo:java配置信息工具

用于實時地查看和調(diào)整虛擬機各項參數(shù)租冠。

命令格式:jinfo [ option ] pid

相關(guān)選項:

-flag ?查詢系統(tǒng)參數(shù)默認值 ? ??

-v ? 查看虛擬機啟動時顯示指定的參數(shù)列表

-flag [ +|- ] name或者-flag name=value ?可以修改一部分運行期可寫的虛擬機參數(shù)值

執(zhí)行樣例:

jmap:Java內(nèi)存映像工具

用于生成堆轉(zhuǎn)儲快照(一般稱為heapdump或dump文件),還可以查詢finalize執(zhí)行隊列、Java堆和永久代的詳細詳細损趋。

命令格式:jmap [ option ] vmid

相關(guān)選項:

-dump:生成Java堆轉(zhuǎn)儲快照蘑辑,格式為:-dump:[live ]format=b, file=<filename>,其中l(wèi)ive子參數(shù)說明是否只dump出存活的對象

-finalizerinfo:顯示在F-Queue中等待Finalizer線程執(zhí)行finalize方法的對象舰讹。只在Linux/Solaris平臺下有效

-heap:顯示Java堆詳細信息娃承,如使用哪種回收器、參數(shù)配置桩匪、分代狀況等打瘪。只在Linux/Solaris平臺下有效

-histo:顯示堆中對象統(tǒng)計信息,包括類傻昙、實例數(shù)量闺骚、合計容量

-permstat:以ClassLoader為統(tǒng)計口徑顯示永久代內(nèi)存狀態(tài)。只在Linux/Solaris平臺下有效

-F:當(dāng)虛擬機進程對-dump選項沒有響應(yīng)時妆档,可用這個選項強制生成dump快照僻爽。只在Linux/Solaris平臺下有效

執(zhí)行樣例:

jhat:虛擬機堆轉(zhuǎn)儲快照分析工具

與jmap搭配使用,來分析jmap生成的堆轉(zhuǎn)儲快照贾惦。jhat內(nèi)置了一個微型的HTTP/HTML服務(wù)器胸梆,生成dump文件的分析結(jié)果后,可以在瀏覽器中查看须板。但 一般不會直接用jhat命令直接分析dump文件碰镜,因為分析工作比較耗時且耗費硬件資源,所以一般會比dump文件復(fù)制到其他機器運行习瑰。各個虛擬機產(chǎn)生的映像文件格式并不一致绪颖,所以分析工具不能通用

執(zhí)行樣例:

屏幕提示“Server is ready”后,在瀏覽器輸入http://localhost:7000/就可以看到分析結(jié)果

jstack:Java堆棧跟蹤工具

用于生成虛擬機當(dāng)前時刻的線程快照(一般稱為threaddump或者Javacore文件)甜奄。線程快照就是當(dāng)前虛擬機內(nèi)每一條線程正在正在執(zhí)行的方法堆棧的集合柠横。生成線程快照的主要目的就是定位線程出現(xiàn)長時間停頓的常見原因窃款,通過jstack來查看各個線程的調(diào)用堆棧,就可以知道沒有響應(yīng)的線程到底在后臺做什么事情牍氛,或者調(diào)用什么資源晨继。

相關(guān)選項:

-F:當(dāng)正常輸出的請求不被響應(yīng)時,強制輸出線程堆棧

-l:除堆棧外搬俊,顯示關(guān)于鎖的附加信息

-m:如果調(diào)用本地方法的話紊扬,可以顯示C/C++的堆棧

執(zhí)行樣例:

HSDIS:JIT生成代碼反匯編的插件

用于將HotSpot虛擬機JIT編譯器動態(tài)生成的本地代碼還原為匯編代碼輸出,同時生成大量的注釋

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悠抹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扩淀,更是在濱河造成了極大的恐慌楔敌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驻谆,死亡現(xiàn)場離奇詭異卵凑,居然都是意外死亡,警方通過查閱死者的電腦和手機胜臊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門勺卢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人象对,你說我怎么就攤上這事黑忱。” “怎么了勒魔?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵甫煞,是天一觀的道長。 經(jīng)常有香客問我冠绢,道長抚吠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任弟胀,我火速辦了婚禮楷力,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵户。我一直安慰自己萧朝,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布夏哭。 她就那樣靜靜地躺著剪勿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪方庭。 梳的紋絲不亂的頭發(fā)上厕吉,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天酱固,我揣著相機與錄音,去河邊找鬼头朱。 笑死运悲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的项钮。 我是一名探鬼主播班眯,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烁巫!你這毒婦竟也來了署隘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤亚隙,失蹤者是張志新(化名)和其女友劉穎磁餐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阿弃,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡诊霹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了渣淳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脾还。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖入愧,靈堂內(nèi)的尸體忽然破棺而出鄙漏,到底是詐尸還是另有隱情,我是刑警寧澤棺蛛,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布泥张,位于F島的核電站,受9級特大地震影響鞠值,放射性物質(zhì)發(fā)生泄漏媚创。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一彤恶、第九天 我趴在偏房一處隱蔽的房頂上張望钞钙。 院中可真熱鬧,春花似錦声离、人聲如沸芒炼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽本刽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間子寓,已是汗流浹背暗挑。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斜友,地道東北人炸裆。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像鲜屏,于是被迫代替她去往敵國和親烹看。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容