前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat 性能调优

tomcat 性能调优

作者头像
Java学习123
发布2018-05-16 12:56:54
8920
发布2018-05-16 12:56:54
举报
文章被收录于专栏:Java学习123Java学习123

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档