JVM监控工具用法指导

开发 后端
通过JVM监控工具的使用可以及时发现问题,剔除安全隐患,这里向大家描述一下常用的几个JVM监控工具的用法,希望对你的学习有所帮助。

这里向大家描述一下JVM监控工具的用法,比如jstatd,启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。

JVM监控工具介绍

jstatd

此JVM监控工具用来启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。
实例:jstatd-J-Djava.security.policy=my.policy

my.policy文件需要自己建立,内如如下: 

  1. grantcodebase"file:$JAVA_HOME/lib/tools.jar"{  
  2. permissionjava.security.AllPermission;  
  3. };  
  4.  

这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作

JVM监控工具之jps

列出所有的jvm实例

实例:jps

列出本机所有的jvm实例

jps192.168.0.77
列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099
(前提是远程服务器提供jstatd服务)

输出内容如下:

  1. jones@jones:~/data/ebook/java/j2se/jdk_gc$jps  
  2. 6286Jps  
  3. 6174Jstat  
  4.  

JVM监控工具之jconsole

一个图形化界面,可以观察到java进程的gc,class,内存等信息。虽然比较直观,但是个人还是比较倾向于使用jstat命令(在最后一部分会对jstat作详细的介绍)。

JVM监控工具之jinfo(linux下特有)

观察运行中的java程序的运行环境参数:参数包括JavaSystem属性和JVM命令行参数

实例:jinfo2083

其中2083就是java进程id号,可以用jps得到这个id号。
输出内容太多了,不在这里一一列举,大家可以自己尝试这个命令。

JVM监控工具之jstack(linux下特有)

可以观察到jvm中当前所有线程的运行情况和线程当前状态

jstack2083

输出内容如下: 

JVM监控工具之jmap(linux下特有,也是很常用的一个命令)

观察运行中的jvm物理内存的占用情况。

参数如下:

-heap:打印jvmheap的情况
-histo:打印jvmheap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live:同上,但是只答应存活对象的情况
-permstat:打印permanentgenerationheap情况

命令使用:

jmap-heap2083
可以观察到NewGeneration(EdenSpace,FromSpace,ToSpace),tenuredgeneration,PermGeneration的内存使用情况

输出内容:

jmap-histo2083|jmap-histo:live2083

可以观察heap中所有对象的情况(heap中所有生存的对象的情况)。包括对象数量和所占空间大小。

输出内容:

写个脚本,可以很快把占用heap最大的对象找出来,对付内存泄漏特别有效。

JVM监控工具之jstat

最后要重点介绍下这个命令。这是jdk命令中比较重要,也是相当实用的一个命令,可以观察到classloader,compiler,gc相关信息,具体参数如下:

-class:统计classloader行为信息
-compile:统计编译行为信息
-gc:统计jdkgc时heap信息
-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况
-gccause:统计gc的情况,(同-gcutil)和引起gc的事件
-gcnew:统计gc时,新生代的情况
-gcnewcapacity:统计gc时,新生代heap容量
-gcold:统计gc时,老年区的情况
-gcoldcapacity:统计gc时,老年区heap容量
-gcpermcapacity:统计gc时,permanent区heap容量
-gcutil:统计gc时,heap情况
-printcompilation:不知道干什么的,一直没用过。

【编辑推荐】

  1. 常见JVM监控工具用法介绍
  2. JVM内存限制问题解决方案
  3. 揭露MyEclipse JVM内存不足的内幕
  4. 专家指导 如何进行JVM参数配置
  5. 巧解IBM JVM for Linux onPOWER性能调优

 

责任编辑:佚名 来源: javaeye.com
相关推荐

2010-09-26 14:44:31

JVM内存监控工具

2010-09-26 09:16:16

JVM监控工具

2012-03-02 14:20:46

JavaJVM

2021-07-08 06:47:19

JVM监控工具

2010-09-27 15:54:19

JVM监控工具

2010-07-27 14:27:09

FlexArray

2010-09-26 10:02:09

JVM优化配置

2010-07-27 15:28:02

Flex DataBi

2019-11-01 08:49:07

JVM监控性能

2010-08-10 14:25:42

SilkTestFlex

2010-08-10 14:34:37

QTPFlex

2010-08-25 10:21:49

CSSmargin

2010-07-26 14:45:17

Perl Hash

2010-07-23 14:12:14

Perl Hash

2010-08-05 10:08:06

Flex效果

2010-07-20 13:02:08

Perl数组

2010-07-29 09:44:17

Flex编程

2010-09-06 13:04:16

CSS浮动float

2010-07-26 15:17:51

Perl解析XML文件

2010-07-28 10:38:29

Flex开源框架
点赞
收藏

51CTO技术栈公众号