一.Java VisualVM 概述
对于使用命令行远程监控jvm 太麻烦 。 在jdk1.6 中 Oracle 提供了一个新的可视化的。 JVM 监控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目录下。
双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“ 本地 ”、“远程 ” 、“快照 ”三个项目。
“本地 ”下显示的是在 localhost 运行的 Java 程序的资源占用情况,如果本地有 Java 程序在运行的话启动 Java VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、类、线程的 统计信息。
“远程” 项下列出的远程主机上的 Java 程序的资源占用情况,但需要在远程主机上运行 jstatd 守护程序
VisualVM分为 3 类, 本地 它会自动侦测到,并显示出来
双击Local 下的任一节点,看到右边的变化 ,你可以监控 CPU ,内存,类,线程等运行状况,实时监控服务器性能。
右键 VisualVM我们可以看到 Thread Dump, Heap Dump
做 Thread Dump 很快,马上就可以看到结果
Heap Dump要稍花费一些时间(可以看到当前 heap 里对象的数量及占用的比例,做 OOM 很好用)
对其功能不再做描述,可以查阅网上相关质量,我们主要讲的是如何使用 VisualVM 远程监控。
二.使用visualvm 远程监控 JVM
1. 测试环境
Ubuntu Server 10.01
2. 在服务器上安装 jstatd 组件
使用apt-get 命令安装 openjdk 即可 :
- sudo apt-get install openjdk-6-jdk
3. 在服务器上配置 jstatd 的 security policy 文件
jstatd是一个监控 JVM 从创建到销毁过程中资源占用情况并提供远程监控接口的 RMI ( Remote Method Invocation ,远程方法调用)服务器程序,它是一个 Daemon 程序,要保证远程监控软件连接到本地的话需要 jstatd 始终保持运行。
jstatd运行需要通过 -J-Djava.security.policy=*** 指定安全策略,因此我们需要在服务器上建立一个指定安全策略的文件jstatd.all.policy ,文件内容如下:
- grant codebase "file:${java.home}/../lib/tools.jar" {
- permission java.security.AllPermission;
- };
4. 修改服务器 hosts 文件中的 IP 地址
要使Java VisualVM 成功连接到远程服务器上,服务器端应该在 /etc/hosts 文件中把本机地址设为本机的 IP 地址。使用 hostname -i 命令查看,如果显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,需要把 /etc/hosts 文件中相应的地址改为本机实际 IP 。
5. 运行 jstatd 守护程序
由于 jstatd 需要保持一直运行,所以建议使用 screen 命令执行 jstatd 程序,命令如下:
- screen jstatd -J-Djava.security.policy=jstatd.all.policy
如果需要RMI 日志功能的话,还可以在启动参数中加入 -J-Djava.rmi.server.logCalls=true 。
- screen jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true
jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。如果想切换回 jstatd 运行界面的话,使用 screen -r -d命令即可。
6. 通过Java VisualVM 连接到服务器监控 Java 程序
在Java VisualVM 程序窗口左侧 “ 远程 ” 项目右键选择 “ 添加远程主机 ” ,在弹出的对话框中输入远程主机的 IP 地址,确认提交后即可看到相应的远程主机和在上面运行的 Java 程序,连接成功后应该会显示 Jstatd 及其 PID 。
通过以上方式连接服务器发现一个问题,不能监控CPU 。提示我们建立 JMX ,建立 JMX 提示要求端口号。( JMX:Java Management Extensions ,即 Java 管理扩展 , 是一个为应用程序、设备、系统等植入管理功能的框架。 JMX 可以跨越一系列异构操作系统平台、系统体系结构和 网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用 。而Visual VM是通过 JMX 来和远程 Java 应用联系的 )。
7. T omcat中配置
下面我们为54 服务器的 tomcat 配置 jvm 启动参数。 在 tomcat 的 catalina.sh 中添加如下参数:
- JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'
或:
- JAVA_OPTS=’-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.54 其他配置’
注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用
2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl
3. -Dcom.sun.management.jmxremote.authenticate=false 指定了JMX 是否启用鉴权(需要用户名,密码鉴权)
2,3两个是固定配置,是 JMX 的远程服务权限的
4. -Djava.rmi.server.hostname :这个是配置 server 的 IP 的
连接成功,现在我们可以远程监控服务器性能,可以配合 jmeter 进行了一个长时间的加压,在加压过程中重点关注了系统资源的使用情况。
三.参考博客
http://mahuihuang.blog.163.com/blog/static/745292520113202321494/
http://wolfdream.iteye.com/blog/1032712
相关推荐
jvisualvm 是一个功能强大且功能丰富的 Java 监控和 profiling 工具,它可以远程访问和监控 Java 应用程序,包括 Tomcat 应用服务器。下面将详细介绍如何使用 jvisualvm 远程访问 Linux 环境中的 Tomcat。 jdk 的...
本篇文章将深入探讨Tomcat的启动参数配置和监控参数设置,以及如何利用jVisualVM工具来监控Tomcat的运行状态。 一、Tomcat启动参数配置 1. **基本启动参数**: - `-D<name>=<value>`:定义系统属性,例如`-Djava....
本篇文章将详细介绍如何使用Zabbix监控Tomcat,特别是通过JMX(Java Management Extensions)来监控Tomcat,并涉及到相关的jar包和Zabbix模板。 首先,让我们了解一下`cmdline-jmx`和`catalina-jmx`这两个标签所指...
在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...
为了实现远程监控,你需要开启JVM的远程调试端口。这可以通过设置JVM参数 `-Dcom.sun.management.jmxremote`、`-Dcom.sun.management.jmxremote.port`、`-Dcom.sun.management.jmxremote.authenticate` 和 `-Dcom....
为了远程监控Tomcat服务器上的应用,需要对Tomcat进行配置以启用JMX支持。具体步骤如下: 1. **配置catalina.sh**:在Tomcat的`catalina.sh`配置文件中加入以下行: ```sh JAVA_OPTS="$JAVA_OPTS -Djava.rmi....
- JMX(Java Management Extensions)可以远程监控Tomcat的运行状态。 9. **与其他应用服务器集成**: - Tomcat可以作为独立服务器,也可以与Spring Boot、EJB容器(如JBoss、WebLogic)等结合使用。 10. **故障...
9. **监控和故障排查**:使用JMX(Java Management Extensions)可以远程监控Tomcat的状态。`jconsole`或`jvisualvm`等工具可以帮助分析Tomcat的性能和内存状况。 10. **故障恢复**:如果遇到问题,如启动失败,应...
- **JMX远程监控**:通过JMX协议远程监控和管理应用程序。 #### 使用步骤详解 1. **启动jvisualvm**:首先,打开jvisualvm工具,可以通过双击`jvisualvm.exe`文件来启动该工具。 2. **配置Tomcat**:为了实现对...
- 使用JMX(Java Management Extensions)进行远程监控和管理。 10. **社区支持**: - Apache Tomcat拥有庞大的开发者社区,提供丰富的文档、教程和问题解答资源。 总之,Apache Tomcat 10.0.4作为一个强大的...
- Tomcat提供JMX(Java Management Extensions)接口用于远程监控服务器状态。 - 日志文件通常位于"logs"目录下,包括catalina.out和各个主机的日志文件。 7. **优化与性能**: - 根据服务器负载调整"conf/...
使用 VisualVM 工具进行 Tomcat 性能调优和性能监控 本文主要介绍了如何使用 VisualVM 工具来进行 Tomcat 的性能调优和性能监控。下面将详细介绍相关知识点: 一、JDK 内存优化 在 Tomcat 中,默认的堆大小为 128...
- JMX(Java Management Extensions)允许远程管理和监控Tomcat。 以上知识点只是冰山一角,Tomcat的使用和调优是一个持续学习的过程,开发者需要根据具体需求和环境进行适当的配置和调整。持续关注Tomcat的官方...
通过JMX,开发者可以构建管理工具,以实现远程监控、配置、故障检测和性能优化。 【压缩包子文件的文件名称列表】:“jmx_server”:这可能是一个包含与JMX服务器相关的配置文件、示例代码、库或者文档的文件,用于...
同时,JDK的JMX(Java Management Extensions)功能也可以用来远程监控和管理Tomcat服务器。 总结来说,JDK 1.8和Tomcat 8.0的组合是构建和运行Java Web应用程序的标准配置。JDK 1.8的特性提升了开发体验,而Tomcat...
- 使用JVM调优工具(如JVisualVM)监控和调整内存设置。 9. **日志和错误排查**: - 查看`logs`目录下的日志文件,如`catalina.out`,用于诊断问题。 - 使用`catalina.sh`或`catalina.bat`的`debug`选项启动...
此外,对于监控和优化,你可以使用JMX(Java Management Extensions)来远程管理和监控Tomcat的状态,或者利用JVisualVM(包含在JDK中)进行性能分析。同时,使用像JMeter这样的工具进行压力测试,可以帮助你评估...
- 通过`jmxremote`配置,可以使用JMX(Java Management Extensions)远程监控Tomcat状态。 9. **故障排查** - 查看`logs`目录下的日志文件,如`catalina.out`,有助于定位和解决问题。 - 使用JVisualVM或其他...
- Tomcat提供了丰富的监控功能,如JMX(Java Management Extensions)接口,可以用于远程监控服务器状态。 - 日志文件位于`logs`目录下,开发者可以根据需求调整日志级别和格式。 8. **更新与升级**: - 为了...