我有一个8Go编译服务器,运行Jenkins实例,一个Jenkins从属代理。所有作业都运行相同的脚本。这个脚本启动了其他脚本和一个大型的ant构建。在这个版本中,可以启动几个JVM(带有fork,junitreports等的javac等)。
我需要跟踪OutOfMemoryError。但我无法使用工具监视生成的Java进程,因为它们是临时的。
我正在寻找一个工具来跟踪服务器上运行的所有当前和未来的JVM,并显示内存图。它存在吗?
答案 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。