Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          Java命令行實用工具jps和jstat

          Posted on 2011-01-27 12:04 laogao 閱讀(9485) 評論(0)  編輯  收藏 所屬分類: On Java

          在Linux或其他UNIX和類UNIX環(huán)境下,ps命令想必大家都不陌生,我相信也有不少同學寫過 ps aux | grep java | grep -v grep | awk '{print $2}' 這樣的管道命令來找出Java進程的pid。常言道,Java并非真的"跨平臺",它自己就是平臺。作為平臺,當然也有些基本的工具,讓我們可以用更簡單、更統(tǒng)一,同時又是非侵入的方式來查詢進程相關信息。今天我們就來認識一下其中的兩個。

          jps

          顧名思義,它對應到UNIX的ps命令。用法如下:

          jps [ options ] [ hostid ]

          其中,options可以用 -q (安靜) -m (輸出傳遞給main方法的參數(shù)) -l (顯示完整路徑) -v (顯示傳遞給JVM的命令行參數(shù)) -V (顯示通過flag文件傳遞給JVM的參數(shù)) -J (和其他Java工具類似用于傳遞參數(shù)給命令本身要調(diào)用的java進程);hostid是主機id,默認localhost。

          jstat

          用于輸出給定java進程的統(tǒng)計信息。用法如下:

          jstat -options 可以列出當前JVM版本支持的選項,常見的有 -class (類加載器) -compiler (JIT) -gc (GC堆狀態(tài)) -gccapacity (各區(qū)大小) -gccause (最近一次GC統(tǒng)計和原因) -gcnew (新區(qū)統(tǒng)計) -gcnewcapacity (新區(qū)大小) -gcold (老區(qū)統(tǒng)計) -gcoldcapacity (老區(qū)大小) -gcpermcapacity (永久區(qū)大小) -gcutil (GC統(tǒng)計匯總) -printcompilation (HotSpot編譯統(tǒng)計)

          假定你要監(jiān)控的Java進程號是12345,那么
          jstat -gcutil -t 12345 200 300 即可每200毫秒連續(xù)打印300次帶有時間戳的GC統(tǒng)計信息。

          簡單解釋一下: -gcutil是傳入的option;必選,-t是打印時間戳,是以目標JVM啟動時間為起點計算的,可選;12345是vmid/pid,和我們從jps拿到的是一樣的,必選;200是監(jiān)控時間間隔,可選,不提供就意味著單次輸出;300是最大輸出次數(shù),可選,不提供且監(jiān)控時間間隔有值的話,就是無限期打印下去。

          具體輸出明細的解釋請參考官方文檔 http://download.oracle.com/javase/6/docs/technotes/tools/share/jstat.html

          主站蜘蛛池模板: 芒康县| 贵阳市| 沙河市| 颍上县| 麦盖提县| 绥棱县| 大洼县| 阿坝县| 太白县| 双江| 万宁市| 尚志市| 赤城县| 上饶市| 锦屏县| 澄迈县| 西华县| 东乌珠穆沁旗| 思南县| 迁安市| 丰原市| 顺平县| 呼伦贝尔市| 永德县| 思南县| 城口县| 蒙山县| 安康市| 汉阴县| 汉寿县| 句容市| 肃宁县| 琼结县| 横峰县| 拉萨市| 高雄市| 喀喇沁旗| 麻江县| 甘孜| 芜湖县| 马关县|