ab168 发表于 2017-1-16 10:27:36

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/
页: [1]
查看完整版本: tomcat内存配置