使用VisualVM进行

来源:互联网 发布:黑魂3人物捏脸数据 编辑:程序博客网 时间:2024/05/23 00:11

了解 VisualVM

VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制Java应用程序横跨整个网络的情况。Java应用程序使用人员可以利用它来创建包含所有必要信息的Bug 报告。

远程监控部署在Linux系统下的tomcat服务

通过VisualVM远程连接Linux进行监控JVM的方式有两种,一种是 jstatd ,另一种是 JMX 。

jstatd [options]

        1.为jstatd指定安全策略

在 ${JAVA_HOME}/bin 路径下创建安全策略文件,将文件命名为 jstatd.all.policy  ,并写入如下代码:

grant codebase "file:${java.home}/../lib/tools.jar" {permission java.security.AllPermission;};
启动 jstatd 命令,如下:
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.1.21 &
注:默认端口号为 1099 , & 表示开启守护线程

2.使用jps命令查看正在运行的java命令

jps

返回示例如下:

4892 Bootstrap1296 Jstatd4484 Jps

JMX

1.将catalina-jmx-remote.jar放入$CATALINA_BASE/lib目录

2.修改$CATALINA_BASE/conf/server.xml,在<Server port="8005" shutdown="SHUTDOWN"> 下加入监听器:
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

3.建立文本文件 $CATALINA_BASE/conf/jmxremote.password,其内容为:root root ; 建立文本文件 $CATALINA_BASE/conf/jmxremote.access,其内容为:root readwrite

4.修改 $CATALINA_BASE/bin/catalina.sh 文件,在文件中找到

# ----- Execute The Requested Command -----------------------------------------
并在下面加入启动参数,如下:

CATALINA_OPTS="$CATALINA_OPTS -Xms128m -Xmx200m -XX:PermSize=64M -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC \-Djava.rmi.server.hostname=192.168.1.21 \-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password \-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access \-Dcom.sun.management.jmxremote.ssl=false"
5.开通linux防火墙的端口:10001和10002.(例如:在/etc/sysconfig/iptables中加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10002 -j ACCEPT),
注意要重启防火墙使生效。
参考地址:http://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html




0 0