OMM
来源:互联网 发布:软件项目进展汇报 编辑:程序博客网 时间:2024/06/10 18:41
OMM主要三类: permgen OOM ,heap OOM, stack overflow
permgen OOM: 这个主要是由于加载的类太多,或者反射的类太多,还有调用 String.intend(jdk7之前)也会造成这个问题。所以出现了这个问题,就检查这三个方面;
heap OOM:主要是因为一些无用对象没有及时释放造成的,检查代码加上 heap dump 去分析.
stack overflow:这个主要是由于调用层数,或者递归深度太大造成的,看异常信息,基本上就能定位得出来了.
内存泄漏检查
年老代堆空间被占满
异常: java.lang.OutOfMemoryError: Java heap space
解决:
这种方式解决起来也比较容易,一般就是根据垃圾回收前后情况对比,同时根据对象引用情况(常见的集合对象引用)分析,基本都可以找到泄漏点。
持久代被占满
异常:java.lang.OutOfMemoryError: PermGen space
解决:
1.-XX:MaxPermSize=16m
堆栈溢出
异常:java.lang.StackOverflowError
说明:这个就不多说了,一般就是递归没返回,或者循环调用造成
线程堆栈满
异常:Fatal: Stack size toosmall
说明:java中一个线程的空间大小是有限制的。JDK5.0以后这个值是1M。与这个线程相关的数据将会保存在其中。但是当线程空间满了以后,将会出现上面异常。
解决:增加线程栈大小。-Xss2m。但这个配置无法解决根本问题,还要看代码部分是否有造成泄漏的部分。
系统内存被占满
异常:java.lang.OutOfMemoryError:unable to create new native thread
这个异常是由于操作系统没有足够的资源来产生这个线程造成的。系统创建线程时,除了要在Java堆中分配内存外,操作系统本身也需要分配资源来创建线程。因此,当线程数量大到一定程度以后,堆中或许还有空间,但是操作系统分配不出资源来了,就出现这个异常了。
- OMM
- OMM
- omm 评分策略
- SQL Server 2017 如何在Linux的OMM-Killer下生存
- LeetCode 55. Jump Game
- JavaScript进阶:setInterval、setTimeout不能传递带参数的函数的解决方案
- HDU 4007【尺取】
- 神经网络优化算法
- CodeForces
- OMM
- 前端面试经典题目合集(HTML+CSS)(四)
- 启动maven时出现classnotfoundexception WebApplicationContext
- 3SumCloset
- Java+Selenium3框架设计准备篇6-TestNG执行测试方法依赖关系
- HDU-2102-A计划
- C++基础-文件
- 修改主机名(/etc/hostname和/etc/hosts区别)
- linux C读书笔记