記錄一個(gè)今天遇到的問(wèn)題。
Java版本:1.4
運(yùn)行設(shè)置: -Xms1G -Xmx4G
報(bào)錯(cuò):
[ Incompatible initial and maximum heap sizes specified: ]
[ initial size:1073741824 bytes, maximum heap size: 67108864 bytes ]
[ The initial heap size must be less than or equal to the maximum heap size. ]
[ The default initial and maximum heap sizes are 4194304 and 67108864 bytes. ]
無(wú)法創(chuàng)建Java虛擬機(jī)。
疑問(wèn):執(zhí)行語(yǔ)句中設(shè)置初始化內(nèi)存1G,最大內(nèi)存4G,但是錯(cuò)誤提示中為什么最大內(nèi)存是64M?
嘗試1:固定Xmx為4G
1、Xms修改為512M,1G,2G,3G均報(bào)相同的錯(cuò)誤
2、Xms修改為4G(與Xmx相同),正常運(yùn)行
3、Xms修改為小于等于64M,正常運(yùn)行
嘗試2:固定Xms為1g,修改Xmx
1、Xmx4g,報(bào)之前的錯(cuò)誤
2、Xmx4000M,正常運(yùn)行
3、Xmx3g,正常運(yùn)行
4、Xmx3500M,如下報(bào)錯(cuò):
[ Unable to mmap Java heap of requested size, perhaps the maxdata value is too large - see Java README.HTML for more information. ]
JVMDG218: JVM is not fully initialized - will not do dump processing.
此程序一般肯定會(huì)用掉至少1G內(nèi)存,設(shè)置為64M會(huì)使得GC太過(guò)頻繁,所以目前Xms設(shè)置為4G來(lái)用,就是不理解為什么設(shè)置在大于64M小于4G的時(shí)候會(huì)創(chuàng)建JVM失敗,并且提示最大內(nèi)存是64M。
望高手指導(dǎo),謝謝~