tomcat性能调优

扩大内存的方法:

tomcat运行一个大的应用程序,经常报内存不够的错误,比如java heap space outofMemory

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: Java heap space

对于这种问题,可以修改启动参数来解决。

  1. 如果是通过/bin/startup.bat启动的,那么修改/bin/catalina.bat这个文件,扩大JVM的空间,但是这个修改这个文件只针对使用startup.bat的启动方式,
  2. 如果使用windows服务器启动tomat的方式,这样的修改是没有用的,要修改注册表中的参数才可以。修改方式如下: HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Procrun 2.0/Tomcat_BAO/Parameters/Java,修改JvmMs和JvmMx的值,当前我都将其设定为1024,也就是1个G的容量。具体性能再后面继续观察。 之前还真不知道windows服务启动和startup.bat启动的区别。 windows服务器启动是在注册表中加载参数,startup.bat启动是在catalina.bat加载参数。 

注意点:

JvmMx的值并不能想多大就多大,如果超过一定值以后,就不能启动tomcat了。比如我将JvmMx设定为2048,表示2G内存,启动以后报错如下:

//reporter-stderr.2014-06-11
2014-06-11 14:48:42 Commons Daemon procrun stderr initialized

//commons-daemon.2014-06-11
[2014-06-11 14:48:42] [info]  [ 2092] Commons Daemon procrun (1.0.15.0 32-bit) started
[2014-06-11 14:48:42] [info]  [ 2092] Running 'reporter' Service...
[2014-06-11 14:48:42] [info]  [ 2968] Starting service...
[2014-06-11 14:48:42] [error] [ 4052] CreateJavaVM Failed
[2014-06-11 14:48:42] [error] [ 2968] Failed to start Java
[2014-06-11 14:48:42] [error] [ 2968] ServiceStart returned 4
[2014-06-11 14:48:42] [info]  [ 2092] Run service finished.
[2014-06-11 14:48:42] [info]  [ 2092] Commons Daemon procrun finished

所以我不断尝试JvmMx的大小,最后设定为1.5G,当前我服务器的内存是8G

 

参数调优参考

http://www.oschina.net/translate/tomcat-performance-tuning

 

参数位置参考

http://bbs.chinaunix.net/thread-3644102-1-1.html

一般加在

rem ---------------------------------------------------------------------------
//配置参数内容,不要加载if else里面

rem Guess CATALINA_HOME if not defined

 

 

集群配置apache+tomcat

http://javabigcat.iteye.com/blog/1575621

posted @ 2013-11-29 11:06  xwdreamer  阅读(3772)  评论(1编辑  收藏  举报