linux(SL4)上定义的默认JVM堆大小在哪里

时间:2009-10-30 11:23:22

标签: jvm sun

我目前正在SL4集群上使用sun的java 1.6。

由于某种原因,1.6 JVM以一个不可能的大堆启动,无法启动:

java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

如果我用例如-Xmx1800M,然后就可以了。那么,我想知道默认堆大小的设置位置,更重要的是如何更改它?

该机器具有8GB的物理内存,我相信sun的服务器JVM应该以默认的一半内存开始,最高可达512M,但显然并非如此,因为它试图分配超过1800M。 / p> 编辑:我意识到可以使用_JAVA_OPTIONS,但这感觉有点笨拙;我在某个地方期待一个属性文件,但到目前为止我一直无法找到它。

2 个答案:

答案 0 :(得分:1)

此处没有属性文件。根据{{​​3}}:

  

初始堆大小:

     

大约1/64的机器   机器上的物理内存或一些   合理的最低限在J2SE 5.0之前,   默认的初始堆大小是a   合理的最小值,因而有所不同   平台。你可以覆盖它   默认使用-Xms命令行   选项。

     

最大堆大小:

     

小于物理的1/4   内存或1GB。在J2SE 5.0之前,   默认最大堆大小为64MB。   您可以使用覆盖此默认值   -Xmx命令行选项。

     

<小时/>   注意:为堆大小指定的边界和分数是正确的   对于J2SE 5.0。他们很可能是   在后续版本中有所不同   电脑变得更强大。

假设您有8GB的RAM,假设您使用的是Java 6,则默认的最大堆大小应为1GB。

答案 1 :(得分:1)

没有标准属性文件。 (Sun)JVM具有硬编码的默认值。