Tomcat:调整内存比例

我有一个运行在Windows 2008 Server上的Tomcat实例,内存为4GB。 服务器专用于这一个应用程序,所以我非常希望能够将大部分RAM专用于Tomcat。 我的Tomcat设置目前有以下java选项:

-Xms256m

-Xmx1600m

我想增加RAM的数量,最好是大约3GB(显然我知道怎么做,只需增加-Xmx值)。 但是,如果我将最大堆空间增加到1600MB以上,Tomcat就会拒绝启动。 我读过的几个网站都说Tomcat不能使用超过40%的可用RAM,这看起来与我所看到的一致。

有没有办法增加Tomcat可以使用的内存比例 ,这样我可以增加Tomcat可以使用的内存

谢谢,Rik

您的问题可能与操作系统有关,而不是Tomcat / Java。 Windows操作系统将32位进程的内存分配限制为总共2 GiB(默认情况下)。

它只允许你分配大约1.5 GiB堆空间的原因是因为还有其他内存分配给进程(JVM /库开销,perm gen空间等)。

为什么32位Windows会产生2 GB的进程地址空间限制,但64位Windows会施加4GB的限制?

其他现代操作系统[ 咳嗽 Linux]允许32位进程使用4 GiB可寻址空间的全部(或大部分)。

也就是说,64位Windows操作系统可以配置为将32位进程的限制增加到4 GiB(32位为3 GiB):

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx

但是,正如您所做的那样,最佳解决方案是在64位操作系统上使用64位JVM。 Terabyte堆积任何人:

64位Java的最大内存 :D

尽管有64位服务器,我只安装了32位Java / Tomcat。 我卸载了Java和Tomcat并安装了64位版本,一切正常。 似乎问题是32位Java只能处理1.5 GB。

谢谢,Rik