Windows 更新后 JVM 内存初始化错误

Windows 更新后 JVM 内存初始化错误

我们有三台配备 2 GB RAM 的 Windows Server 2003。

  • 服务器1 tomcat 5.5.25 jvm 版本 SUN 1.6.0_11-b03
  • 服务器2 tomcat 5.5.25 jvm 版本 SUN 1.6.0_14-b08
  • 服务器3 tomcat 6.0.18 jvm 版本 SUN 1.6.0_14-b08

这三台服务器的 JVM 参数如下:

 -XX:MaxPermSize=256m
 -Dcatalina.base=C:\Programmi\Apache Group\apache-tomcat-5.5.25
 -Dcatalina.home=C:\Programmi\Apache Group\apache-tomcat-5.5.25
 -Djava.endorsed.dirs=C:\Programmi\Apache Group\apache-tomcat-5.5.25\common\endorsed
 -Djava.io.tmpdir=C:\Programmi\Apache Group\apache-tomcat-5.5.25\temp vfprintf
 -Xms512m
 -Xmx1024m

几个月来一切都运行良好。上周五我们安装了一些 Windows 更新。重启后,tomcat 无法启动,并出现错误:

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

我们将参数 -Xmx1024m 减小到 -Xmx768m,现在 tomcat 可以启动了。但我们需要更大的最大堆大小。我们的服务器怎么了?提前致谢。

答案1

我找到了问题所在。我卸载了 Windows 更新 KB956572。第一次重启后,Tomcat 正常启动,并显示 -Xmx1024m。然后我再次安装了 Windows 更新 KB956572。再次重启:Tomcat 启动失败,并出现上一个错误

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

答案2

就我而言,卸载 KB956572 后,java 可以分配比此更新更多的内存,但在安装前分配较少的内存。

我认为问题的原因在 Microsoft 文章中有所描述: http://support.microsoft.com/kb/956572/en

相关内容