首页 新闻 会员 周边

jvm垃圾回收使用cms,但是应用使用的内存大小超过heap+Perm

0
悬赏园豆:100 [待解决问题]

线上一个tomcat,启动参数如下:

复制代码
-server
-Xms5000m 
-Xmx5000m 
-XX:NewRatio=1  
-XX:SurvivorRatio=2  
-XX:PermSize=600m 
-XX:MaxPermSize=600m  
-XX:+UseCompressedOops 
-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps -Xloggc:$1_tomcat_server/logs/gc.log -XX:+TieredCompilation -XX:GCHeapFreeLimit=10 -XX:GCTimeLimit=90 -XX:+HeapDumpOnOutOfMemo ryError -XX:HeapDumpPath=/tmp/heap -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=90 -XX:MaxTenuringThreshold=15 -XX:+AlwaysPreTouch -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution
复制代码

产生的问题就是,我设定了-Xms5000m 和-Xmx5000m ,那么heap加上Perm的总大小应该为5.6G左右,意思就是我们使用top查看这个进程的使用情况时,显示该进程使用的内存总共应该是5.6,但是现实情况是下面这样的:

 

比理论上总是要大哥900M左右,当我试着变化-Xms 和-Xmx的值后,再次启动,应用始终使用的内存大小比heap+perm大上900M,有没有谁知道这900M去哪里了

 

其次当我使用 Parallel GC的时候,应用内存的大小事等于heap+perm的

 

求助大家,谢过

我的胡子有点扎的主页 我的胡子有点扎 | 初学一级 | 园豆:102
提问于:2017-04-01 11:08
< >
分享
所有回答(1)
1

内存占用=(-Xmx) + (-XX:MaxPermSize) + 线程数 * (-Xss) + 其它内存(NIO、socket缓冲区、JNI等)

狼爷 | 园豆:1204 (小虾三级) | 2017-05-10 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册