Tag: jconsole

使用JMX以及如何使用现有应用程序

我们已经分发了几年前在JDK 5上开发的Web应用程序。 JMX将如何帮助这个应用程序? 1)它会帮助我监控性能(内存,CPU和网络和磁盘IO)吗? 2)如果是,那么应用程序部署在多个服务器中,如何在一个仪表板中进行监控? 3)我是否必须对现有应用程序进行任何新的代码更改,还是可以在不更改代码的情况下进行监视? 4)除性能监控外,我们还能做些什么? 因为name是Management Extensions(MX)我们可以管理什么以及如何管理? 看来主要目标不是监控,而是管理? 我从Oracle网站http://docs.oracle.com/javase/tutorial/jmx/overview/why.html中提供的教程中了解了很多关于JMX的知识。 似乎一些商业代表准备本教程而不是技术人员。 任何人都可以帮助我理解这个JMX的东西,您的努力是真诚的感谢。 谢谢,你的朋友。

如何使用JMX连接到在EC2上运行的Java实例

我们在连接到在Amazon的EC2集群中运行的Java应用程序时遇到问题。 我们肯定允许“JMX端口”(通常是RMI注册表端口) 和服务器端口(完成大部分工作)到相关实例的安全组。 Jconsole连接但似乎挂起并且从不显示任何信息。 我们正在运行我们的java,如下所示: java -server -jar foo.jar other parameters here > java.log 2>&1 我们尝试过: Telnet到端口连接但不显示任何信息。 我们可以使用remote-X11 over ssh在实例上运行jconsole ,它连接并显示信息。 所以JRE在本地导出它。 打开安全组中的所有端口。 Weeee。 使用tcpdump确保流量不会转到其他端口。 在本地模拟它。 我们总是可以使用相同的应用程序参数连接到我们的本地JRE或在我们网络上其他地方运行的JRE。 java -version输出: OpenJDK Runtime Environment (IcedTea6 1.11.5) (amazon-53.1.11.5.47.amzn1-x86_64) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) 另外,我们使用的是Simple JMX软件包,它允许我们设置RMI注册表和服务器端口,这些端口通常由RMI注册表半随机选择。 您还可以使用以下JMX URI强制执行此操作: service:jmx:rmi://localhost:” + serverPort + “/jndi/rmi://:” + registryPort + […]

Java 6是否为JMX远程连接打开了默认端口?

我的具体问题与JDK 1.6中使用的JMX有关:如果我使用JRE 1.6运行Java进程 com.sun.management.jmxremote 在命令行中,Java是否为远程JMX连接选择了一个默认端口? 背景故事:我目前正在尝试开发一个程序,让客户能够通过JMX从远程机器连接到我们的一个进程。 目标是实现对实时显示控制台上发生的情况的远程调试。 由于他们的服务级别协议,他们强烈有动力捕获尽可能多的数据,如果情况看起来太复杂,无法快速修复,重新启动显示控制台并允许它重新连接到服务器端。 我知道我可以在JDK 1.6进程上运行jconsole,在JDK 1.6.7进程上运行jvisualvm ,同时可以访问控制台。 但是,由于操作要求和涉及的人员问题,我们强烈要求远程获取我们需要的数据并重新启动和运行。 编辑:我知道命令行端口属性 com.sun.management.jmxremote.port=portNum 我想回答的问题是,如果你没有在命令行设置该属性,Java是否会选择另一个端口进行远程监控? 如果是这样,你怎么能确定它可能是什么?

可以从命令行检索jconsole数据吗?

我目前正在使用jconsole来监控我的Java应用程序的性能指标,并希望编写此数据采集​​的 脚本 。 有没有办法检索这些VM指标(堆内存使用情况,线程数,CPU使用率等)到STDOUT ? top -p PID -b -n 1中的数据并没有完全削减它。 谢谢

无法将JCSsole与作为Windows服务运行的Tomcat一起使用

我正在运行tomcat 6.0.18作为Windows服务。 在服务小程序中,jvm配置为默认值,即它使用JRE的jvm.dll。 我试图用JConsole监视此应用程序,但无法在本地连接到它。 我添加了参数-Dcom.sun.management.jmxremote(在使用start.bat脚本启动tomcat时有效)。 但是jvm似乎没有拿起参数。