朋的博客

          MySQL資料,Java技術,管理思想,博弈論,Ajax,XP極限編程,H.264,HEVC,HDR
          隨筆 - 86, 文章 - 59, 評論 - 1069, 引用 - 0

          導航

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          隨筆分類(78)

          隨筆檔案(84)

          文章分類(59)

          文章檔案(59)

          搜索

          •  

          積分與排名

          • 積分 - 858734
          • 排名 - 47

          最新評論

          閱讀排行榜

          利用JDK1.5的工具對遠程的Java應用程序進行監測



          ???最近需要在
          Linux 系統上對 Java 的應用系統進行監測,就用到了 JDK1.5 附帶的工具 jps Java Virtual Machine Process Status Tool ,查看 JVM 進程狀態的工具), jstat(Java Virtual Machine Statistics Monitoring Tool ,運行數據監測工具 ) 以及 jstatd jstat daemon 程序,利用 RMI 進行遠程監控)。(建議可以使用 jvmstat 包,可視化的 jstat 監控工具,可以在 http://java.sun.com/performance/jvmstat/ 下載)

          ?

          部署過程描述如下:

          ?

          1.?????? 在需要監測的機器(我這里是 Linux 機器)部署相關應用:

          a)???????? 在你需要進行監測的機器上安裝 JDK1.5 (狂暈一陣子),別倒下(這個部分就不多說了,因為如果這里還要解釋的話,那我就暈了)。

          b)??????? 正確設置 Java 的運行環境。

          c)???????? 啟動 jstatd 進程。

          命令如下: ./jstatd -J-Djava.security.policy=all.policy

          一般來說呢,這里是會出現問題的,那就是 permission 的問題了,還好, Sun 的網站上給了相關的解決方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代碼:

          grant codebase "file:${java.home}/../lib/tools.jar" {

          permission java.security.AllPermission;

          };

          然后重新啟動 jstatd 進程。

          d)??????? 完了,別讓人亂動就好了,我經常是不小心就按 CTRL+C 把程序關閉了。

          2.?????? 在客戶端(監控者使用的機器)的操作:

          a)???????? 使用 jps 查看遠端機器有哪些 JVM 進程在使用當中,命令如下:

          jps 172.25.1.24 // 遠端機器的 IP 地址或名稱

          屏幕輸入如下:

          13686 Jstatd

          14115 XXXJavaServer

          15117 Jserver

          b)??????? 從上面可以看到遠端機器的 Jstatd 進程已經啟動起來了。我們就可以使用 jstat 對相關進程的具體情況進行查看。

          Jstat 命令用法如下:

          jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

          解釋如下:

          Option 包括以下選項:

          -class

          -compiler

          -gc

          -gccapacity

          -gccause

          -gcnew

          -gcnewcapacity

          -gcold

          -gcoldcapacity

          -gcpermcapacity

          -gcutil

          -printcompilation

          ?

          Vmid 就是 jps 查看到的進程 id ,如上 Jserver 的進程 id 15117 。

          Interval 是時間間隔,單位為毫秒, 1000 就是一秒。

          Count 就是需要查看的次數。

          ?

          例子假設我們需要查看 172.25.1.24 機器 vmid 15117 gc 的情況,可以輸入下面的命令:

          jstat -gc 15117@172.25.1.24 1000 3

          然后你能看到四行信息(一行為 title ,剩下的就是你要的信息了),仔細看看就可以發現很多信息的了(如果不明白,可以問我, 6-6 )。

          c)???????? 那么下面就開始配置可視化的監控包, jvmstat ,下載好了后,解壓到任意目錄。

          執行 visualgc ,然后就可以看到可視化的監控窗口。不過,好像現在只提供 Linux 下的 visualgc 的啟動腳本,所以在 Windows 下或者 Linux 最好使用我下面提供的方式:

          Linux 下:

          /usr/java/jdk1.5/bin/java –Xbootclasspath/p:” /usr/java/jdk1.5/lib/tools.jar” –jar jvmstat/jars/visualgc.jar vmid@server

          Windows 下也一樣,就是改改 jdk 的路徑就好了。

          成功執行后你就能看見一個 java 的監視窗口(樣子還蠻專業的),這個時候就 可以開始監視了。

          posted on 2007-03-14 13:50 benchensz 閱讀(4131) 評論(4)  編輯  收藏

          評論

          # re: 利用JDK1.5新工具進行系統性能進行監測  回復  更多評論   

          據說壓力測試的時候用 visualgc 會 Java 死機.
          2007-03-14 14:22 | BeanSoft

          # re: 利用JDK1.5新工具進行系統性能進行監測  回復  更多評論   

          確實是比較容易導致Remote端的JVM CRASH,不過還好我還沒遇見。:-)
          2007-03-14 21:19 | 陳朋奕

          # re: 利用JDK1.5的工具對遠程的Java應用程序進行監測[未登錄]  回復  更多評論   

          把運行后得到的結果,有個貼圖就好了,這樣可以便于我們沒做之前,可以先了解能得哪些信息.
          2008-01-24 03:57 | test

          # re: 利用JDK1.5的工具對遠程的Java應用程序進行監測  回復  更多評論   

          能不能解釋一下運行結果后信息中title的意義,謝謝?。。。。。?
          2008-08-14 09:03 | zzz

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鹿邑县| 万安县| 东明县| 五台县| 瓦房店市| 巴林左旗| 广西| 浠水县| 苏尼特左旗| 晋城| 大石桥市| 黄平县| 千阳县| 井陉县| 承德市| 涿鹿县| 迭部县| 高要市| 宜城市| 常宁市| 丹东市| 正宁县| 自贡市| 双城市| 陵水| 通许县| 巴彦淖尔市| 土默特右旗| 澄城县| 济南市| 大化| 建平县| 全南县| 安顺市| 昔阳县| 营口市| 无棣县| 醴陵市| 易门县| 屯昌县| 田林县|