性能问答>CMS回收算法,但是每次回收之后内存一直在上涨>
6回复
2年前

CMS回收算法,但是每次回收之后内存一直在上涨



使用CMS回收算法,每次启动了CMS回收之后内存会回收一些,但是总量却是始终在上升的。回收过程大概是6G->3G,6G->4G,6G->5G,6G->6G,之后就开始频繁的FullGC。
程序里面已知实际的常驻内存对象大概有2G,通过heap dump看也能看出来就是这2G的对象占用内存排在前面,其他的没看出来有占用内存比较多的。
求教大家如何找到内存上涨的原因?谢谢!

4949 阅读
请先登录,再评论

这个通过jmap -histo可以看出来吧。
当内存占比很高的时候,或者直接在OOM的时候进行heap dump分析

2年前
回复 LetUsJava:

因为Xmx=7G,所以内存dump有8G多,这么大能传上去吗?

2年前回复
回复 MrJ:

内存dump可以传到perfma的内存分析产品里一起看看吗

2年前回复
回复 LetUsJava:

用jmap -histo和dump看的结果类似,排在前面的都是MyBatis的configuration对象相关的,没有别的。

2年前回复
查看更多

忘了说,设置的Xmx=7G,这么大内存还使用CMS可能是不合适,但是还是想知道为什么内存会一直涨

2年前