Tomcat 内存设置

Tomcat 可用内存 的大小影响其工作性能,将出现 java.lang.OutOfMemoryError: Java heap space 等异常,从而导致客户端显示500错误。通过调整 Tomcat 的内存设置,可以解决此问题。

Tomcat 在 Windows 下的启动方式有两种:startup.bat 和 Windows服务。这两种方式对应的内存设置方法也不一样。

1、startup.bat

在 Tomcat 安装目录的bin文件夹下,找到catalina.bat文件,在最上面添加这样一句:

set JAVA_OPTS = -Xms256m -Xmx512m

这样JVM内存已经被改到最小 256 MB、最大 512 MB

重新执行 startup.bat  启动Tomcat 即可。

2、Windows服务

通过服务启动的 Tomcat,修改catalina.bat的方法不起作用。需修改注册表

打开注册表,查找 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\MyTomcatService\Parameters\Java,其中MyTomcatService是你的Tomcat服务名,修改 JvmMS 和 JvmMX 的值,注意值的数制。

也可以运行 tomcat5w.exe //ES//MyTomcatService,打开Tomcat服务管理器,选择Java选项卡,修改

Initial memory pool(初始化设置的内存的大小)和
Maximum memory pool(最大内存的大小)
Tomcat 内存设置_第1张图片

Tomcat 6对应是tomcat6w.exe。

重新启动Tomcat服务即可使 Tomcat 按新的内存设置工作。

 

注一,在Linux下,

修改“%TOMCAT_HOME%\bin\catalina.sh”文件,如 /usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 
添加:JAVA_OPTS='-Xms512m -Xmx1024m' 
数字后面的“m”表示内存单位是MB,否则是KB。 
-Xms:初始值 
-Xmx:最大值 
-Xmn:最小值


注二,可在程序中,用下列代码来查JVM内存情况

System.out.println("TotalMemory :::: " + (Runtime.getRuntime().totalMemory()/(1024*1024) + "M"));  
System.out.println("Max Memory :::: " + (Runtime.getRuntime().maxMemory()/(1024*1024) + "M"));  
System.out.println("Free Memory :::: " + (Runtime.getRuntime().freeMemory()/(1024*1024) + "M")); 

你可能感兴趣的:(Tomcat 内存设置)