使用JPofiler工具分析OOM原因

在一个项目中,突然出现了OOM故障,那么该如何排除~研究为什么出错~

  • 能够看到代码第几行出错:内存快照分析工具,MAT,Jprofiler
  • Dubug,一行行分析代码!

MAT,Jprofiler作用

  • 分析Dump内存文件,快速定位内存泄露;
  • 获得堆中的数据
  • 获得大的对象~
  • ......

//-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
// -Xms设置初始化内存分配大小1/64
// -XmX设置最大分配内存,默认1/4
// -XX: +PrintGCDetails //打印GC垃圾回收信息
// -XX: +HeapDumponoutofMemoryError //oom DUMP

推荐这些文章:

记一次jvm闲置,但是应用进程占用高内存

jvm参数设置

ENV JAVA_OPTS="-Xrs -Dfile.encoding=utf-8 \
-Xmx2000m -Xms1200m -Xmn750m -Xss256k -XX:MetaspaceSize=400m -XX:MaxMetaspaceSize=800m \
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly \
-XX:CMSInitiatingOccupancyFraction=75 \
-...

经验之谈:内存泄露的原因以及分析

经验之谈:内存泄露的原因以及分析
内存泄露是Javaer听到最多的关于内存的事了,这篇文章就来谈谈这件事。
内存泄露与资源泄露
什么是泄露?泄露在计算机语境下,通常指的是某个资源无法被访问,也无法被释放。
内存泄露一般发生在某个对象的引用丢失,无法再访问到该引用,但是该引用却依旧引用着某个对象,导致这个对象无法回收,最终导致内存溢出OOM。
资源泄露一般发生在连接池,IO流等场景,如从连接池中每次都新建连接但不关闭,每次都打开新的IO流但不关闭,等等情况。
内存泄露发生的情况
内存泄露多发生于static的集合中,比如当你定义了一个static HashMap,此时将某个key-value放...

gc打印日志完美方案

# 必备-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintHeapAtGC -XX:+PrintReferenceGC -XX:+PrintGCApplicationStoppedTime
# 可选-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1
# GC日志输出的文件路径-Xloggc:/path/to/gc-%t.log# 开启日志文件分割-XX:+UseGCLogFileRotation ...

jvm内存溢出原因分析

一,创建线程池时,可能使用Excutors的四种方式。
newSingleThreadExecutor()和 newFixedThreadPool(int nThreads),内部实现队列为 LinkedBlockingQueue。LinkedBlockingQueue 是一个由链表实现的有界阻塞队列,容量默认值为 Integer.MAX_VALUE,(也可以自定义容量,建议指定容量大小),默认大小在添加速度大于删除速度情况下有造成内存溢出的风险,LinkedBlockingQueue 是先进先出的方式存储元素。newScheduledThreadPool(int corePoolSize)...

内存溢出分析定位

内存溢出:

堆内存溢出

堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,
就会出现内存溢出OutOfMemory:Java heap space

永久代溢出 -- (解决方案:加大永久代内存)

类的一些信息,如类名、访问修饰符、字段描述、方法描述等,所占空间大于永久代最大
值,就会出现OutOfMemoryError:PermGen space

内存溢出的检测方法
1、Jdk/bin目录下有很多检测工具

图形界面:
– Jconsole
– Jvisualvm(也可以监控线程)

命令行工具
–Jstat –gcutil pid 10...

十四、JVM性能调优案例——OOM

一、堆溢出
报错信息java.lang.OutOfMemoryError: Java heap space
 
参数配置
-XX:+PrintGCDetails -XX: MetaspaceSize=64m
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap/heapdump.hprof
-XX:+PrintGCDateStamps -Xms200M -Xmx200M -Xloggc:log/gc-oomHeap.log
 
日志分析工具
在线网站 https://gceasy.io/
jdk自带...

文章标题:使用JPofiler工具分析OOM原因
文章链接:https://www.dianjilingqu.com/50975.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>