在 IBM J9 上进行线程转储需要很长时间

在 IBM J9 上进行线程转储需要很长时间

我正在尝试在 AIX(Java 版本 1.6)上收集 Java 核心。只配置了一个转储代理,它在每个 SIGQUIT 上收集系统转储、堆转储和 Java 核心,因此我使用 HealthCenter 仅请求 javacore。运行正常,它没有启动堆转储或系统转储,但它导致 WebLogic(我知道)服务器在转储时挂起 172 秒(秒,不是毫秒),生成的文件为 88MB。我不知道是什么原因导致 javacore 转储花费这么长时间,以及为什么它会这么大。

本演示文稿中的第 3 张幻灯片表示它应该需要几百毫秒,大约 2MB,这与我在 HotSpot 上看到的非常相似。我知道它说的是 Java 5,但一个主要版本的增加不会带来如此巨大的差异!

是什么原因导致耗时这么长?我能做些什么来加快速度吗?

供参考:堆大小为 16GB,但在转储时堆还不到一半。转储中也没有本机内存信息,使用 IBM TMDA 无法正确显示线程详细信息窗格。我每次转储中都有大约 310 个线程。

相关内容