朋的博客

          MySQL資料,Java技術(shù),管理思想,博弈論,Ajax,XP極限編程,H.264,HEVC,HDR
          隨筆 - 86, 文章 - 59, 評(píng)論 - 1069, 引用 - 0
          數(shù)據(jù)加載中……

          利用JDK1.5的工具對(duì)遠(yuǎn)程的Java應(yīng)用程序進(jìn)行監(jiān)測(cè)



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

          ?

          部署過(guò)程描述如下:

          ?

          1.?????? 在需要監(jiān)測(cè)的機(jī)器(我這里是 Linux 機(jī)器)部署相關(guān)應(yīng)用:

          a)???????? 在你需要進(jìn)行監(jiān)測(cè)的機(jī)器上安裝 JDK1.5 (狂暈一陣子),別倒下(這個(gè)部分就不多說(shuō)了,因?yàn)槿绻@里還要解釋的話,那我就暈了)。

          b)??????? 正確設(shè)置 Java 的運(yùn)行環(huán)境。

          c)???????? 啟動(dòng) jstatd 進(jìn)程。

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

          一般來(lái)說(shuō)呢,這里是會(huì)出現(xiàn)問(wèn)題的,那就是 permission 的問(wèn)題了,還好, Sun 的網(wǎng)站上給了相關(guān)的解決方法,方法如下,在 jdk/…/security/ java.policy 文件中添加下面的代碼:

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

          permission java.security.AllPermission;

          };

          然后重新啟動(dòng) jstatd 進(jìn)程。

          d)??????? 完了,別讓人亂動(dòng)就好了,我經(jīng)常是不小心就按 CTRL+C 把程序關(guān)閉了。

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

          a)???????? 使用 jps 查看遠(yuǎn)端機(jī)器有哪些 JVM 進(jìn)程在使用當(dāng)中,命令如下:

          jps 172.25.1.24 // 遠(yuǎn)端機(jī)器的 IP 地址或名稱

          屏幕輸入如下:

          13686 Jstatd

          14115 XXXJavaServer

          15117 Jserver

          b)??????? 從上面可以看到遠(yuǎn)端機(jī)器的 Jstatd 進(jìn)程已經(jīng)啟動(dòng)起來(lái)了。我們就可以使用 jstat 對(duì)相關(guān)進(jìn)程的具體情況進(jìn)行查看。

          Jstat 命令用法如下:

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

          解釋如下:

          Option 包括以下選項(xiàng):

          -class

          -compiler

          -gc

          -gccapacity

          -gccause

          -gcnew

          -gcnewcapacity

          -gcold

          -gcoldcapacity

          -gcpermcapacity

          -gcutil

          -printcompilation

          ?

          Vmid 就是 jps 查看到的進(jìn)程 id ,如上 Jserver 的進(jìn)程 id 15117

          Interval 是時(shí)間間隔,單位為毫秒, 1000 就是一秒。

          Count 就是需要查看的次數(shù)。

          ?

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

          jstat -gc 15117@172.25.1.24 1000 3

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

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

          執(zhí)行 visualgc ,然后就可以看到可視化的監(jiān)控窗口。不過(guò),好像現(xiàn)在只提供 Linux 下的 visualgc 的啟動(dòng)腳本,所以在 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 的路徑就好了。

          成功執(zhí)行后你就能看見(jiàn)一個(gè) java 的監(jiān)視窗口(樣子還蠻專業(yè)的),這個(gè)時(shí)候就 可以開(kāi)始監(jiān)視了。

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

          評(píng)論

          # re: 利用JDK1.5新工具進(jìn)行系統(tǒng)性能進(jìn)行監(jiān)測(cè)  回復(fù)  更多評(píng)論   

          據(jù)說(shuō)壓力測(cè)試的時(shí)候用 visualgc 會(huì) Java 死機(jī).
          2007-03-14 14:22 | BeanSoft

          # re: 利用JDK1.5新工具進(jìn)行系統(tǒng)性能進(jìn)行監(jiān)測(cè)  回復(fù)  更多評(píng)論   

          確實(shí)是比較容易導(dǎo)致Remote端的JVM CRASH,不過(guò)還好我還沒(méi)遇見(jiàn)。:-)
          2007-03-14 21:19 | 陳朋奕

          # re: 利用JDK1.5的工具對(duì)遠(yuǎn)程的Java應(yīng)用程序進(jìn)行監(jiān)測(cè)[未登錄](méi)  回復(fù)  更多評(píng)論   

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

          # re: 利用JDK1.5的工具對(duì)遠(yuǎn)程的Java應(yīng)用程序進(jìn)行監(jiān)測(cè)  回復(fù)  更多評(píng)論   

          能不能解釋一下運(yùn)行結(jié)果后信息中title的意義,謝謝!!!!!!
          2008-08-14 09:03 | zzz

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 利川市| 保德县| 崇仁县| 增城市| 沈阳市| 柳州市| 申扎县| 宜兰市| 达拉特旗| 武宁县| 界首市| 松溪县| 宁海县| 明光市| 寿阳县| 萨迦县| 栖霞市| 灵宝市| 铁岭市| 韩城市| 陆丰市| 磐石市| 祁连县| 阜阳市| 开江县| 全椒县| 雅江县| 承德县| 五华县| 昭苏县| 淮安市| 冷水江市| 额敏县| 柳河县| 商丘市| 比如县| 延庆县| 墨江| 保定市| 德化县| 鹤岗市|