JVM之性能监控与故障处理简介(一)

来源:互联网 发布:中国云计算市场规模 编辑:程序博客网 时间:2024/06/05 09:09

作为软件开发者我们都知道java.exe,javac.exe这两个命令行工具,但是sun公司不止提供给我我们运行java程序的入口测试命令行工具,还附带了很多虚拟机运行过程中的故障处理工具。在jdk1.5版本开始,这些附带的工具逐渐全面,而且更加强大,合理利用这些工具为我们更快更准确的定位虚拟机故障问题提供了方便。笔者今天来为大家介绍几种常用的JVM故障工具。

首先看看我们的jre的bin目录下的文件,除了我们常用的exe之外是不是还有很多从来没有使用过的。而且这些exe大小都在40kb左右,除了javac和java稍微大一点儿。

其实这些可执行的exe文件都是和jdk1.6.0_32\lib\tools.jar中的项目包是一一对应的。

还有一些事在外侧包中,就不截图一一,大家有兴趣可以自己去看看。

入正题,常用的6个工具,我分两次来给大家介绍,本次介绍jps、jstat、jinfo。

一、jps-显示系统内所有hotSpot(常用虚拟机,不懂度娘)虚拟机进程

jps(JVM Process status)即虚拟机进程状况工具。使用jps可以查看当前或者远程服务器的虚拟机进程。

命令格式:jps 【option】【hostid】

【option】:-q 只输出LVMID,即进程的PID,不显示类名

-l输出虚拟机PID+运行的类表或者jar的main方法

-m输出虚拟机启东市传递给主类的参数

-v输出虚拟机启动时候的JVM参数——————非常实用哦

我的机器启动一个bootstrap,一个jps,一个myeclipse。


    

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

jstat(JVM Statistics Montitoring Tool)用于监视虚拟机运行状态的命令行工具。强大到可以用于显示本地或者远程虚拟机进程中类的加载、内存、垃圾回收、JIT变异等运 行数据。

命令格式:jstat【option vmid【interval【s|ms】【count】】】

interval-表示查询间隔

count-表示查询次数

【option】:-class 监视类的装载、卸载数量、总空间、消费时间等;

-gc 监视java堆状况,包括Eden、surviver、老年代、永久代等的容量、已用空间等等;---------相当实用了

-gccapacity 内容类似gc,主要关注堆区域实用大小;

-gcutil gc堆空关键占比;

-gcold 监视老年代的状况;

..等等等

本地PID为16560的虚拟机的gc状况:前面是容量,后面是已用空间,命名规则如下:堆内存按照首字符区分,入eden就是e,然后如果数量多的第二位是索引,如s0c中的0是指第一块surviver,最后一位是【c】是指内存容量,【u】是指使用内存。

比如两个surviver的内存容量为 5248和2944,使用使用情况为0和2935.4。其他同理。


、jinfo-配置信息工具

jinfo(Configuration Info For Java)用于实时查看和调整虚拟机参数。改命令可以配合jps-v使用,可以查到非显式的默认参数。

命令格式:jinfo【option】【pid】

【option】:-flag【+|-】name=value  --------后续这些对参数的实时修改1.6版本在window系统上还有限制。


大家可以在32位系统或者linux上正确执行该命令。

OK,第一篇就先到这里。结合jps和jstat命令,可以对当前虚拟性的运行情况做个大致判断,对于分配更加合理的虚拟机内存非常有指导意义。


1 0
原创粉丝点击