首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JVM的历史趋势

JVM的历史趋势
EN

Stack Overflow用户
提问于 2012-11-05 21:13:22
回答 2查看 582关注 0票数 0

有没有现成的开源工具可以监控服务器上的远程JVM进程。

理想情况下,它将通过JMX读取遥测数据,并将其存储到历史数据库中,该数据库具有漂亮的GUI来显示信息

我想要的关键信息是内存、gc时间、线程、类等

EN

回答 2

Stack Overflow用户

发布于 2012-11-05 21:14:43

JDK提供了两个图形工具来监控性能-

  • jVisualVM和
  • jConsole

它们都位于JDK的bin目录中。

不幸的是,它们都不允许以编程方式定期保存快照,也不提供可用于脚本编写的命令行版本。

jmxmonitor是一个很好的开源解决方案

JMX Monitor Project提供了一个守护进程(或命令行)工具来监控一系列JMX服务。

这些文件输出到滚动日志文件中,供外部工具(例如Nagios或Cacti)处理。

另一个选项是Zabbix

Zabbix是一种软件,可以监控网络的大量参数以及服务器的健康和完整性。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。Zabbix基于存储的数据提供出色的报告和数据可视化功能。这使得Zabbix成为容量规划的理想选择。

但是,如果您对直接将基本数据记录到数据库感兴趣,那么编写自己的日志可能是最好的解决方案-尤其是当您想要监视多个VM时-而且这并不是非常困难,请参阅:Monitoring a remote VM through the platform serverMonitoring and Management Using JMX

示例:

代码语言:javascript
复制
final JMXServiceURL address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + SERVER_JMXPORT + "/jmxrmi");
final String[] credentials = new String[] { ADMIN, PASSWORD };
final Map<String, String[]> props = new HashMap<String, String[]>();
props.put("jmx.remote.credentials", credentials);

final JMXConnector connector = JMXConnectorFactory.connect(address, props);
final MBeanServerConnection mbs = connector.getMBeanServerConnection();

//Show the name and the state of all the threads
final ThreadMXBean threadBean = ManagementFactory.newPlatformMXBeanProxy(mbs, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class);
final long[] threadIDs = threadBean.getAllThreadIds();
final ThreadInfo[] threadDataset = threadBean.getThreadInfo(threadIDs);
for (final ThreadInfo threadData : threadDataset) {
    if (threadData != null) {
        System.out.println(threadData.getThreadName() + " " + threadData.getThreadState());
    }
}
System.out.println();
System.out.println("Current: " + threadBean.getThreadCount() + " peak " + threadBean.getPeakThreadCount());

一旦您将数据存储到数据库中,就有很多工具可以用图形格式表示该数据以进行分析。

票数 5
EN

Stack Overflow用户

发布于 2012-11-05 21:17:55

Java是一个提供可视化界面的工具,用于查看在Java虚拟机上运行的VisualVM应用程序的详细信息,以及对这些应用程序进行故障排除和性能分析。

请查看以下链接。

  1. Java VisualVM
  2. jvisualvm - Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13232888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档