监视所有正在运行和生成的JVM

时间:2013-01-18 09:04:43

标签: java memory jvm jenkins out-of-memory

我有一个8Go编译服务器,运行Jenkins实例,一个Jenkins从属代理。所有作业都运行相同的脚本。这个脚本启动了其他脚本和一个大型的ant构建。在这个版本中,可以启动几个JVM(带有fork,junitreports等的javac等)。

我需要跟踪OutOfMemoryError。但我无法使用工具监视生成的Java进程,因为它们是临时的。

我正在寻找一个工具来跟踪服务器上运行的所有当前和未来的JVM,并显示内存图。它存在吗?

3 个答案:

答案 0 :(得分:3)

好问题。我知道有几种监视/检查JVM实例的工具,但据我记得,大多数工具都依赖于JVM已经启动并运行。

我想解决方案是定期运行脚本检查JVM实例(使用命令jps),然后启动其他监控工具......

答案 1 :(得分:0)

我从未听说过这样的工具。

但是您可以使用定期运行的shell脚本执行类似的操作

jps | grep -v -i 'jps'  | cut -d' ' -f 1 | xargs -n1 jmap -heap

答案 2 :(得分:0)

我建议运行JConsole。它是免费的,非常容易分析。您可以跟踪对象的生命,应用程序的质量(通过检查伊甸园空间区域和其他区域)。您可以获得JVM的完整内存使用情况分析。

默认情况下,在下载JDK时会获得JConsole。