代码之家  ›  专栏  ›  技术社区  ›  valiano

使用hprof评测WebSphere以获得CPU样本输出

  •  1
  • valiano  · 技术社区  · 7 年前

    我试图使用hprof over IBM堆栈(AIX/Linux上的J9 JVM)评测WebSphere。具体地说,我对hprof的CPU样本输出感兴趣,特别是启动时间(从WS启动到“准备就绪”为止)。

    问题是,我无法在hprof结果文件中获取CPU样本输出。

    我使用以下JVM参数来配置hprof: -Xrunhprof:cpu=samples,file=path-to-hprof.txt CPU SAMPLES 仅在程序退出时生成输出:

    在程序退出时。

    因此,为了在WebSphere成功启动后优雅地关闭它,我使用 stopServer.sh java.hprof.txt

    我做错了什么?是否有更好的方法将hprof与WebSphere一起使用并生成CPU评测输出?任何帮助都将不胜感激!

    编辑:

    注意:我也在管理控制台GUI中寻找关闭WS的方法,但找不到任何方法。

    P.P.S.:与此同时,我正在使用非常好的 jvmtop 使用 --profile <pid> 选项,但它只提供部分洞察,与hprof相反,必须动态附加,因此执行的某些部分会丢失。

    1 回复  |  直到 7 年前
        1
  •  0
  •   valiano    7 年前

    多亏了@kgibm的有用提示,我意识到自己走上了正确的道路,第二天就回去再试一次。令人惊讶的是,这一次成功了!hprof文件是使用预期的WebSphereCPU示例输出生成的。

    我一直在试验,想弄清楚我一开始做错了什么。以下是我认为已经发生的事情:

    1. Server server1 stop completed 这封信被打印出来了 hprof.txt hprof.txt ,在实际写入CPU样本输出之前。

    2. 然后,为了解决这个问题,我添加了 doe=n hprof参数的参数。 doe 表示退出时转储,默认为 y

    hprof documentation 那 doe=n 选项与 cpu=samples

    推荐文章