我想监视生产环境中的JVM性能.我只安装了JRE,而不是JDK,因此我不能使用jstat,jconsole等来监控JVM性能.
有人可以帮助理解我如何在这种情况下监控JVM性能?
有没有办法实现这个目标?
(请注意,我不想通过JMX或其他方式远程监控它.我想在每台机器上安装本地代理,它将以1分钟的间隔将指标发送到服务器.)
谢谢,KS
如果你有足够的耐心和时间来写,你或许可以看看JVMTI。您可以用 C/C++ 编写代码并沿着 Java 进程运行它,并且可以收集有关 JVM 的信息而不影响它。
另一种简单而幼稚的方法是使用用 java 编写的 javaagent 来启动 VM,但 JVMTI 甚至比这更好。javaagent 和 JVMTI 应用程序之间最关键的区别源自加载机制。当代理加载到堆内时,它们由同一个 JVM 管理。而 JVMTI 代理不受 JVM 规则的约束,因此不受 JVM 内部机制(例如 GC 或运行时错误处理)的影响。
如果您使用 JDK7 或更高版本,您甚至可以尝试 Java Mission Control :)
归档时间: |
|
查看次数: |
1927 次 |
最近记录: |