我们有三个具有 2 GB RAM 的 Windows Server 2003。
- server1 tomcat 5.5.25 jvm版本 SUN 1.6.0_11- b03
- server2 tomcat 5.5.25 jvm版本 SUN 1.6.0_14-b08
- server3 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 启动了。但是我们需要更大的最大堆大小 我们的服务器发生了什么?提前致谢。
我发现了问题。我卸载了 Windows 更新 KB956572。第一次重新启动后,tomcat 以 -Xmx1024m 正常启动。然后我再次安装了 Windows 更新 KB956572。新重启:tomcat 启动失败,出现上一个错误
就我而言,在 KB956572 卸载后,java 可以分配更多内存,然后使用此更新,但在安装前更少。
我认为微软文章中描述了问题的原因:http: //support.microsoft.com/kb/956572/en