Jvisualvm监控tomcat性能
Linux 查看端口命令
lsof -i:端口号
服务器是linux,我们远程在window系统上监控
使用JMX方式
[root@bspdev jdk1.7.0_09]# cd $JAVA_HOME/jre/lib/management
[root@bspdev management]# pwd
/usr/java/jdk1.7.0_09/jre/lib/management
[root@bspdev management]# ls -l
total 28
-rw-r--r-- 1 root root 3998 Sep 25 2012 jmxremote.access
-rw-r--r-- 1 root root 2856 Sep 25 2012 jmxremote.password.template
-rw-r--r-- 1 root root 14097 Sep 25 2012 management.properties
-rw-r--r-- 1 root root 3376 Sep 25 2012 snmp.acl.template
首先利用password.template文件创建jmxremote.password文件,并且设置相应的读写权限。
[root@bspdev management]# cp jmxremote.password.template jmxremote.password
[root@bspdev management]# ls -l
total 32
-rw-r--r-- 1 root root 3998 Sep 25 2012 jmxremote.access
-rw-r--r-- 1 root root 2856 Jul 5 06:09 jmxremote.password
-rw-r--r-- 1 root root 2856 Sep 25 2012 jmxremote.password.template
-rw-r--r-- 1 root root 14097 Sep 25 2012 management.properties
-rw-r--r-- 1 root root 3376 Sep 25 2012 snmp.acl.template
[root@bspdev management]#
修改jmxremote.password的文件权限,否则报错必须限制口令文件读取访问权限:jmxremote.password
Chmod –R 600 jmxremote.password
将jmxremote.password中的权限部分注释标记去除。
# password "QED". The "controlRole" role has password "R&D".
#
# monitorRole QED
# controlRole R&D
修改为:
monitorRole QED
controlRole R&D
"jmxremote.password" 64L, 2852C written
下一步修改Tomcat的启动语句,将bin/catalina.sh文件vi编辑:
将原
JAVA_OPTS="-Xmx1024M -Xms512M -Xss3M"
export JAVA_OPTS
调整为
CATALINA_OPTS="-Xmx1024M -Xms512M -Xss3M -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
export CATALINA_OPTS
注意这里不要使用JAVA_OPTS这个变量,否则会出现错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use
为什么会出现这个错误呢看官方的说法:
# JAVA_OPTS (Optional) Java runtime options used when any command
# is executed.
# Include here and not in CATALINA_OPTS all options, that
# should be used by Tomcat and also by the stop process,
# the version command etc.
# Most options should go into CATALINA_OPTS.
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.
很明显 JAVA_OPTS变量会被任何命令执行时调用,而CATALINA_OPTS只是在启动、运行、调试的命令中才会被调用。
jmx配置参数
1、配置Tomcat catalina.sh
找到# OS specific support. $var _must_ be set to either true or false.添加如下变量:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1090 --配置jmx远程监听端口1090,指定任意未被占用端口
-Dcom.sun.management.jmxremote.authenticate=true --启用用户认证
-Dcom.sun.management.jmxremote.ssl=false --禁用ssl
-Djava.rmi.server.hostname=10.111.43.164 --绑定远程主机IP
-Dcom.sun.management.jmxremote.acccess.file=/opt/apache-tomcat-7.0.2/jconsole/jmxremote.access --配置用户访问权限
-Dcom.sun.management.jmxremote.password.file=/opt/apache-tomcat-7.0.2/jconsole/jmxremote.password" --配置用户信息,包括用户名和密码
如果不需要配置访问用户名及密码,配置如下:
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1090
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.111.43.164"
选项配置文件说明:$JAVA_HOME/jre/lib/mamagement/jmxremote.properties
2、切换用户到root,修改/etc/hosts添加IP地址。添加如下信息:
10.111.43.164 fmcods.localdomain fmcods localhost.localdomain localhost
3、创建jmxremote.password、jmxremote.access文件
#mkdir -p $JAVA_HOME/jconsole
#cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JAVA_HOME/jconsole/jmxremote.password
#cp $JAVA_HOME/jre/lib/management/jmxremote.access $JAVA_HOME/jconsole/jmxremote.access
修改文件权限:
#chmod -R 775 jconsole
此时提示错误: 必须限制口令文件读取访问: $JAVA_HOME/jconsole/jmxremote.password。
解决办法:在$CATALINA_BASE目录下新建jconsole文件夹,访问文件权限必须是600
#mkdir -p $CATALINA_BASE/jconsole
复制jmxremote.password、jmxremote.access到$CATALINA_BASE/jconsole,修改文件权限
#chmod -R 600 jmxremote.password
#chmod -R 600 jmxremote.access
4、$CATALINA_BASE/bin/shutdown.sh.出现连接端口被占用提示。
5、ps -ef | grep 1090 --被占用端口
6、kill -9 pid
7、重启Tomcat.$CATALINA_BASE/startup.sh
8、jconsole 远程连接
其他参考
http://blog.markshead.com/1129/connecting-visual-vm-to-tomcat-7/
http://blog.itpub.net/17203031/viewspace-765810/
http://ihuangweiwei.iteye.com/blog/1219302
相关推荐
- **监控远程应用**:连接成功后,远程JVM的监控功能与本地应用相同,可以进行性能监控、内存分析等操作。 5. **使用插件扩展功能** VisualVM的插件中心提供许多扩展,如JProfiler、NetBeans Profiler等,可以...
jvisualvm 远程访问 Linux ...使用 jvisualvm 远程访问 Linux 环境中的 Tomcat 需要安装和配置 jdk 和 Tomcat,然后使用 jvisualvm 的 JMX 方法或 jstatd 方法进行监控,最后添加 Visual GC 插件以获取更多的监控信息。
VisualVM支持JMX(Java Management Extensions),允许远程监控和管理Java应用程序。开发者可以通过JMX连接到应用,获取运行时信息,甚至修改应用程序的配置。 六、插件扩展性 VisualVM的一大亮点是其强大的插件...
**JMX配置与使用** Java Management Extensions (JMX) 是Java平台的一项标准技术,它提供了一种管理和监视Java应用程序的方法。通过JMX,开发者可以创建管理接口,暴露应用程序的内部状态,如性能指标、资源使用...
在本场景中,我们关注的是如何利用JMX来远程监控服务器上的关键资源,如CPU利用率、内存状态、已加载类的数量以及堆内存信息。下面将详细探讨这些知识点。 一、JMX 概述 JMX 是一种服务导向架构,它定义了管理和...
要设置远程监控,需确保远程JVM启用JMX,并配置了正确的端口和访问权限。在VisualVM中,可以通过“文件”->“打开远程主机”来添加远程服务器。 总结来说,VisualVM是一个强大的Java性能分析工具,它通过丰富的视图...
**Tomcat开启远程JMX连接方式详解** Java Management Extensions (JMX) 是Java...通过JMX,你可以使用各种工具(如JConsole、VisualVM、JMX Console插件等)进行远程监控,以便更好地管理和优化Tomcat服务器的性能。
2. **安全配置**: 为了防止未经授权的访问,需要配置JMX安全策略,包括设置访问控制和认证。 3. **端口设置**: JMX默认使用随机端口,可通过`-Dcom.sun.management.jmxremote.port`指定固定端口。 4. **连接器配置...
5. 如何在VisualVM中配置JMX连接,监控远程应用。 通过深入研究jmxdemo的源代码,你将能更好地掌握JMX的用法,了解如何在实际项目中运用这一强大工具来管理和监控Java应用。同时,VisualVM的使用也能提升你对Java...
要实现远程监控,需要配置JMX RMI服务,让JMX服务器暴露一个RMI注册表,允许远程客户端连接。这通常涉及到在Java虚拟机(JVM)启动时添加特定的系统属性,如`com.sun.management.jmxremote`、`...
VisualVM支持JMX(Java Management Extensions),可以远程监控和管理Java应用程序,这对于分布式系统和集群环境尤其有用。 6. **插件扩展** VisualVM的可扩展性很强,拥有丰富的插件库。开发者可以根据需要安装...
2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...
支持通过JMX(Java Management Extensions)接口远程监控Java应用,获取自定义的MBean(Managed Beans)信息。 6. **内存快照** 提供内存快照功能,可以对比不同时间点的内存分配情况,帮助识别内存泄漏。 7. **...
要监控远程服务器上的 Java 应用程序,如 WebLogic 服务器,需要进行额外的配置。 ##### 1. 添加远程主机 - 在 Java VisualVM 中选择“远程”标签页,然后右键点击并选择“添加远程主机”选项。 - 输入要监控的...
5. **JMX支持**:可以连接到远程JVM,进行远程监控和管理。 三、使用步骤 1. **安装与启动**:VisualVM通常随JDK一同安装,位于`安装目录>\bin\visualvm.exe`。启动后,可以自动发现本地的Java进程,也可以手动...
6. **JMX支持**:VisualVM可以通过JMX(Java Management Extensions)接口连接远程Java应用,实现远程监控和管理。 7. **插件扩展**:VisualVM支持丰富的第三方插件,如JProfiler、YourKit等,进一步扩展其功能,...
在远程服务器上启动Java应用程序时,可以通过添加特定的JMX参数来开启远程监控功能。例如,如下命令展示了如何配置JMX地址、端口等信息: ```sh nohup java -Xms512m -Xmx2048m -XX:PermSize=64m -XX:MaxPermSize...
本文将详细介绍如何通过 JMX 方式配置并监控远程的 JVM 进程。 首先,要通过 JMX 方式监控远程 JVM,需要在远程主机上配置一些参数。具体步骤如下: 1. 修改远程主机的 JDK 配置文件,以便远程主机的 JMX 服务能够...
对于远程连接,VisualVM支持JMX远程监控,只需在JVM启动时添加适当的JVM参数即可。此外,VisualVM还支持插件扩展,可以通过安装各种社区开发的插件来增强其功能,比如对特定框架或库的性能分析支持。 在优化Java...