- 浏览: 1016433 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
方案发起原因:
Java VisualVM是JDK 6自带的,可视化监控运行中的Java应用程序的详细信息,帮助排除故障和应用程序分析。 Java VisualVM包含有过去独立的JConsole、 jstat、 jinfo、 jstack和 jmap 工具,这就大为提高了监控和应用程序性能的效率。
Java开发人员通过分析Java VisualVM监控生成的堆转储,内存泄漏,MBeans操作,垃圾收集,轻量级的内存和CPU信息,可快速解决应用程序的监控,以提高应用程序的性能。
在实际生产过程中,通常是需要远程监控服务器端应用性能,而远程监控需要一系列的配置,这里我们通过配置一个远程监控来了解Java VisualVM的工作原理。
实验环境:
WebLogic版本:Oracle WebLogic 10 SP3
服务器端操作系统:Red Hat Enterprise Linux AS release 5
客户端操作系统:Microsoft Windows XP SP2
Java VisualVM版本:6.0.180.0
步骤一:
在Oracle WebLogic 10.3启动脚本JAVA_OPTIONS项中加入如下参数:
-Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
指定jmxremote的监控端口和password文件路径,是否需要验证和SSL。
步骤二:
将服务器上Oracle WebLogic 10.3对应的$JAVA_HOME/jre/lib/management/jmxremote.password.template 复制到新建的$JMXRemote_HOME目录下,命令为:
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JMXRemote_HOME/jmxremote.password
对$JMXRemote_HOME目录更改权限,权限为:
chmod 700 $JMXRemote_HOME/jmxremote.password
修改jmxremote.password文件,将monitorRole QED前的注释去掉,使客户端连接的角色为监控者,如图:
步骤三:
查看主机IP地址,命令为: hostname -i ,如果IP为 127.0.0.1 ,则需要修改/etc/hosts中的主机IP,将主机的IP和主机名对应起来,如图:
步骤四:
运行WebLogic启动脚本,查看jmxremote监控端口是否打开
在启动日志中会出现这么一行提示信息:
Management server started on port 6001, ssl=false, authenticate=false.
WebLogic启动完成后,运行命令行:
netstat -na|grep 6001
当看到jmxremote监控端口6001已经打开,那么在服务器端的配置工作就完成。
步骤五:
打开客户端的Java VisualVM,路径如下: $JAVA_HOME/bin/jvisualvm.exe
可以看到如下界面:
步骤六:
添加远程主机,jstatd连接端口可以和JVM监听端口相同,也可以随机设,如图:
步骤七:
添加JMX连接,当监听器设置如图:
注:“步骤一 ”中jmxremote.authenticate=false,所以“使用安全凭证”设不设都没关系。
双击JMX连接,打开监控的对象,如图:
局部放大,如图:
这里我们可以看到服务器端运行的Java应用程序监控信息,如CPU、堆、类、线程等。
到这里就完成了整个Java VisualVM的远程监控配置。
常见问题:
1、Java VisualVM的远程配置步骤较多,尤其是容易忽略hosts的修改,造成WebLogic启动时,主机名解析异常,建立虚拟主机失败,如下:
Error: Exception thrown by the agent:java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: MyLinux: MyLinux [JRockit] Failed to start the management agent. Note that the management agent requires that you either explicitly disable security or that you configure and enable security. Please see the documentation for details. java.lang.RuntimeException: Exception thrown by the agent at sun.management.Agent.error(Agent.java:303) at sun.management.Agent.error(Agent.java:294) at sun.management.Agent.startAgent(Agent.java:151) at sun.management.Agent.startAgent(Agent.java:239) at bea.jrockit.management.server.Main.start0(Main.java:297) at bea.jrockit.management.server.Main.access$000(Main.java:51) at bea.jrockit.management.server.Main$2.run(Main.java:386) at bea.jrockit.management.server.Main.start(Main.java:384) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java:25) at java.lang.reflect.Method.invoke(Method.java:597) at jrockit.management.AgentStarter.startAgent(AgentStarter.java:135) Could not create the Java virtual machine.
解决方案参照“步骤三 ”。
2、当com.sun.management.jmxremote.authenticate=true(默认为true);并且jmxremote.password文件对其他用户权限设置过大,就会报如下错误信息:
Error: Password file read access must be restricted: /app/bea103/jconsole/jmxremote.password
解决方案有:
方案(1):这是更改文件权限
chmod 700 $JMXRemote_HOME/jmxremote.password
方案(2):取消验证功能,在启动脚本JAVA_OPTIONS项中加入如下参数:
-Dcom.sun.management.jmxremote.authenticate=false
3、当com.sun.management.jmxremote.authenticate=true ,但是没有创建jmxremote.password文件,就会报如下错误信息:
Error: Password file not found: $JAVA_HOME/jre/lib/management/jmxremote.password
因为默认情况下,jmxremore.password单独需要创建,解决方案参照“步骤二 ”。
4、当com.sun.management.jmxremote.authenticate=true ,创建Java VisualVM的 JMX时必须要使用“安全凭证”,根据jmxremote.password中设置的Role,输入账号,对应关系是:
monitorRole QED controlRole R&D
java , monitor , VisualVM , weblogic
发表评论
-
调试jdk中的源码,查看jdk局部变量
2013-06-15 23:30 1053调试jdk中的源码,查看jdk局部变量 2012-04 ... -
Eclipse快捷键 10个最有用的快捷键<转>
2013-04-11 23:28 1081Eclipse中10个最有用的快捷键组合 一个Eclip ... -
Lucene 3.6 中文分词、分页查询、高亮显示等
2012-12-09 23:35 18241、准备工作 下载lucene 3.6.1 : htt ... -
Maven实战(九)——打包的技巧(转)
2012-10-12 00:41 940“打包“这个词听起 ... -
基于Maven的web工程如何配置嵌入式Jetty Server开发调试环境(转)
2012-10-12 00:28 9381、首先在web工程的POM文件里添加依赖jar包如下: ... -
轻轻松松学Solr(1)--概述及安装[转]
2012-09-18 14:59 998概述 这段时间对企 ... -
分析Netty工作流程[转]
2012-09-04 19:02 891下面以Netty中Echo的例 ... -
让eclipse在ubuntu下面好看一点
2012-03-27 10:17 923<p> </p> <h1 cla ... -
zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)[转]
2012-01-12 17:59 1652安装和配置详解 本文 ... -
Jakarta-Common-BeanUtils使用笔记[转]
2012-01-10 14:13 1160Jakarta-Common-BeanUtils ... -
一个关于Java Thread wait(),notify()的实用例【转】
2012-01-07 16:05 1024///// // ProducerConsume ... -
Java基础:Java中的 assert 关键字解析【转】
2012-01-06 19:50 1064J2SE 1.4在语言上提供了 ... -
一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发[转]
2012-01-06 15:02 1271六种异常处理的陋习 ... -
如何解决HP QC(Quality Center)在Windows 7下不能工作的问题
2011-12-26 10:48 1586HP QC(Quantity Center) 是一款不错的测 ... -
JAVA读写文件,中文乱码 【转】
2011-12-19 23:43 2122最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。 ... -
Java 6 JVM参数选项大全(中文版)【转】
2011-12-19 19:51 974Java 6 JVM参数选项大全(中文版) 作者 ... -
使用assembly plugin实现自定义打包【转】
2011-12-13 01:58 973在上一篇文章中,讨论到在对maven的机制不熟悉的情况下,为了 ... -
使用maven ant task实现非标准打包[转]
2011-12-13 01:56 1050maven很强大,但是总有些事情干起来不是得心应手,没有使用a ... -
Java日期转换SimpleDateFormat格式大全【转】
2011-12-08 20:22 131724小时制时间 显示: public clas ... -
使用Spring的表单标签库
2011-11-22 20:08 107813.9. 使用Spring的 ...
相关推荐
- **配置远程JVM**:远程JVM需要开启JMX服务,并设置必要的安全策略。在JVM启动参数中添加`-Dcom.sun.management.jmxremote`等相关选项。 - **连接远程JVM**:在VisualVM的"Remote"选项卡中,输入远程主机的IP地址...
如果目标是监控Tomcat服务器,则需要在`catalina.bat`文件中配置`JAVA_OPTS`环境变量来启用远程监控功能。具体配置如下: ```plaintext set JAVA_OPTS=-server-Xms1024m-Xmx1024m-XX:PermSize=128m-XX:MaxPermSize=...
- "java-remote-control"很可能包含了一个简单的JMX远程监控示例,包括服务器端的MBean实现、MBean Server配置以及客户端的连接和控制代码。 - 开发者可以通过阅读源码了解如何创建和注册MBean,设置JMX连接器,并...
### Java VisualVM 监控 WebLogic 配置详解 #### 一、Java VisualVM 概述及环境配置 Java VisualVM 是一个强大的工具,用于监控和分析 Java 应用程序的性能。它自 JDK 1.6 版本起集成在 JDK 中,允许开发者和系统...
Java远程监控程序JSN是一种用于监视和管理分布式Java应用程序的工具。它允许开发者或系统管理员在不中断应用程序运行的情况下收集性能数据、诊断问题并进行优化。JSN(Java Server Monitoring)通常包括各种功能,如...
7.远程监控 8.CPU分析器 9.内存分析器 10.线程分析器 使用场景 性能调优:开发人员可以使用VisualVM来监控Java应用程序的性能指标,如CPU使用率、内存使用率等,从而快速定位性能瓶颈并进行优化。 故障排查:当Java...
jvisualvm 是一个功能强大且功能丰富的 Java 监控和 profiling 工具,它可以远程访问和监控 Java 应用程序,包括 Tomcat 应用服务器。下面将详细介绍如何使用 jvisualvm 远程访问 Linux 环境中的 Tomcat。 jdk 的...
在远程监控方面,VisualVM 支持两种连接方式:jstatd 和 JMX(Java Management Extensions)。本文将详细介绍如何通过 JMX 方式配置并监控远程的 JVM 进程。 首先,要通过 JMX 方式监控远程 JVM,需要在远程主机上...
在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...
VisualVM支持JMX(Java Management Extensions),允许远程监控和管理Java应用程序。开发者可以通过JMX连接到应用,获取运行时信息,甚至修改应用程序的配置。 六、插件扩展性 VisualVM的一大亮点是其强大的插件...
在压缩包中的"84_Java远程监控系统"可能包含了实现以上概念的代码示例、配置文件或教程,帮助用户理解和实践Java远程监控。通过学习和理解这个系统,开发者可以更好地优化和维护他们的Java应用,及时发现和解决问题...
VisualVM可以连接到MBeans服务器,查看和操作MBeans,从而远程管理Java应用程序,执行配置更改或获取运行时信息。 5. **CPU和内存分析**: VisualVM可以深入到CPU使用率的详细级别,展示每个线程的执行情况,帮助...
2. **JMX支持**:通过Java Management Extensions (JMX),VisualVM能够远程连接到运行中的JVM,获取其配置信息,甚至进行管理和操作。 3. **内存分析**:内存分析是VisualVM的一大亮点,它可以显示堆内存的详细使用...
VisualVM是一款强大的Java虚拟机(JVM)监控和分析工具,由Oracle公司开发并提供,是Java开发者进行性能调优的得力助手。它集成了多种功能,包括内存分析、线程检查、CPU使用率监控、类加载和垃圾回收查看等,能够...
2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...
5. **JMX支持**: VisualVM可以通过JMX接口远程监控Java应用程序,收集运行时数据,实现远程管理和配置。 6. **源代码查看**: 如果压缩包包含了源代码,那么开发者可以直接在VisualVM中查看和分析代码,进一步理解...
- 使用VisualVM实时监控Java应用,及时发现性能异常。 - 分析GC日志,结合VisualVM插件理解垃圾收集行为。 - 调整JVM参数以优化GC效率,例如调整新生代和老年代的大小,选择合适的GC策略。 - 观察线程和方法调用...
支持通过JMX(Java Management Extensions)接口远程监控Java应用,获取自定义的MBean(Managed Beans)信息。 6. **内存快照** 提供内存快照功能,可以对比不同时间点的内存分配情况,帮助识别内存泄漏。 7. **...
5. **JMX支持**:VisualVM支持JMX(Java Management Extensions),可以远程监控和管理Java应用程序。 Java 8 VisualVM插件主要包含以下组件: 1. **JFR(Java Flight Recorder)插件**:这是Oracle JDK 8引入的一...