Tomcat内存设置方法

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内存,如果还超出这个值的 话就会出现上面说的内存溢出了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值