catalina.bat配置的内存对Tomcat服务不起作用

2022-07-22  本文已影响0人  催化剂

参考链接:https://blog.csdn.net/weixin_42350212/article/details/122901682

Windows环境下:

在catalina.bat最前面加入set JAVA_OPTS=-Xms128m -Xmx350m 

如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.

但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..

windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.

解决办法:

如果你的tomcat是注册为windows服务并且是以服务方式启动的,那么上面的方法就无效了,因为这时tomcat启动是读取注册表的参数,而不是读取批处理文件的参数,这时我们有两种方法来设置jvm参数。

第一种比较简单,tomcat为我们提供了一个设置启动参数的窗体,双击tomcat_home/bin目录下的tomcat7w.exe,如图

下方的Initial memory pool就是初始化堆内存大小,Maximun memory pool是最大堆内存大小。

而要设置Perm Gen池的大小就要在Java Option里面加参数了,在里面加上:

-Dcatalina.base=%tomcat_home%

-Dcatalina.home=%tomcat_home%

-Djava.endorsed.dirs=%tomcat_home%endorsed

-Djava.io.tmpdir=%tomcat_home% emp

-XX:PermSize=512M

-XX:MaxPermSize=2048M

-Xms256M 

-Xmx10240M

-Duser.timezone=GMT+08

重起tomcat服务,设置生效

上一篇下一篇

猜你喜欢

热点阅读