windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:
如:java -Xms64m -Xmx128m a.jar.
tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置Tomcat默认可以使用的内存为128MB
有两种方法:
1. 适合用%tomcat_home%\bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。
Windows上:
在%tomcat_home%/bin/catalina.bat里设置初始内存和最大内存:
set CATALINA_OPTS="-Xms64m -Xmx512m"
检查一下Catalina.bat文件,在每个“%_RUNJAVA%”后面都应该有“%CATALINA_OPTS%”
有的Catalina.bat文件在“%_RUNJAVA%”后面跟着“%JAVA_OPTS%”,
如果是这样,应该设置:
set JAVA_OPTS=-Xms64m -Xmx512m
或者在每个“%_RUNJAVA%”后面加上“%CATALINA_OPTS%”
ms是最小的,mx是最大,64m, 512m分别是指内存的初始和最大容量.
Linux上:
在/usr/tomcat/bin/catalina.sh中加入
export JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用最大内存]'
例如:export JAVA_OPTS='-Xms256m -Xmx512m'
2. 适合将tomcat作为系统服务启动,这时候上面设置CATALINA_OPTS 属性的方法就不适用了,因为作为系统服务的话,系统启动时调用的是 %tomcat_home%\bin\tomcat5w.exe,他读取注册表中的值,而不是catalina.bat的设置,因此需要修改注册表:
解决办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\Java\Options
原值为
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs
改为:
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs -Xms300m -Xmx350m
重起tomcat服务,设置生效
________________________________________
上面在用startup.bat启动的情况下说得很明白了,但是用windows服务启动的情况说得有点含糊,按上面说的修后用windows服务器启动 发现内存并没有改变,还是默认的128M,是怎么回事呢,现说明一下具体的操作,在tomcat5的情况下,注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\Java下还有两个属性,JvmMs和JvmMx,你应该已经猜到了,对了,就是修改这两个属性 即可。但是对于tomcat6来说,好像没有这两个属性了,所以即使在Options下添加也没有效果,解决方法是手工添加这两个属性即可。另外还说明一 下查看tomcat内存使用方法:首先登陆tomcat管理页面,如:http://localhost:8080/,点击左边的Status,在该页面找到JVM,它下面有这么一句:
Free memory: 251.87 MB Total memory: 316.81 MB Max memory: 986.12 MB,这就表示现在剩余251.87M内存闲置,总共有361.81MB内存,如果超过361.81M后最大可有986.12M内存,如果还超出这个值的 话就会出现上面说的内存溢出了。
分享到:
相关推荐
#### 二、修改Tomcat内存的方法 ##### 1. 使用JAVA_OPTS变量 在Linux环境下,可以通过设置`JAVA_OPTS`环境变量来调整Tomcat的内存配置。例如: ```bash export JAVA_OPTS="-server -Xms768m -Xmx768m -XX:...
### Tomcat内存设置详解 #### 引言 在构建高性能且稳定的Web应用时,合理配置Tomcat内存参数是至关重要的一步。Tomcat作为一款广泛使用的开源应用服务器,其性能受到诸多因素的影响,其中内存配置尤为关键。正确的...
各种环境下tomcat内存设置 linux 和 windows
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。
### Tomcat JVM内存设置方法详解 #### 一、前言 Tomcat作为一款广泛使用的Java应用服务器,其性能优化一直是开发者关注的重点之一。而在性能优化的过程中,合理设置JVM(Java Virtual Machine)内存是非常关键的一...
修改eclipse中的tomcat内存的大小,以防止内存溢出。-------------------------------------------------------------------------------------------------------------------------------------------------------...
Tomcat内存溢出之解决方法 Tomcat内存溢出是指Tomcat服务器在处理大数据量时出现的内存溢出错误,导致系统崩溃或返回HTTP状态码500的错误页面。本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和...
**修改TOMCAT内存的方法详解** Apache Tomcat是一款流行的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在处理大型或复杂应用时,可能需要调整Tomcat的内存配置以优化性能。本文将详细介绍如何在不同...
这是一个查看Tomcat内存的文件。放在应用工程中,直接访问就可以。 个人感觉这是一个非常有用的文件。
以下是对“tomcat内存泄漏备份方法”的详细解析。 1. **内存泄漏的理解** 内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间。在Tomcat中,如果长时间运行的应用不断积累不再使用的对象,就会导致内存...
TOMCAT内存大小调整是指在使用Java程序从数据库中查询大量数据或应用服务器(如Tomcat、JBoss、WebLogic)加载jar包时,出现java.lang.OutOfMemoryError异常的解决方法。这种异常主要是由于应用服务器的内存不足引起...
本篇将详细介绍如何解决Tomcat内存溢出的问题,以及如何进行相应的配置优化。 首先,我们需要理解什么是内存溢出。当一个程序在运行过程中,分配给它的内存不足以存储所有数据时,就会发生内存溢出。在Java环境中,...
### Java Excel导出Tomcat内存溢出处理方法 在Java应用开发过程中,特别是在进行大量数据处理如Excel导出等操作时,经常会遇到Tomcat服务器内存溢出的问题。内存溢出是指程序运行时申请的内存超过了系统能提供的...
监控Tomcat内存使用情况是确保应用稳定运行的关键环节。Tomcat作为一款广泛应用的Java Servlet容器,其内存管理直接影响到Web应用程序的性能和响应速度。理解并监控这些内存指标可以帮助我们及时发现并解决潜在的...
在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。本文就介绍了Tomcat内存溢出的三种情况及解决办法分析
### 如何设置Tomcat内存大小 要修改Tomcat的内存参数,主要操作步骤如下: 1. **定位配置文件**:找到Tomcat安装目录下的`bin`目录,其中包含`catalina.sh`(Unix/Linux系统)或`catalina.bat`(Windows系统)脚本...