【发布时间】:2012-01-20 10:11:45
【问题描述】:
我想知道是否可以将 visualVM 显示的结果(内存使用情况、GC 活动、堆......)存储在数据库中,以便我们以后查阅?
如果有人有想法,或者是 visualVm 的更好替代品,我将不胜感激。
非常感谢。
【问题讨论】:
标签: java database jvm visualvm
我想知道是否可以将 visualVM 显示的结果(内存使用情况、GC 活动、堆......)存储在数据库中,以便我们以后查阅?
如果有人有想法,或者是 visualVm 的更好替代品,我将不胜感激。
非常感谢。
【问题讨论】:
标签: java database jvm visualvm
所有这些指标都可以使用 JMX 获得。您可以编写一个监控 Java 程序,连接到外部(目标)JVM 的MBeanServer 并将选定的 JMX 指标转储到数据库中。
您还可以使用出色的 Jolokia 库,使用几乎任何支持 HTTP 的语言来获取这些指标。 Jolokia 本身也可以存储所选指标的历史值。
话虽如此,您不能简单地将有趣的值转储到应用程序日志(或者可能转储到某些选定的文件)并离线处理它们吗?日志文件更易于维护(日志框架可以为您删除旧的)和访问(存储在数据库中与日志记录到文件)。
【讨论】:
我不确定“稍后再咨询”是什么意思,但如果您想通过 VisualVM 对收集的数据进行离线分析,您可以从受监控的应用程序创建“应用程序快照”。此应用程序快照封装了数据和图形以及在应用程序监控期间获得的线程转储、堆转储和 CPU/内存快照。
【讨论】: