今天对绿色版tomcat优化,及JVM配置策略进行了整理,并测试,再次记录一下,方便以后使用。
说明: 大家如果是安装服务版的Tomcat,或者自己手动注入到window的管理-->服务 里去的话,那用这个方式是不行的,需要修改注册表,网上已经有很多内容说明了,下一节在做补充。
1.修改tomcat-6\bin\catalina.bat配置文件
rem -----------------------------------------------------
rem @lishuhao @2013-1-28
rem start
rem set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
set JAVA_OPTS=%JAVA_OPTS% -server -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:NewRatio=16 -XX:+UseAdaptiveSizePolicy
set JAVA_OPTS=%$JAVA_OPTS% -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
rem end
注意:以上设置需加在
rem ---------------------------------------------------------------------------
rem Guess CATALINA_HOME if not defined
之间的位置,不要加到那些if里面去了,否则不一定会生效.
如果有疑问.可以用
echo %JAVA_OPTS%>"%CATALINA_BASE%\bin\JAVA_OPTS.log"
来检查配置是否正确
备注:有时候会在set JAVA_OPTS的设置后面加上: -Djava.net.preferIPv4Stack=true或者 -Djava.awt.headless=true"
<1>-Djava.net.preferIPv4Stack=true主要解决问题如下:
tomcat启动时报错:java.net.SocketException: select failed,并不断循环。
解决办法为:对tomcat的jvm参数进行修改,添加“-Djava.net.preferIPv4Stack=true”这一句,从新启动tomcat即可。
<2>-Djava.awt.headless=true 主要解决问题如下:
发现jsp验证码不能显示。查tomcat日志:“Could not initialize class sun.awt.X11GraphicsEnvironment”。
解决方法为:对tomcat的jvm参数进行修改,添加“-Djava.awt.headless=true ”这一句,从新启动tomcat即可。
2.修改tomcat 6 /conf/server.xml配置文件
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="400" />
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000" enableLookups="false"
redirectPort="8443" URIEncoding="UTF-8" acceptCount="1000" />
另外,tomcat5下的设置为: <Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true" maxThreads="1000" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
并发1000没啥问题
参考博客:http://feijian8.iteye.com/blog/1757542
http://www.iteye.com/topic/1125715