1

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

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

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

4

3 回答 3

3

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

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

于 2013-01-18T09:27:50.600 回答
0

我从来没有听说过这样的工具。

但是您可以使用定期运行的 shell 脚本来做类似的事情

jps | grep -v -i 'jps'  | cut -d' ' -f 1 | xargs -n1 jmap -heap
于 2013-01-18T09:21:14.037 回答
0

我建议运行 JConsole。它是免费的,而且是一个非常容易分析的工具。您可以跟踪对象的寿命、应用程序的质量(通过检查 Eden Space 区域和其他区域)。您可以获得 JVM 的完整内存使用分析。

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

于 2013-01-18T09:45:12.397 回答