加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

JVM性能调优监控工具使用详解

发布时间:2019-11-04 21:17:09 所属栏目:空间 来源:zhisheng的blog
导读:现实企业级Java应用开发、维护中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服

class name是对象类型,说明如下:

  1. B byte 
  2. C char 
  3. D double 
  4. F float 
  5. I int 
  6. J long 
  7. Z boolean 
  8. [ 数组,如[I表示int[] 
  9. [L+类名 其他对象 

还有一个很常用的情况是:用jmap把进程内存使用情况dump到文件中,再用jhat分析查看。jmap进行dump命令格式如下:

  1. jmap -dump:format=b,file=dumpFileName pid 

我一样地对上面进程ID为21711进行Dump:

  1. root@ubuntu:/# jmap -dump:format=b,file=/tmp/dump.dat 21711  
  2. Dumping heap to /tmp/dump.dat ... 
  3. Heap dump file created 

dump出来的文件可以用MAT、VisualVM等工具查看,这里用jhat查看:

  1. root@ubuntu:/# jhat -port 9998 /tmp/dump.dat 
  2. Reading from /tmp/dump.dat... 
  3. Dump file created Tue Jan 28 17:46:14 CST 2014Snapshot read, resolving... 
  4. Resolving 132207 objects... 
  5. Chasing references, expect 26 dots.......................... 
  6. Eliminating duplicate references.......................... 
  7. Snapshot resolved. 
  8. Started HTTP server on port 9998Server is ready. 

注意如果Dump文件太大,可能需要加上-J-Xmx512m这种参数指定最大堆内存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在浏览器中输入主机地址:9998查看了:

JVM性能调优监控工具使用详解

上面红线框出来的部分大家可以自己去摸索下,最后一项支持OQL(对象查询语言)。

D、jstat(JVM统计监测工具)

语法格式如下:

  1. jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ] 

vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为250ms,采样数为4:

  1. root@ubuntu:/# jstat -gc 21711 250 4  
  2. S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 
  3. 192.0 192.0 64.0 0.0 6144.0 1854.9 32000.0 4111.6 55296.0 25472.7 702 0.431 3 0.218 0.649 
  4. 192.0 192.0 64.0 0.0 6144.0 1972.2 32000.0 4111.6 55296.0 25472.7 702 0.431 3 0.218 0.649 
  5. 192.0 192.0 64.0 0.0 6144.0 1972.2 32000.0 4111.6 55296.0 25472.7 702 0.431 3 0.218 0.649 
  6. 192.0 192.0 64.0 0.0 6144.0 2109.7 32000.0 4111.6 55296.0 25472.7 702 0.431 3 0.218 0.649 

要明白上面各列的意义,先看JVM堆内存布局:

JVM性能调优监控工具使用详解

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读