一、添加远程主机
VisualVm在jdk中,目录:Java\jdk1.8.0_102\bin,找到jvisualvm.exe。
端口默认为1099无需更改,若启动statd时指定了端口号,则填写自定义的端口号。
添加完不能监控?这就对了,因为还需要在远程做一些设置,方式由jstatd和jmc两种方式,这里只说明jstatd方式。
二、jstatd远程配置
加权限。在JAVA_HOME/bin目录下创建一个文件:jstatd.all.policy(可以是别的名字)。
也可以自定义目录创建,但在执行启动目录时需要指定。
cd $JAVA_HOME/bin
vi jstatd.all.policy
编写内容
grant codebase "file:${java.home}/../lib/tools.jar"{
permission java.security.AllPermission;
};
执行启动命令
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.service.hostname=10.7.132.67 &
查看启动结果
sudo netstat -lpnt | grep jstatd
tcp6 0 0 :::1099 :::* LISTEN 15384/jstatd
tcp6 0 0 :::48694 :::* LISTEN 15384/jstatd
三、远程监控
没错 ,回到VisualVM远程界面,双击远程服务器,会发现已经可以监控了。
如果过程中碰到了如下问题,莫慌,仔细检查一下启动命令是否写错了。
四、分析dump文件
五、几个较常用的监控命令
jps 虚拟机进程情况
jstatd 虚拟机运行数据
- jstatd -gc pid:监视堆的情况,容量、已用空间、GC时长等
- jstatd -gcutil pid:和-gc差不多,但主要关注已使用空间占总空间的比例
- 可以后缀时间如:jstatd -gcutil pid 5000,则每5S输出一次
jmap 内存映射
- jmap -heap pid:展示堆详细信息,用了哪种回收器、参数配置、分代情况等
- jmap -dump:format=b,file=xxx.hprof pid:生成当前时刻堆快照
jstack 堆栈跟踪
- jstack pid:生成当前时刻线程快照 threaddump
更多命令入口:JVM故障处理工具,使用总结
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。