tomcat 性能调优

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"/>

猜你喜欢

转载自gjp014.iteye.com/blog/2213203