Tomcat问题 - 无法保留足够的空间

时间:2011-06-04 08:40:16

标签: java tomcat memory heap heap-memory

我正在使用256MB RAM运行服务器。我可以为Java分配的最大堆大小是110MB。当我将这些参数添加到JAVA_OPTS时,我可以运行java -version。问题是我无法使用这些参数运行Tomcat。 Tomcat运行的最大堆大小为40MB。我不知道为什么我不能分配更多的内存?

当然我收到错误:

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

3 个答案:

答案 0 :(得分:2)

CATALINA_OPTS设为-Xmx110mJAVA_OPTS。我想你可以设置两个,确定。

答案 1 :(得分:2)

使用Xmx标志运行java可执行文件时,可能会忽略-version标志。这取决于您如何传递版本标志。以下是我的机器上带有2GB RAM的结果:

在Xmx之前传递的版本标志

C:\Users\Reynolds>java -version -Xmx10240M
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
考虑到10G超出了32位环境中内存的最大可寻址限制,这很奇怪。

在Xmx之后传递版本标志

C:\Users\Reynolds>java -Xmx10240M -version
Invalid maximum heap size: -Xmx10240M
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.

C:\Users\Reynolds>java -Xmx1524M -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine. 

更接近现实。

您可能希望使用第二种方法验证Java实际可用的连续内存量,然后确定最大堆大小的最佳值。

答案 2 :(得分:1)

错误消息表明您没有足够的可用RAM尝试关闭其他应用程序并查看是否可以分配更大的堆。你恐怕可能需要更多内存。