java内存溢出
所属分类 java
浏览量 1501
java.lang.OutOfMemoryError.Java heap space
堆大小设置 -Xms4096m -Xmx4096m
java.lang.OutOfMemoryError: PermGen space
持久代溢出 主要用于存放Class和Meta信息 , 动态加载类的应用会导致该问题
-XX:MaxPermSize=128m
元数据区溢出
加载大量的class(ASM、Cglib、javassit、动态代理类生成)
大量JSP文件编译成Servlet类文件
合理使用ClassLoader,定期回收
减少动态类生成
metaspace OOM 实例
java.lang.OutOfMemoryError:GCoverheadlimitexceeded
JDK6新增错误类型,当GC为释放很小空间占用大量时间时抛出;一般是因为堆太小
java.lang.OutOfMemoryError:Directbuffermemory
-XX:MaxDirectMemorySize=128m
直接内存 堆外内存
-XX:+DisableExplicitGC 可能导致堆外内存无法回收
DirectByteBuffer申请与释放
java堆外内存回收机制
java.lang.OutOfMemoryError:unable to create new native thread
减小线程栈大小 -Xss512k 默认1M
增加操作系统可用内存
java.lang.StackOverflowError
栈溢出
栈太小 方法调用层次过多 ,譬如递归调用
设置合理的栈大小
内存占用太多,被操作系统kill
dmesg|tail -20
[987096.767585] Out of memory: Kill process 5039 (java) score 616 or sacrifice child
[987096.769898] Killed process 5039 (java) total-vm:14803740kB, anon-rss:11304244kB, file-rss:0kB, shmem-rss:0kB
dmesg -T
-T 时间格式化
java应用oom被kill排查记录
上一篇
下一篇
java类卸载机制
分布式事务
jmeter长连接配置
java restful 框架
类加载器中findClass与loadClass的区别
jetty嵌入式使用