我有一个 8Go 编译服务器,运行一个 Jenkins 实例,一个 Jenkins 从代理。所有作业都运行相同的脚本 sh。这个脚本启动其他脚本和一个大的 ant 构建。在此构建中,可以启动多个 JVM(带有 fork 的 javac、junitreports 等……)。
我需要跟踪 OutOfMemoryError。但是我无法使用工具监视生成的 Java 进程,因为它们是临时的。
我正在寻找一种工具来跟踪服务器上运行的所有当前和未来的 JVM,并显示内存图。它存在吗?
我有一个 8Go 编译服务器,运行一个 Jenkins 实例,一个 Jenkins 从代理。所有作业都运行相同的脚本 sh。这个脚本启动其他脚本和一个大的 ant 构建。在此构建中,可以启动多个 JVM(带有 fork 的 javac、junitreports 等……)。
我需要跟踪 OutOfMemoryError。但是我无法使用工具监视生成的 Java 进程,因为它们是临时的。
我正在寻找一种工具来跟踪服务器上运行的所有当前和未来的 JVM,并显示内存图。它存在吗?
我从来没有听说过这样的工具。
但是您可以使用定期运行的 shell 脚本来做类似的事情
jps | grep -v -i 'jps' | cut -d' ' -f 1 | xargs -n1 jmap -heap
我建议运行 JConsole。它是免费的,而且是一个非常容易分析的工具。您可以跟踪对象的寿命、应用程序的质量(通过检查 Eden Space 区域和其他区域)。您可以获得 JVM 的完整内存使用分析。
默认情况下,您会在下载 JDK 时获得 JConsole。