tomcat内存配置

 

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
  
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:

如java -Xms64m -Xmx128m a.jar.

tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置。 
 

 

方法一

在catalina.bat文件中,文件开头注释结束的地方加上

set CATALINA_OPTS="-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m"

 

 

方法二

适合将tomcat作为系统服务启动,这时候上面设置的方法就不适用了,因为作为系统服务的话,系统启动时调用的是 %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服务,设置生效。

按方法二修改后用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内存,如果还超出这个值的话就会出现上面说的内存溢出了。

 

原帖地址:http://blog.163.com/alpsdyk2001@126/blog/static/52794148200983093527594/ 

 

时间: 2024-08-24 11:57:42

tomcat内存配置的相关文章

内存溢出之Tomcat内存配置

设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4. 可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置 三.实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true &quo

服务器-tomcat的内存配置怎么配置可以性能更大化呢

问题描述 tomcat的内存配置怎么配置可以性能更大化呢 tomcat的内存配置怎么配置可以性能更大化呢?服务器是64位的,tomcat是32位,,jdk也是32位的,我想问问下tomcat的最大内存可以设置多大可以更好发挥性能,各位高人看下我tomcat的配置,SET JAVA_OPTS=-server -Xms2048M -Xmx2048M -Xss512k -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m,但是我查看怎么发现

tomcat内存溢出总结

在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存原因是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. 对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat

Tomcat 内存溢出对应解决方式

阅读目录 1.Tomcat内存溢出的原因 2.OutOfMemoryError 堆内存溢出 3.OutOfMemoryError 永久保存区域溢出 3.OutOfMemoryError 无法创建新的线程   回到顶部 1.Tomcat内存溢出的原因 生产环境中Tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: OutOfMemoryError: Java heap space Ou

Tomcat 安全配置与性能优化

Tomcat 安全配置与性能优化 Mr. Neo Chen (netkiller), 陈景峰(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地518131+86 13113668890+86 755 29812080 <netkiller@msn.com> 版权 2011, 2012, 2013 http://netkiller.github.com $Date: 2013-07-23 11:48:13 +0800 (Tue, 23 Jul 2013) $ 摘要 我的系列文档 Netk

Tomcat内存溢出的三种情况及解决办法分析

Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. Tomcat内存溢出解决方案 对于前两种

Tomcat安全配置与性能优化

omcat 是 Apache软件基金会下的一个免费.开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定.扩展性好.免费等特点深受广大用户喜爱. 但是Tomcat的默认的配置,在安全方面还是有所隐患的,还有根据不同环境对Tomcat的性能要求也是不一样的.所以需要我们后期进行配置和优化. 一.版本安全 目前,企业常用的tomcat大版本为6.0和7.0版本,8.0版本虽然已经出了很久了,但是仍然不建议使用. 在升级版本中,需要注意的事情有两点: 1.

Linux与Windows下tomcat内存设置

Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin/catalina.sh(默认文件内容) 以下是自己设置的另外增加一个setenv.sh文件来设置tomcat内存,给文件加上执行权限 #vi /opt/app/tomcat6/bin/setenv.shexport JAVA_OPTS="-server -Xms512m -Xmx1024m -XX

web项目部署后heap溢出(jconsole java虚拟机内存管理 tomcat内存管理)

阶段性完成编码工作后,打算将项目部署到生产机上看看效果遇到了问题:原本在测试机的eclipse环境能够正常运行的web项目,打包成war文件部署在tomcat上运行后,报错:Java heap space在浏览器上,访问tomcat上部署的web项目时,在浏览器上显示的报错信息.简单的翻译过来就是java的heap溢出.为什么会heap溢出?怎么解决这个问题? 原理上说,java语言环境下开发的web项目,运行在tomcat服务器上.tomcat这个服务器软件,运行在jvm上,而jvm运行在操作