Java OOM异常原因及解决方案
Java堆溢出
现象
- java.lang.OutOfMemoryError: Java heap space
原因
- 大量对象没有释放,无法回收
解决方案
- 使用内存映像分析工具分析 Dump 出来的堆转储快照,分析对象是是否合理存在,可以排查是内存泄露还是溢出
- 如果内存泄露,工具查看泄漏对象到 GC Root 的引用链,定位出泄漏的位置;
- 如果不存在泄漏,检查虚拟机堆参数(-Xmx 和 -Xms)是否可以调大
配置
- 配置 -XX:HeapDumpOnOutOfMemoryError,在发生内存溢出会存储快照用于事后分析
Java 虚拟机栈和本地方法栈溢出
原因
- 单线程下,栈帧过大或内存过小,都不会导致OutOfMemoryError,只会导致StackOverflowError(栈会比内存先出问题)
- 多线程情况下会导致OutOfMemoryError,因为多个线程本身要占用内存
解决方案(多线程情况)
- 更换64位虚拟机
- 减少最大堆和栈容量换取更多的线程
直接内存溢出
现象
- Heap Dump 文件中看不见明显异常,程序中直接或间接用了 NIO
解决方案
- 提高直接内存大小 -XX:MaxDirectMemorySize,没有没有指定默认和-Xmx一致
Java OOM异常原因及解决方案相关推荐
- 九种 OOM 常见原因及解决方案(IT枫斗者)
九种 OOM 常见原因及解决方案(IT枫斗者) 什么是OOM? OOM,全称"Out Of Memory",翻译成中文就是"内存用完了",来源于java.lan ...
- Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 参考文章: (1)Java ConcurrentModificationException异常原因和解决方法 ...
- 高手总结的9种 OOM 常见原因及解决方案
高手总结的9种 OOM 常见原因及解决方案 [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行 ...
- javaheapspace解决方案_高手总结的9种 OOM 常见原因及解决方案
当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误.本文总结了常见的 OOM 原因及其解决方法,如下图所示.如有遗漏或错误,欢迎补充指正. 1.Java ...
- (转)Java ConcurrentModificationException异常原因和解决方法
转载自:http://www.cnblogs.com/dolphin0520/p/3933551.html 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会 ...
- 一种桌面图标显示异常原因及解决方案
Win10 系统 桌面图标显示异常如下图 原因:可能是因为修改过文件路径.(答主重命名过路径中某个文件夹). 右键打开属性. 打开更改图标.证实了这是因为路径错误导致的. 解决方案:1.在设置界面手 ...
- Java内存溢出(OOM)异常完全指南
原文:http://luecsc.blog.51cto.com/2219432/1948800 这也许是目前最为完整的Java OOM异常的解决指南. 1.Java.lang.OutOfMemoryE ...
- 字节跳动应用性能监控帮助客户Java OOM崩溃率下降80%
一.前言 如何定位和解决 Android App 因为内存不足(Java OOM)引发的线上问题一直是业界的难题.崩溃现场能抓取到的常规信息中并不包括内存分配详情--不了解内存被谁持有,自然也无法追查 ...
- 一种隐蔽性较高的Java ConcurrentModificationException异常场景
前言 在使用Iterator遍历容器类的过程中,如果对容器的内容进行增加和删除,就会出现ConcurrentModificationException异常.该异常的分析和解决方案详见博文<Jav ...
最新文章
- HTML5的viewport使用
- Atitit.js模块化 atiImport 的新特性javascript import
- html颜色渐变讲解,20个网页设计中渐变色运用实例欣赏
- c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解
- 推荐一个很好的富文本web编辑器UEditor
- 依赖项出现感叹号怎么办_「电脑常用技巧」不喜欢看到的黄色感叹号
- 如何能把 fastdfs-client-java的jar包安装到本地的仓库中
- iOS面试题06-其他
- linux中文件带方块,JFreeChart图片里的中文在linux下显示为方块的解决办法
- 流媒体RTMP协议解析
- 数据分析的软件最全场景盘点
- mysql nutch_nutch2.2+mysql部署
- UIPickerView 用法
- 一线城市nbsp;ornbsp;二线城市?(目前为止…
- 操作系统第三次实验——线程基础总结
- 长期支持 LTS(Long-term Support)是怎样的一种支持方式
- Android产品研发(五)--多渠道打包
- 一个完整计算机的主要配置,一个完整的计算机的配置包括CPU
- 5000词学英语——DAY6
- 联想MIIX720二合一笔记本键盘维修(带键盘灯款)