gc-Perm区满,FullGC都GC不下来。

问题描述

Perm区满,FullGC都GC不下来。 2C
最近发现一个问题,应用在运行过程中Perm区占用不断增加,多次FullGC之后都没有下降。查看Dump文件之后,发现系统加载了很多类似sun.reflect.GeneratedSerializationConstructorAccessor这种名字的类。尝试设置sun.reflect.inflationThreshold为整数最大值,也加了各种GC参数-XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5,问题没有得到解决。请问什么情况下会出现这样的问题,急等!
p.s.这两个C币是我全部家产了,谢谢了。

解决方案

1、perm区多大,测试多少时间堆满。增大perm区有没有效果
2、参数杂七杂八的参数都去掉试试GC情况
3、设置-Xmn,调小年轻代,增大old区试试
4、CMS的XX:CMSInitiatingOccupancyFraction阀值可以调整着试试。

解决方案二:
楼主你好,我最近碰到了跟你一样的问题,也是反射,用jmap permstat 查看永久代有大量dead 的DelegatingClassLoader,但是从内存dump中没有发现任何蛛丝马迹,你说的xstream我们也用到了。
我看了下xstream的源码,你说的应该是这个类PureJavaReflectionProvider
private transient Map serializedDataCache = new WeakHashMap();
但是xstream最新版本用的还是WeakHashMap 很想知道你这个问题最后是怎么解决的,还望赐教,在此谢过。

时间: 2024-10-30 22:57:43

gc-Perm区满,FullGC都GC不下来。的相关文章

GC 是什么? 为什么要有GC?

问题描述 GC是什么?为什么要有GC? 解决方案 解决方案二:JAVA/.NET中的垃圾收集器.Java是由C++发展来的.它摈弃了C++中一些繁琐容易出错的东西.其中有一条就是这个GC.而C#又借鉴了JAVA. 在老式的C/C++程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值.由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间.在C/C++中,释放无用变量内存空间的事情需要由程序员自己来处理.就是说当程序员

gc、jvm-java垃圾回收机制GC判断可回收对象算法

问题描述 java垃圾回收机制GC判断可回收对象算法 java垃圾回收机制中,讲到GC判断可回收对象算法时,有一种可达性算法,不明白它如何解决对象循环引用问题的? 解决方案 本问题,摘录周志明先生的<深入理解Java虚拟机>一书中对可达性算法的分析. 首先,可达性算法基本思路是定义一些列称为"GC-Roots"的对象作为起始阶段,从这些节点向下搜索,搜索走过的路径称为引用链,当一个对象到GCRoots没有任何引用链时(即从GCRoots到这个对象不可达),则证明此对象是不可

Oracle闪回区满

  一台老的测试AIX服务器,没人理过,最近一看Oracle闪回满了.清理了下. Version: Oracle 10gR2 for AIX 现象: ? 1 2 3 4 5 6 7 SQL> alter database open; alter database open * ERROR at line 1: ORA-16014: log 3 sequence# 157 not archived, no available destinations ORA-00312: online log 3

【新闻晨报】满屏都是联想收购IBM低端服务器后的评论

中云网每天精选各科技媒体头条! 1.腾讯科技 打车APP疯狂补贴背后:"收买"移动支付用户 http://tech.qq.com/original/tmtdecode/t540.html 在嘀嘀打车与微信支付宣布继续投入2亿元请全国人民打车后,快的打车和支付宝钱包马上跟进联合宣布再投5亿元请全国人民免费打车. 双方的策略针尖对麦芒:用嘀嘀打车微信支付乘客,每一笔车费减免10元,且额外补贴10元给司机,同时提供10000单免单.后者马上将对司机师傅的红包从10元增至15元,在红包力度上给

JVM GC算法 CMS 详解(转)

前言 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命周期的对象的应用.CMS是用于对tenured generation的回收,也就是年老代的回收,目标是尽量减少应用的暂停时间,减少full gc发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清

【最佳实践】如何使用云监控+日志服务快速完成故障发现和故障定位

今天分享一篇开发小哥哥如何使用云监控和日志服务快速发现故障定位问题的经历. 事件起因 小哥哥正在Coding,突然收到云监控报警,说他的API调用RT过高,小哥哥的业务主要为线上服务提供数据查询,RT过高可能会导致大量页面数据空白,这还了得,赶紧查. 排查过程 收到报警后查看指标趋势,发现突然RT突然增高. 查看单台机器维度的指标,发现30.239这台机器RT延时非常大. 具体机器的RT走势图: 查看存储在日志服务的原始数据,查看发生问题时的原始日志,发生某一次请求的rt突然变的很大,之后的rt

JAVAEE程序性能问题

问题描述 为什么每次执行查询内容比较多的时候,项目就死了.具体信息看下图,我不是很明白,还望高手讲解下:最后一步就报这个错误了.Exception in thread "Thread-29" java.lang.OutOfMemoryError: PermGen space 解决方案 看异常信息是perm区满导致的,你查看一下-XX:MaxPermSize jvm参数的设置,如果太小了可以调大些,比如 -XX:MaxPermSize=254m解决方案二:用了spring吗? 这个是你的

JVM 基础知识(GC)

几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西.突然发现,基础真的很重要.学习的过程是一个由表及里,再由里及表的过程,所谓的"温故而知新".而真正能走完这个轮回的人,也就能称为大牛或专家了.这个过程可能来来回回,这就是所谓"螺旋上升",而每一次轮回都有新的发现.   这回添加的东西主要集中在基础的一些问题上,还有一些这两年思考的问题.这些问题可能平时我们不会刻意去想,但是真正看清楚了,却发现还是大有裨益的,希望对大家都有帮助~ 一.基础概

HBase GC的前生今世 – 身世篇

在之前的HBase BlockCache系列文章中已经简单提到:使用LRUBlockCache缓存机制会因为CMS GC策略导致内存碎片过多,从而可能引发臭名昭著的Full GC,触发可怕的'stop-the-world'暂停,严重影响上层业务:而Bucket Cache缓存机制因为在初始化的时候就申请了一片固定大小的内存作为缓存,缓存淘汰不再由 JVM管理,数据Block的缓存操作只是对这篇空间的访问和覆盖,因而大大减少了内存碎片的出现,降低了Full GC发生的频率.那CMS GC策略如何导