1、-Xmx18G -Xms10G -Xmn4G
这种配置为什么服务启动后top显示进程的物理内存占用只有5.9g?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP CODE DATA COMMAND
25442 * 20 0 18.6g 5.9g 14m S 14 12.6 3:24.15 12g 36 18g java
2、另外一个服务,配置了-Xmx1G -Xmn500m -XX:SurvivorRatio=1
按理说新生代中内存分布应该是Eden :S0:S1 = 1:1:1=166.7M:166.7M:166.7M
进程刚启动时确实也是这样的,但是运行了一天以后S0和S1减少到只有7MB了,Eden增大至486M了,何解?
1. 它不全是占用物理内存,还会占用虚拟内存
2. 这个看上去您的SurviorRation没有生效,如果能贴出您的Java版本和GC回收器,可能会有帮助。