远程监控JVM之一--命令行(通过jstatd采集,jstat远程获取jvm运行数据)

在被监测的服务器(远程机器)上需要启动一个daemon:jstatd
1、远程机器启动jstatd
1.1、首先需要准备一个java.policy文件,保存到如/home/admin/jstatd.java.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
1.2、启动jstatd(通过如下命令行启动)
jstatd -J-Djava.security.policy=/home/admin/jstatd.java.policy -J-Djava.rmi.server.logCalls=true
1.3、 同时需要执行一个命令看看(linux需要)
Hostname –i
如果显示是127.0.0.1,则需要修改/etc/hosts文件,去掉对本机名的配置,让本机名解析到它的IP地址,如10.20.131.214
2、 做完步骤1,那可以说是万事具备了,很多问题都解决了,接下来在本地先看看远程机器上启动了多少个java进程
[appdeploy@cnsz22vl2175 ~]$ jps rmi:10.202.37.75
92144 start.jar
18883 start.jar
81301 start.jar
24091 Jps
18541 start.jar
21550 Jstatd
可以看到这台机器上启动了多个java程序,一个是第一步我们启动的jstatd,其它为业务进程。

在客户端侧执行

 

3、  看看heap的使用情况吧

C:\Users\01107252>jstat -gcutil 18883@10.202.37.75:1099 1000 1000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545
0.00 0.00 4.38 5.95 97.57 95.44 19 0.672 5 0.874 1.545

 

更多示例 :
(1)使用内部RMI Registry
jstatd -J-Djava.security.policy=all.policy  (默认端口为1099) 
(2)使用外部RMI Registry
a)使用默认值
rmiregistry&
jstatd -J-Djava.security.policy=all.policy
b)使用2020端口
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020 
c)使用2020端口,使用rminame
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName
(3)RMI Registry已经启动,不创建内部RMI Registry
jstatd -J-Djava.security.policy=all.policy -nr
(4)RMI日志能力
jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值