1.----------------------Linux下修改TomcatJVM内存大小----------------------
要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的.
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
cygwin=false
2 ----------------------windows下修改Tomcat JVM内存大小----------------------
情况一:解压版本的Tomcat , 要通过startup.bat启动tomcat才能加载配置
要添加在tomcat 的bin 下catalina.bat 里
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加,红色的为新添加的.
set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
rem gjp add
set JAVA_OPTS=-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true
3.使用线程池
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!-- open pools -->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="800" minSpareThreads="50"
/>
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- A "Connector" using the shared thread pool-->
<!-- open pools -->
<Connector executor="tomcatThreadPool"
port="8081" protocol="org.apache.coyote.http11.Http11Protocol"
connectionTimeout="20000"
maxSpareThreads="750"
acceptCount="800"
redirectPort="8443" />
说明
maxThreads="600" ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
maxthread太多,导致切换过多,性能下降严重。这个数量应该是你单个机器的承载能力, 压力测试下得出的结果。
不可任意加大。一般情况下, 256-512个已经非常高的数值
参考文献
1.我在linux系统下web系统. http://www.iteye.com/topic/299988
2.Tomcate启动内存设置.http://blog.csdn.net/peijunlin/archive/2009/06/05/4244401.aspx
3.Tomcat6 一些调优设置内存和连接数.http://mcncc.com/simple/?t25909.html
4.Java虚拟机参数 -XX等相关参数应用. http://hi.baidu.com/charlesyy/blog/item/b89b5dee30cfdaf9b2fb95d5.html/cmtid/dda586260800bf1a8b82a173
警告: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareTheads' to '300' did not find a matching property.
但是访问应用程序正常。
通过网上搜索,具体解决方法如下:
server.xml中的配置HTTPS的那部分Connector代码
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="你的.keystore文件" />
将protocol参数由"HTTP/1.1"改成"org.apache.coyote.http11.Http11Protocol",重新启动Tomcat,搞定!
根据Tomcat官方的文档http://tomcat.apache.org/tomcat-6.0-doc/config/http.html,"HTTP/1.1"和"org.apache.coyote.http11.Http11Protocol"是一样的,但是不知道为什么前者会出错而后者就是对的,而且HTTP部分的Connector用的也是"HTTP/1.1"。
4.放开监控页面,查看参数配置
tomcat-users.xml
添加:<role rolename="manager-gui"/>
<user username="admin" password="admin123456" roles="manager-gui"/>