一、工具介绍
java-jvm安装后在bin目录下有很多exe文件,为监控工具,对应的在lib/tools.jar中对应的java代码用于支持对应工具。
2、命令介绍
①jps虚拟机健康状况工具(JVM Process Starts)
相当于linux的ps工具
-q 输出进程id
-m输出进程启动时传递给主类main的参数
-l 输出主类全名及进程id,如果是jar包输出jar包的路径
-v输出jvm进程启动时的jvm参数
②jstart虚拟机统计信息监控工具(JVM Statistics Monitoring Tool)
用于监控jvm的各种运行状态信息,如类转载、垃圾收集、运行期编译等情况(堆(年轻代(eden、from survivor、to survivor)、年老代)、栈、本地方法区(永久代))的监控。
-gc pid 250 20 查询进程垃圾收集情况,pid为集成id,250与20为每250毫秒输出一次日志,输出20次。
-gcutil pid 监控当前线程的内存使用情况
③jinfo配置信息工具(Configuration Info for Java)
用于实时查看和调整虚拟机的各项参数。
-flag CMSInitiatingOccupancyFraction 8364 用户查询当前线程CMSInitiatingOccupancyFraction的参数值。
④jmap内存影响工具(Memory Map for java)
用于生成java堆转储快照,以及查询finalize执行队列、java堆和永久代的详细信息,如空间使用率、当前使用的垃圾收集器。通过jvm增加参数-XX:+HeapDumpOnCtrlBreak可在每次出现oom(OutOffMemoryError)异常时转储java堆快照,并使用eclipse插件MAT进行分析,分析过程详见另一篇文章。jmap的命令除生成java堆转储快照、每个类的实例、空间占用统计外,其他都需要在linux上执行
-dump生成java堆转储快照。
-heap显示java堆详细信息,以及使用何种类型的垃圾回收器。
-histo 显示堆中对象统计信息,包括类、实例数量、合计容量等。
还有很多其他命令可用jmap -?查看。