IBM Support

i can...和你的JVMs工作

Technical Blog Post


Abstract

i can...和你的JVMs工作

Body

本文英文原文:http://ibmsystemsmag.blogs.com/i_can/java/
   
    这周刊登的内容是由Arv Fisher所写,Arv 曾是IBM i开发试验室Java开发组的team leader. 感谢Arv!

  你是否曾想过查看当前垃圾回收(GC)堆的大小, 看看GC的性能或者显示JVM启动时的参数? 如果你有使用JAVA的环境, 很多这类问题可能就会涌现在你的脑海里.
 
    IBM i 6.1新增3个命令可帮助回答你的JVM环境和性能问题:
         Work With JVM Jobs (WRKJVMJOB)
       Print JVM Job (PRTJVMJOB)
         Generate JVM Dump (GENJVMDMP)
      这些新命令, 对所有运行IBM Technology for Java (IT4J) 虚拟机的Job都有效.

    默认情况下WRKJVMJOB可列出当前所有活动的JVMs而不管它们是如何启动的. GC信息,JVM参数, 环境变量, 进程信息包括JAVA进程名, JAVA堆栈架构, 本机堆大小等等都可使用WRKJVMJOB得到.(一个相当精彩之处是: 在WRKJVMJOB出现之前, 除非是你自己的Job,否则没有接口可以容易的显示Job的环境变量. 所以, WRKJVMJOB除了查看/操作JVM外, 还有很多有趣的功能)
    当研究JVM的性能时, GC的信息是必需的. 大多数人都不会选择一直启用verbose GC,  而为了启用verbose GC所被迫重启JVM也并不总是一个唯一候选. 对每个IT4J JVM, IBM i始终记录最新的300个GC循环. 使用WRKJVMJOB可以将GC循环表输出到假脱机文件里. 假脱机文件里的GC信息是略可读的格式, 或者是IBM Support Assistant (ISA) Version 4能使用IBM的Java监督诊断工具--垃圾回收和内存可视工具(GCMV)--来分析GC信息. 如果你有自己喜欢的工具来分析传统的verbose GC信息, 你可在JAVA命令行里指定-verbosegc



或仅使用WRKJVMJOB随时启用及关闭verbose GC. IBM i甚至允许你从未启用verbose GC的JVM上收集GC信息.

    对GC堆中的JAVA object进行分析感兴趣么?可以使用WRKJVMJOB简化这一任务.对堆进行深度地分析, 你需要生成一个堆的dump. 在过去的IBM i及其他平台上, 你不得不在启动JVM 时使用专门的Xdump 选项, 找到JVM的线程识别符然后发出一个看上去像"kill -QUIT 5342"的命令. 我想你第一次使用这个命令的时候就在考虑, 可能你现在仍然在考虑, "他们正在想什么?". 在IBM i上, 我们认同并考虑我们能做的帮助. 不启动带有任何特殊选项的JVM, 使用WRKJVMJOB 让任意IT4J JVM产生堆的dump. 我们拥有根据你的需要产生Java或系统dump的能力. 一旦你有了堆dump, 你可用ISA Version 4来使用Memory Dump Diagnostic for Java (MDD4J)工具进行分析GC堆. 有时候特殊的Xdump选项可能是必要的, 就像过去那样, 你仍然能在命令行里指定它们. 在Work With JVM Jobs面板上, 我们也为WRKJVMJOB提供一个选项,(12=Dump), 根据Java命令行中指定的选项产生dump.

    WRKJOB也有一个新选项, 45, 用来激活WRKJVMJOB, 如果那个job有一个活动的JVM. 在WRKJVMJOB上试验一下, 你将可能发现很多有用且易于获取的信息. 请确保安装最新的Java Group PTF得到这些命令的最新版本.

    新命令不支持Classic JVM。在6.1后续发布的版本中,IT4J将是唯一被支持的JVM。其他信息参考Upgrade Planning Statement for the Java Developer Kit
    WRKJVMJOB的全部参数选项在信息中心的complete list of options for WRKJVMJOB中列出. 
    PRTJVMJOB可针对特定的JVM,让你直接打印能在WRKJVMJOB显示出的信息。WRKJVMJOB的全部参数选项在信息中心的complete list of options for PRTJVMJOB中列出.

    GENJVMDMP允许你以一个特定的JVM做目标,让它产生一个Java, 系统,或堆的dump.dump的参数选项也在WRKJVMJOB可用。在信息中心的complete list of GENJVMDMP options有将其全部参数选项列出.
    其他ISA version 4的信息可在 IBM Education Assistant Web site找到.




[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm11146184