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

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

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

现在来解释各列含义:

  1. S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used) 
  2. EC、EU:Eden区容量和使用量 
  3. OC、OU:年老代容量和使用量 
  4. PC、PU:永久代容量和使用量 
  5. YGC、YGT:年轻代GC次数和GC耗时 
  6. FGC、FGCT:Full GC次数和Full GC耗时 
  7. GCT:GC总耗时 

E、hprof(Heap/CPU Profiling Tool)

hprof能够展现CPU使用率,统计堆内存使用情况。

语法格式如下:

  1. java -agentlib:hprof[=options] ToBeProfiledClass 
  2. java -Xrunprof[:options] ToBeProfiledClass 
  3. javac -J-agentlib:hprof[=options] ToBeProfiledClass 

完整的命令选项如下:

  1. Option Name and Value Description Default 
  2. --------------------- ----------- ------- 
  3. heap=dump|sites|all heap profiling all 
  4. cpu=samples|times|old CPU usage off 
  5. monitor=y|n monitor contention n 
  6. format=a|b text(txt) or binary output a 
  7. file=<file> write data to file java.hprof[.txt] 
  8. net=<host>:<port> send data over a socket off 
  9. depth=<size> stack trace depth 4 
  10. interval=<ms> sample interval in ms 10 
  11. cutoff=<value> output cutoff point 0.0001 
  12. lineno=y|n line number in traces? y 
  13. thread=y|n thread in traces? n 
  14. doe=y|n dump on exit? y 
  15. msa=y|n Solaris micro state accounting n 
  16. force=y|n force output to <file> y 
  17. verbose=y|n print messages about dumps y 

来几个官方指南上的实例。

CPU Usage Sampling Profiling(cpu=samples)的例子:

  1. java -agentlib:hprof=cpu=samples,interval=20,depth=3 Hello 

上面每隔20毫秒采样CPU消耗信息,堆栈深度为3,生成的profile文件名称是java.hprof.txt,在当前目录。

CPU Usage Times Profiling(cpu=times)的例子,它相对于CPU Usage Sampling Profile能够获得更加细粒度的CPU消耗信息,能够细到每个方法调用的开始和结束,它的实现使用了字节码注入技术(BCI):

  1. javac -J-agentlib:hprof=cpu=times Hello.java 

Heap Allocation Profiling(heap=sites)的例子:

  1. javac -J-agentlib:hprof=heap=sites Hello.java 

Heap Dump(heap=dump)的例子,它比上面的Heap Allocation Profiling能生成更详细的Heap Dump信息:

  1. javac -J-agentlib:hprof=heap=dump Hello.java 

【编辑推荐】

  1. 对JVM还有什么不懂的?带你深入浅出JVM!
  2. 一文带你深入理解JVM
  3. 你真的了解JVM吗?
  4. Java8 JVM内存结构变了,永久代到元空间
  5. 竟然还有人没搞懂 JVM 类加载器?一文彻底明白
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:衡阳站长网)

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

推荐文章
    热点阅读