- 20
- 0
- 约1.4千字
- 约 20页
- 2015-10-03 发布于重庆
- 举报
JVM状态监控与OOM案例分析
* * * * * * * * * * JVM状态监控与OOM案例分析 beiyu95 主要内容 Jvm architecture specification Java process heap Java Object Heap Java process heap(其他内存结构) JVM监控 JMX接口配置 Jcosole Jvisualvm 其他JDK自带工具 JMX接口配置 在虚拟机启动参数中增加 set CATALINA_OPTS=-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=%my.jmx.port% \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false Jconsole 能做什么 Jvm summary信息 Memory状态监控 Threads状态监控 Classes状态监控 VM摘要 Mbeans监控与操作 插件扩展的支持 Jconsole OOM案例分析 为什么会有OOM OOM都在哪里发生 内存溢出(OOM) 对象的引用没有被释放 JVM内存溢出 主要是压力过大时,内存来不及回收,内存使用量达到虚拟机限制 经常是由于不合理的内存使用或者应用服务器配置不当引起 Java进程调用操作系统级资源没有释放 JNI调用等Native方法相关 案例:堆溢出 320用户在线,执行事务,TOMCAT内存溢出 案例:OutOfMemoryError: PermGen space 原因:这部分用来存放class和Meta信息Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。 解决办法:在JAVA虚拟机启动参数中将-XX:MaxPermSize=256M的值设置到足够大(如256) 案例:Native内存泄露 MCPACK内存泄露(JNI allocated memory) 内存资源被持续消耗,直至全部耗光,swap分区开始使用 CPU 资源在某一点突然上升,且为系统时间占用 Jvm 内存回收正常 案例:Native 内存泄露(2) 堆内存使用正常 From Jconsole toVisualvm Jdk6u7之后新增visualvm,功能更加强大 Jconsole的主要功能jvm summary,memory,threads,classes,mbeans都包含在内 支持cpu,memory的sampler 支持visual GC 支持Thread dump 支持Buffer pools 支持application snapshot 支持各种快照的离线分析 支持插件扩展 Visualvm使用演示 THANKS! * beiyu95@ * * * * * * * * * * beiyu95@ * * * * * * * * * * * * * * * * * * *
您可能关注的文档
- IPOffice日常管理操作手册.docx
- ISE使用指南基础篇.doc
- ISMPSPPortal用户手册.doc
- JCEJCE+操作手册.doc
- JLUSAE数据库使用指南.ppt
- Juniper SA 配置手册.doc
- JuniperSRX中文配置手册及图解.doc
- JUNIPER_官方培训课件.ppt
- Kettle基本知识交流.ppt
- KS 培训资料.ppt
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
原创力文档

文档评论(0)