Tomcat 以 windows 服务的形式运行,出现 “Java heap space” 或 “GC overhead limit exceeded” 问题的解决方法

已经在 catalina.bat 中配置了大内存:

set CATALINA_OPTS=-Xms512M -Xmx728M
set JAVA_OPTS=-Xms512M -Xmx728M

实测,通过 startup.bat 中内存会根据我们的配置正常设置,而如果是通过 windows 的服务启动的,就没有作用。

2 分析

windows 的服务应该是从其他的配置项中获取内存设置参数的。
运行 -》 regedit -》进入注册表 -》找到 Apache Software Foundation 中相应的服务,然后点击 Parameter -》Java ,在右边会看到 JvmMs 与 JvmMx 的配置:

Tomcat 以 windows 服务的形式运行,出现 “Java heap space” 或 “GC overhead limit exceeded” 问题的解决方法_第1张图片

原来作为 windows 服务的 Tomcat,是从注册表中读取的内存设置参数的哦O(∩_∩)O哈哈~

2 解决

把 JvmMs 与 JvmMx 的配置改大一些。

Tomcat 以 windows 服务的形式运行,出现 “Java heap space” 或 “GC overhead limit exceeded” 问题的解决方法_第2张图片

修改时注意右边的基数,使用我们看惯了的 “十进制” 基数来修改数值,会更方便哦O(∩_∩)O哈哈~

你可能感兴趣的:(Tomcat)