JDK监控和故障处理工具

前言

      Sun公司声明这些jdk的命令行工具为:“没有技术支持并且是实验性质的”,但事实上,这些工具都非常稳定而且功能强大,能在处理应用程序性能问题、定位故障时发挥很大的作用。

     

           

一、jps:虚拟机进程状况工具

      功能:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(LVNID:Local Virtual Machine Identifier)。

       虽然功能比较单一,但是它是使用频率最高的JDK命令行工具,因为其他的JDK工具大多需要输入他查询到的LVMID来确定监控的是哪一个虚拟机进程。

        

       jps命令格式:jps  [option]   [hostid](hostid为RMI注册表中注册的主机名)

       jps执行样例:

        

        jps工具主要选项

          -q:只输出LVMID,省略主类的名称。

          -m:输出虚拟机进程启动时传递给主类main()函数的参数。

          -l:输出主类的全名,如果进程执行的是Jar包,输出Jar路径

          -v:输出虚拟机进程启动时JVM参数


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

        用于监视虚拟机各种运行状态信息的命令行工具。他可以显示本地或者远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。

       jstat命令格式:

       jstat [ option vmid [interval[s|ms]  [count] ] ]

       interval:查询间隔

       count:次数   如果忽略这两个参数,说明之查询一次。

       option:代表着用户希望查询的虚拟机信息

               1、类装载

               2、垃圾收集

               3、运行期编译状况

       例如:jstat -gc 2764 250 20

       含义是:需要每250毫秒查询一次进程为2764垃圾收集状况,一共查询20次。

       对于VMID和LVMID需要特别说明一下:如果是本地虚拟机进程,VMID和LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应该是:[protocol:] [//]lvmid[@hostname:[:post/servername]]

      

          jstat工具主要选项

         -class:监视类装载,卸载数量,总空间以及类装载所消费的时间。

         -gc:监视Java堆状况,包括Eden区,两个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。

         -gccapacity:监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大,最小空间

         -gcutil:监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比

         -gccause:与 -gcutil功能一样,但是会额外输出导致上一次GC产生的原因。

         -gcnew:监视新生代GC状况

         -gcnewcapacity:监视内容与-gcnew基本相同,输出主要关注使用到的最大,最小空间

         -gcold:监视老年代GC状况

         -gcoldcapacity:监视内容与-gcold基本相同,输出主要关注使用到的最大,最小空间

         -gcpermcapacity:输出永久代使用到的最大,最小空间

         -compiler :输出JIT编译器编译过的方法、耗时等信息。

         -printcompiler:输出已经被JIT编译的方法


          样例:

          

           参数解释:

            S0 S1: survivor  E:eden   O :old    P:perm(永久代)  YGC:(minorgc)gc次数   YGCT:gc时间

            FGC:(full gc) gc次数   FGCT:gc时间   GCT:GC时间

           说明:使用jstat的纯文本状态下监视虚拟机状态的变化,确实不如后面提到的VirsualVM可视化的监视工具直接以图表展现那样直观。


三、jinfo :java 配置信息工具

      功能:实时的查看和调整虚拟机各项参数。

       上面介绍的jps -v可以查看显示指定的参数列表,如果想查看未被显示的指定的参数的系统默认值,可以使用 jinfo -flag进行查询。(JDK1.6版本以上,使用java -XX:+PrintFlagsFinal,是个不错的选择。)

      样例:

      

         

四、jmap:Java内存映像工具

       用于生成堆转储快照(dump)(window下可以使用)

       它还可以查询finallize执行序列、Java堆和永久代的详细信息,如空间使用率,当前使用的那种收集器(Linux/Solaris)。

五、jhat:虚拟机堆转储快照分析工具。

       该命令与jmap搭配使用,来分析jmap生成的堆转储快照文件。

       jhat还内置了一个微型的HTTP/HTMLfuwuqi ,生成dump文件的分析结果后,可以在浏览器中查看。

       但是:一般不会直接使用jhat去直接分析dump

              主要原因:1、分析文件会消耗服务器资源,需要在其他机器执行,没有必要收到命令行工具的限制。

                                2、jhat的分析功能相对简陋。请关注后文中,讲解的VisualVM,以及专业的用于分析dump的各种工具。

六、jstack:java堆栈跟踪工具

       用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)

       线程快照:当前虚拟机内每一条线程正在执行的方法堆栈的集合。

       生成线程快照的主要目的是:定位线程出现长时间停顿的愿意,例如,线程死锁,死循环,请求外部资源导致的长时间等待都是导致线程长时间停顿的常见原因。

       线程出现停顿,用jstack各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做了些什么事,或者等待什么资源。

       jstack工具主要选项:

       -F:当正常输出的请求不被响应时,强制输出线程堆栈。

       -l:除堆栈外,显示关于锁的附加信息

       -m:如果调用到本地方法的话,可以显示c/c++的堆栈

        样例:

             

文章出处:http://blog.csdn.net/qq_26504875/article/details/50351820
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值