javaOutofMemory诊断分析.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Copyright ? 2011?AMAX Global Services. Proprietary and Confidential Information. All Rights Reserved MR Customer Case Sharing-- Diagnosis of OOM Roy 2011/7/21 Content 2 可能出现的OOM Exception 3 Java 垃圾回收机制 1 分析工具 4 实战演练 5 QA 分析工具 分析工具 1)动态分析工具 Jprofiler 具体Jprofiler在我们的FTPC的配置,可以参考我在sharing上的一篇分享文章 http://bu2-devdb01:4132/Lessons%20Learned/Jprofiler监控FTPC%20SA的内存配置.aspx 分析工具 2)静态分析工具 a: 在启动java的时候加上参数 -XX:+HeapDumpOnOutOfMemoryError,这样如果由于OOM导致JVM crash的时候可以便于我们分析,生成的heap dump文件名字的命名规范如下, java_pidxxxx.hprof b: 工具介绍 eclipsemat IBM heap ana:我们MR比较喜欢用这个IBM的工具进行OOM诊断,启动方式 java -Xmx1600 -jar ha396.jar,然后选择文件打开生成的heap dump. Content 2 可能出现的OOM Exception 3 Java 垃圾回收机制 1 分析工具 4 实战演练 5 QA 可能出现的OOM Exception Java 内存机制 和可能出现的OOM Exception a PermGen space:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域(包括常量池) Exception in thread main java.lang.OutOfMemoryError: PermGen space public static void main(String[] args) { //使用List保持着常量池引用,压制Full GC回收常量池行为 ListString list = new ArrayListString(); // 10M的PermSize在integer范围内足够产生OOM了 int i = 0; while (true) { list.add(String.valueOf(i++).intern()); } } 可能出现的OOM Exception b java.lang.OutOfMemoryError: Java heap space,运行中产生的对象,被缓存的实例(Cache)对象,大的map, list引用大的对象等等,都会保存于此(Heap) public static void main(String[] args) { ListString list = new ArrayListString(); int i = 0; while (true) { list.add(new String(“test”)); } } 可能出现的OOM Exception c Exception in thread main java.lang.StackOverflowError 栈帧太多,也就是函数调用层级过多导致。检查是否有死递归的情况~ /** * VM Args:-Xss128k */ public class JavaVMStackSOF { private int stackLength = 1; public void stackLeak() { stackLength++; stackLeak(); } public static void main(String[] args) throws Throwable { JavaVMStackSOF oom = new JavaVMStackSOF(); try {

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档