centos 64位CentO上Tomcat 6的最大堆大小?

zlhcx6iw  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(157)

我正在一个运行CentOS 5.4的大型EC2示例上运行一个tomcat 6示例。该盒子有7. 5GB的RAM,专门用于运行tomcat。
我试图给予盒子6GB的内存使用它的最大堆。但是我一直得到这个错误:

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米。这看起来小得不合理。有人有什么想法吗?谢谢

unhi4e5o

unhi4e5o1#

您是否安装了64位JDK?如果您使用的是32位JDK,它最多可以访问4GB(理论上)。因为您计划使用6 GB,所以您需要64位JDK。再加上您有7.5G,6 GB是一个很小的数目。CentOS需要一些内存用于内核,处理其他服务,从这里交换内存。
因此,从5G开始增加堆的大小来尝试错误。JDK需要额外的内存,比如permgenspace(通常是128 M-512 M,取决于你有多少个库/类加载器)。
请参阅:http://benjchristensen.com/2007/02/16/32-bit-versus-64-bit-jdk-memory-usage/

相关问题