tomcat性能調優

擴大內存的方法:

tomcat運行一個大的應用程序,常常報內存不夠的錯誤,好比java heap space outofMemoryhtml

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

對於這種問題,能夠修改啓動參數來解決。java

  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內存,啓動之後報錯以下:apache

//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,當前我服務器的內存是8Gwindows

 

參數調優參考

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

 

參數位置參考

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

通常加在jsp

rem ---------------------------------------------------------------------------
//配置參數內容,不要加載if else裏面

rem Guess CATALINA_HOME if not defined

 

 

集羣配置apache+tomcat

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