GC overhead limit exceeded问题排查

某次应用报了异常,异常信息提示为“GC overhead limit exceeded”,怀疑是内存存在问题,使用jmap导出其堆内存情况,并且使用MAT进行分析,发现了有concurrentHashMap大对象,继续追其原因发现都是“redirect:http://xxx“”对象,排查代码发现有使用到redirect的地方只有SpringMVC ModelAndView,在controller方法返回时返回了一个new ModelAndView("redirect:"+"{url}");

每次返回一个重定向的地址不一样时都会创建一个对象,于是随着请求数量越来越多,这个哈希对象就越来越大,最终造成“GC overhead limit exceeded”。


解决方案:使用response.sendRedirect()方法替代ModelAndView对象的方式。


上一篇:IBM Aix系统 rootvg 镜像卷更换坏硬盘步骤


下一篇:数据库内核月报 - 2015 / 11-MySQL · 社区见闻 · OOW 2015 总结 MySQL 篇