java虚拟机性能优化场景及方法

   日期:2020-07-15     浏览:89    评论:0    
核心提示:场景1:Full GC时间太长(1)降低堆内存大小。这样能增加full gc的次数,但每次full gc的时间会降低(2)定时出发full gc。如果full gc的频率不高,如十几个小时才触发一次,则可以考虑做个定时器,显式地调用System.gc()进行full gc。场景2:经常发生OutOfMemory内存溢出(1)本地缓存改为集中缓存。大量使用本地缓存(如大量使用HashMap作为K/V缓存),会占用堆上很多内存,尤其在集群情况下,会造成更多浪费,这时可以考虑把本地缓存改为集中缓存(如Re

场景1:Full GC时间太长

(1)降低堆内存大小。这样能增加full gc的次数,但每次full gc的时间会降低

(2)定时出发full gc。如果full gc的频率不高,如十几个小时才触发一次,则可以考虑做个定时器,显式地调用System.gc()进行full gc。

场景2:经常发生OutOfMemory内存溢出

(1)java.lang.OutOfMemoryError: Java heap space
可以参考我的另一篇文章java虚拟机java.lang.OutOfMemoryError系列之Java heap space解决思路

(2)调整直接内存大小。这种情况java堆内存够用,但整个服务器内存溢出,可能是NIO的一些用法会导致分配了过多的堆外内存,即直接内存。可以通过降低直接内存大小来防止这个情况。具体方法为调整-XX:MaxDirectMemorySize

场景3:虚拟机经常崩溃

(1)检查调用外系统是否有大量线程等待。若外系统响应时长较长,则本系统会积压大量未结束的请求,超过虚拟机承受能力而导致崩溃。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服