???最近需要在
Linux
系統(tǒng)上對
Java
的應(yīng)用系統(tǒng)進(jìn)行監(jiān)測,就用到了
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)測工具
)
以及
jstatd
(
jstat
的
daemon
程序,利用
RMI
進(jìn)行遠(yuǎn)程監(jiān)控)。(建議可以使用
jvmstat
包,可視化的
jstat
監(jiān)控工具,可以在
http://java.sun.com/performance/jvmstat/
下載)
?
部署過程描述如下:
?
1.??????
在需要監(jiān)測的機(jī)器(我這里是
Linux
機(jī)器)部署相關(guān)應(yīng)用:
a)????????
在你需要進(jìn)行監(jiān)測的機(jī)器上安裝
JDK1.5
(狂暈一陣子),別倒下(這個部分就不多說了,因?yàn)槿绻@里還要解釋的話,那我就暈了)。
b)???????
正確設(shè)置
Java
的運(yùn)行環(huán)境。
c)????????
啟動
jstatd
進(jìn)程。
命令如下:
./jstatd -J-Djava.security.policy=all.policy
一般來說呢,這里是會出現(xiàn)問題的,那就是
permission
的問題了,還好,
Sun
的網(wǎng)站上給了相關(guān)的解決方法,方法如下,在
jdk/…/security/ java.policy
文件中添加下面的代碼:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
然后重新啟動
jstatd
進(jìn)程。
d)???????
完了,別讓人亂動就好了,我經(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)啟動起來了。我們就可以使用
jstat
對相關(guān)進(jìn)程的具體情況進(jìn)行查看。
Jstat
命令用法如下:
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
解釋如下:
Option
包括以下選項:
-class
-compiler
-gc
-gccapacity
-gccause
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcpermcapacity
-gcutil
-printcompilation
?
Vmid
就是
jps
查看到的進(jìn)程
id
,如上
Jserver
的進(jìn)程
id
是
15117
。
Interval
是時間間隔,單位為毫秒,
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)很多信息的了(如果不明白,可以問我,
6-6
)。
c)????????
那么下面就開始配置可視化的監(jiān)控包,
jvmstat
,下載好了后,解壓到任意目錄。
執(zhí)行
visualgc
,然后就可以看到可視化的監(jiān)控窗口。不過,好像現(xiàn)在只提供
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
的路徑就好了。
成功執(zhí)行后你就能看見一個
java
的監(jiān)視窗口(樣子還蠻專業(yè)的),這個時候就
可以開始監(jiān)視了。