虚拟机性能监控与故障排查工具介绍

本文来读书籍《深入理解java虚拟机-JVM高级特性与最佳实践》的阅读笔记,并且对虚拟机性能监控与故障排查一节做了内容整理。

jvm-monitor

关于导图中的两部分内容还是希望大家能够亲自测试体验下,在网上也有不少的文章介绍,这里摘录几篇个人认为不错的文章,供参考:

使用VisualVm监控远程Linux服务器java进程

由于在 linux 服务器上面,使用远程的终端命令看齐来没有那么直观,而服务器上面有没有桌面显示程序,可以采用在客户端(mac/windows/linux)上面进行使用图形化的监控工具,在使用 visualVM 之前,必须先配置远程服务器上面的 jstatd 进程启动才行,关于 jstatd 请参考:
启动方法如下:

1、在启动的目录创建文件 jstatd.all.policy ,加入下面的权限控制,否则会报错 Could not create remote object access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write") java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) at java.security.AccessController.checkPermission(AccessController.java:559) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.System.setProperty(System.java:783) at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)

添加代码内容如下,${java.home}/../lib/tools.jar 最好替换成机器上的地址:

1
2
3
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

2、后台启动 jstatd 进程 :

1
nohup $JAVA_HOME/bin/jstatd -J-Djava.rmi.server.hostname=192.168.9.92 -J-Djava.security.policy=jstatd.all.policy -J-Dcom.sun.management.jmxremote.authenticate=false -J-Dcom.sun.management.jmxremote.ssl=false -J-Dcom.sun.management.jmxremote.port=8888 &

参数说明如下:

  • Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 主机地址,我配置的是外网地址
  • Dcom.sun.management.jmxremote.port=xxx 端口号、配置完端口号之后需要将此端口开放出来 可以使用命令:iptables -A INPUT -p tcp —d port 端口号 -j ACCEPT
  • Dcom.sun.management.jmxremote.authenticate=false 是否开启认证、false的时候可以不使用密码访问

3 、验证可用性

使用 ps -ef|grep -i 8888 来验证该进程是否存在,存在后,在你的客户端使用 jps <ip> 来查看是否能够看到远程机器的虚拟机进程,能看到说明就是OK的。

这样经过这三部,就可以在客户端的VisualVM上查看远程机器的内容了,具体打开 VisualVm 程序,在 Remote 中右键新建连接,输入远程服务器的地址即可,如下图一,点击某一个连接,右键打开即可查看某个进程的情况:监控Linux服务器上面的tomcat进程 如图二 :

visualvm remtote

visualvm tomcat

VisualVm 插件介绍

通过使用“插件”管理器安装由“VisualVM 插件中心”提供的插件,可以向 VisualVM 添加功能。您也可以开发自己的插件,然后将其添加到更新中心来扩展 VisualVM 的功能。

例如,安装 VisualVM-MBeans 插件可以向应用程序标签中添加 “MBeans” 标签,通过此标签,可以在 VisualVM 内监视和管理 MBeans。

安装 VisualVM 插件:

  1. 从主菜单中选择“工具”>“插件”。
  2. 在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
  3. 逐步完成插件安装程序。

visualvm plugins

posted on 2015-10-15 18:43  Yudar  阅读(502)  评论(0编辑  收藏  举报