[原创]优化GC,解决系统响应慢问题_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2810 | 回复: 0   主题: [原创]优化GC,解决系统响应慢问题        下一篇 
llei.zhang
注册用户
等级:中尉
经验:492
发帖:18
精华:0
注册:1970-1-1
状态:离线
发送短消息息给llei.zhang 加好友    发送短消息息给llei.zhang 发消息
发表于: IP:您无权察看 2015-5-13 9:07:28 | [全部帖] [楼主帖] 楼主


1.问题现象:  

在业务高峰期会出现应用响应很慢,并且有OOM(OutOfMemory)问题。

2.问题分析:

  weblogic响应慢问题,在分析threaddump后发现,线程大多数处于空闲状态,活动线程数量很少,没有出现死锁或者同步锁。

     从GC日记和服务器的CPU的idle的活动情况来看,发现cup的使用率很高,99%以上,GC中有大量的fullGC活动情况,频繁的fullGC会影响weblogic server的响应速度,因为fullGC很消耗时间和cpu资源。
北京联动北方科技有限公司

首先分析GC的两种类型和作用:GC,FULLGC
       1、对象优先在Eden分配,这里大部分对象具有朝生夕灭的特征,Minor GC主要清理该处
       2、大对象(占内存大)、老对象(使用频繁) 3、Survivor无法容纳的对象,将进入老年代,Full GC主要清理该处

北京联动北方科技有限公司

3.解决办法:
    1、将转移到老年代的对象数量降到最少
    2、减少FullGC的执行时间

    那么如何减少Full GC执行时间呢?

    Full GC的执行时间比Minor GC要长很多。因此,如果Full GC花费了太多的时间(超过1秒),一些连接的部分可能会发生超时错误。如果你试图通过减少年老代空间来减少Full GC的执行时间,可能会导致OutOfMemoryError 或者 Full GC执行的次数会增加。因此,你需要将老年代空间设定为一个“合适”的值。

首先,由于程序中频繁的创建大量的对象,为了减少full gc的活动次数和活动时间,可以把JVM的yong generations和old generations的比例做适当的调整。具体调整参数:-XX:NewRatio=n,适当扩大yong generation的比例,服务器的默认值是8.意思就是 yong  generation:old generation=1:8。


其次,设置GC打印信息,为了观察调整后的GC详细的活动情况。
参数:

-verbose:gc -Xloggc:gclog.log。



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论