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个已经非常高的数值
警告: [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"/>