64位CentOs上Tomcat 6的最大堆大小?

时间:2011-03-09 17:15:02

标签: java tomcat heap centos ram

我正在运行CentOS 5.4的大型EC2实例上运行tomcat 6实例。 该盒子有7.5GB的RAM,专用于运行tomcat。

我正在尝试将6GB的RAM用于它的最大堆。但是我一直收到这个错误:

Invalid maximum heap size: -Xmx6144m
The specified size exceeds the maximum representable size.

当我放弃我给它的RAM量时,我开始得到这个错误:

Error occurred during initialization of VM
Could not reserve enough space for object heap

即使应用程序正在运行(使用xmx3000m),当我免费运行时,我还有这个数额免费:

 [tomcat@producer1:/usr/share/tomcat/logs] $free
             total       used       free     shared    buffers     cached
Mem:       7864320    1512736    6351584          0     179948     702352
-/+ buffers/cache:     630436    7233884
Swap:            0          0          0

我能给予的最多是3000米。这似乎不合理地小。有人有主意吗? 感谢

1 个答案:

答案 0 :(得分:3)

您是否安装了64位JDK?如果您使用的是32位JDK,则最大可以访问4GB(理论上)。 当你计划6GB时,你需要64位JDK。除此之外,因为你有7.5G,6GB是紧的没有。 CentOS需要一些内核用于内核,处理其他服务,SWAP内存。

所以试试看吧通过从5G开始增加堆大小的错误。 JDK需要超出堆的额外内存,如permgenspace(通常为128M - 512M,具体取决于您拥有的库/类加载器的数量)

请参阅:http://benjchristensen.com/2007/02/16/32-bit-versus-64-bit-jdk-memory-usage/