背景:你的服务器装好了jdk环境,需要jdk1.5以上
1、下载jvmstat-3_0.zip。下载地址:http://www.oracle.com/technetwork/java/jvmstat-142257.html
2、解压到本地路径,比如我解压的路径是:E:\jvmstat-3_0\jvmstat
3、设置环境变量
计算机--属性--高级系统设置--高级---环境变量
在环境变量path后面添加:
;%JVMSTAT_HOME%\bat;%JVMSTAT_HOME%\bin
4、监控本地的一个java进程
控制台中输入命令: visualgc 进程pid
E:\jvmstat-3_0\jvmstat\bat>visualgc.cmd 19888
5、远程服务器操作(windows和linux的操作是一样的,这里只给出Linux的完整示例):
远程监控linux的java进程这里需要用到jstatd工具( jstat 的 daemon 程序,利用 RMI 进行远程监控)。
一般来说呢,这里是会出现问题的,那就是 permission 的问题了,Sun 的网站上给了相关的解决方法,方法如下
vim $JAVA_HOME/jre/lib/security/java.policy,打开该文件中添加下面的代码:
grant codebase"file:${java.home}/../lib/tools.jar" {
permissionjava.security.AllPermission;
};
在被监控的主机上部署运行jstatd,命令如下,让这个命令放后台运行,或者一直放控制台运行:
./jstatd -J-Djava.rmi.server.hostname=103.235.168.56 -J-Djava.security.policy=all.policy //ip地址为linux远程服务器的ip
6、本地服务器远程被监控linux主机,此时被监控主机的1099端口是需要开放的,能连接的(防火墙设置)
E:\jvmstat-3_0\jvmstat\bat>visualgc.cmd 被监控主机的进程pid@被监控主机的ip
然后就监控完成啦,监控效果如下:
参考了这位小哥的博客哦:
https://blog.csdn.net/yydcj/article/details/8544291