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

一. jps : 虛擬機(jī)進(jìn)程狀況工具

  1. 功能:列出正在運(yùn)行的虛擬機(jī)進(jìn)程,并顯示虛擬機(jī)執(zhí)行主類(Main Class, main()函數(shù)所在的類)名稱和這些進(jìn)程的本地虛擬機(jī)唯一ID(Local Virtual Machine Identifier, LVMID)帆卓。其他JDK工具大多需要輸入它查詢到的LVMID來確定要監(jiān)控的是哪一個虛擬機(jī)進(jìn)程稽穆。
  2. jps命令格式:
    jps [ options ] [ hostid ]
    jps 可以通過RMI協(xié)議查詢開啟了RMI服務(wù)的遠(yuǎn)程虛擬機(jī)進(jìn)程狀態(tài)冠王,hostid 為RMI注冊表中注冊的主機(jī)名。
  3. 選項(xiàng)
    -q 只輸出LVMID秧骑,省略主類的名稱
    -m 輸出虛擬機(jī)進(jìn)程啟動時傳遞給主類 main() 函數(shù)的參數(shù)
    -l 輸出主類的全名,如果進(jìn)程執(zhí)行的是Jar包扣囊,輸出Jar的路徑
    -v 輸出虛擬機(jī)進(jìn)程啟動時JVM參數(shù)

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

  1. 功能:監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具乎折。可以顯示本地或者遠(yuǎn)程虛擬機(jī)進(jìn)程中的類裝載侵歇、內(nèi)存骂澄、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù)惕虑。
  2. jstat命令格式
    jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]
    如果是本地虛擬機(jī)進(jìn)程坟冲,VMID與LVMID是一致的,如果是遠(yuǎn)程虛擬機(jī)進(jìn)程溃蔫,那VMID的格式應(yīng)當(dāng)是 [ protocol: ] [ // ] lvmid [@hostname[ :port ] /servename ]
    參數(shù)interval和count代表查詢間隔和次數(shù)健提,如果省略這兩個參數(shù),說明只查詢一次伟叛。假設(shè)需要每250毫秒查詢一次進(jìn)程2746垃圾收集狀況私痹,一共查詢20次,那命令應(yīng)當(dāng)是:
    jstat -gc 2764 250 20
  3. 選項(xiàng)
    選項(xiàng)option代表著用戶希望查詢的虛擬機(jī)信息统刮,主要分為3類:類裝載紊遵、垃圾收集、運(yùn)行期編譯狀況侥蒙。
    選項(xiàng)作用-class監(jiān)視類裝載暗膜、卸載數(shù)量、總空間以及類裝載所耗費(fèi)的時間-gc監(jiān)視Java堆狀況鞭衩,包括Eden區(qū)学搜、兩個survisor區(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配置信息工具

  1. 功能:實(shí)時地查看和調(diào)整虛擬機(jī)各項(xiàng)參數(shù)
  2. jinfo命令格式
    jinfo [ option ] pid
  3. 選項(xiàng)
    通過 jinfo -h 命令獲取詳細(xì)信息

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

  1. 功能:用于生成堆轉(zhuǎn)儲快照(一般稱為heapdump或dump文件),查詢finalize執(zhí)行隊(duì)列疾嗅、Java堆和永久代的詳細(xì)信息外厂,如空間使用率、當(dāng)前用的是哪種收集器等代承。
  2. jmap命令格式
    jmap [ option ] vmid
  3. 選項(xiàng)
    選項(xiàng)作用-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堆詳細(xì)信息,如使用哪種回收器膀估、參數(shù)配置幔亥、分代狀況等。只在Linux/Solaris平臺下有效察纯。-histo顯示堆中對象統(tǒng)計信息紫谷,包括類、實(shí)例數(shù)量捐寥、合計容量-permstat以ClassLoader為統(tǒng)計口徑顯示永久代內(nèi)存狀況笤昨。只在Linux/Solaris平臺下有效。-F當(dāng)虛擬機(jī)進(jìn)程對-dump選項(xiàng)沒有響應(yīng)時握恳,可使用這個選項(xiàng)強(qiáng)制生成dump快照瞒窒。只在Linux/Solaris平臺下有效。
  4. 例子
    jmap -dump:format=b,file=eclipse.bin 3500

5.問題
(1)執(zhí)行jmap -heap命令時乡洼,報如下錯誤:
Attaching to process ID 3991, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
(2)解決方案
修改/etc/sysctl.d/10-ptrace.conf文件如下:
kernel.yama.ptrace_scope = 1 ---> kernel.yama.ptrace_scope = 0
(即將1改成0)崇裁,然后重啟即可。

五. jhat : 虛擬機(jī)堆轉(zhuǎn)儲快照分析工具
1.功能:Sun JDK 提供 jhat(JVM Heap Analysis Tool)命令與 jmap 搭配使用束昵,來分析 jmap 生成的堆轉(zhuǎn)儲快照拔稳。jhat 內(nèi)置了一個微型的 HTTP/HTML 服務(wù)器,生成 dump 文件的分析結(jié)果后锹雏,可以在瀏覽器中查看巴比。
2.使用步驟
● 使用jhat [ fileName ] 命令分析堆轉(zhuǎn)儲快照文件
● 使用 http://localhost:7000/ 查看分析結(jié)果 (端口在輸出信息中可以找到)

六. jstack: Java堆棧跟蹤工具

  1. 功能:用于生成虛擬機(jī)當(dāng)前時刻的線程快照(一般稱為threaddump或者javacore文件)。線程快照就是當(dāng)前虛擬機(jī)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長時間停頓的原因轻绞,如線程間死鎖采记、死循環(huán)、請求外部資源導(dǎo)致的長時間等待等都是導(dǎo)致線程長時間停頓的常見原因政勃。線程出現(xiàn)停頓的時候通過 jstack 來查看各個線程的調(diào)用堆棧唧龄,就可以知道沒有響應(yīng)的線程到底在后臺做些什么事情,或者等待什么資源奸远。
  2. jstack命令格式
    jstack [ option ] vmid
  3. 選項(xiàng)
    選項(xiàng)作用-F當(dāng)正常輸出的請求不被響應(yīng)時既棺,強(qiáng)制輸出線程堆棧-l除堆棧外,顯示關(guān)于鎖的附加信息-m如果調(diào)用到本地方法的話懒叛,可以顯示C/C++的堆棧
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丸冕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芍瑞,更是在濱河造成了極大的恐慌晨仑,老刑警劉巖褐墅,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拆檬,死亡現(xiàn)場離奇詭異,居然都是意外死亡妥凳,警方通過查閱死者的電腦和手機(jī)竟贯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逝钥,“玉大人屑那,你說我怎么就攤上這事∷铱睿” “怎么了持际?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哗咆。 經(jīng)常有香客問我蜘欲,道長,這世上最難降的妖魔是什么晌柬? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任姥份,我火速辦了婚禮,結(jié)果婚禮上年碘,老公的妹妹穿的比我還像新娘澈歉。我一直安慰自己,他們只是感情好屿衅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布埃难。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凯砍。 梳的紋絲不亂的頭發(fā)上箱硕,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音悟衩,去河邊找鬼剧罩。 笑死,一個胖子當(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
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年凫碌,在試婚紗的時候發(fā)現(xiàn)自己被綠了扑毡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡盛险,死狀恐怖瞄摊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苦掘,我是刑警寧澤换帜,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站鹤啡,受9級特大地震影響惯驼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揉忘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一跳座、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泣矛,春花似錦疲眷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽换淆。三九已至,卻和暖如春几颜,著一層夾襖步出監(jiān)牢的瞬間倍试,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工蛋哭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留县习,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓谆趾,卻偏偏與公主長得像躁愿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沪蓬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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