JVM-虚拟机性能监控与故障处理工具

原创
2017/08/17 21:37
阅读数 46

       注意:如果读者在工作中需要监控运行于JDK1.5的虚拟机之上的程序,在程序启动时请添加参数“-Dcom .sun .management .jmxremote”开启JMX管理功能,否则由于部分工具都是基于JMX(包括4.3节介绍的可视化工具),它们都将会无法使用,如果被监控程序运行于JDK1.6的虚拟机之上,那JMX管理默认是开启的,虚拟机启动时无须再添加任何参数。

jps:虚拟机进程状况工具

       列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID

       jsp命令格式:jps[options][hostid]

      C:\Users\hy>jps -l
        108660 C:\Users\hy\AppData\Local\Temp\pul7D78.tmp\PULSEI~1.JAR
        181688 sun.tools.jps.Jps

jstat:虚拟机统计信息监视工具

       用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据

       jstat命令格式为:jstat[option vmid[interval[s|ms][count]]]对于命令格式中的VMID与LVMID需要特别说明一下:如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应当是:[protocol:][//]lvmid[@hostname[:port]/servername]

       参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要每250毫秒查询一次进程2764垃圾收集状况,一共查询20次,那命令应当是:jstat-gc 2764 250 20

jinfo:Java配置信息工具

      jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的参数的系统默认值,除了去找资料外,就只能使用jinfo的-flag 选项进行查询了(如果只限于JDK1.6或以上版本的话,使用java-XX:+PrintFlagsFin al查看参数默认值也是一个很好的选择),jinfo还可以使用-sysprops选项把虚拟机进程的System .getProperties()的内容打印出来。这个命令在JDK  1.5时期已经随着Linux 版的JDK发布,当时只提供了信息查询的功能,JDK1.6之后,jinfo在Windows和Linux 平台都有提供,并且加入了运行期修改参数的力,可以使用-flag[+|-]name或者-flag name=value修改一部分运行期可写的虚拟机参数值。JDK 1.6中,jinfo对于Windows平台功能仍然有较大限制,只提供了最基本的-flag 选项。

       jinfo命令格式:jinfo[option]pid

jmap:Java内存映像工具

展开阅读全文
JVM
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部