tomcat《二》

 

tomcat请求
7.0:BIO同步阻塞
8.0:NIO同步非阻塞
9.0;AIO异步非阻塞

 

Tomcat优化方案:
1.connect连接
2..host参数
3.Executor参数

 1.改变IO同步异步方式,由同步改为异步,把NIO改成AIO

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


通过修改protol该改变成下面org.apache.coyote.ajp.AjpNioProtocol可以变成AIO
 <Connector port="8080" protocol="org.apache.coyote.ajp.AjpNioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />


可以看到8.0.15默认是HTTP/1.1是NIO
7.0是BIO
9.0是AJP/1.3为AIO

 2.修改线程池数量

Tomcat  的线程池默认数量:

 

 

给connect指定tomcatThreadPool线程池数量大小如下:

 

 
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>

   
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 3.springboot的默认tomcat优化方式---->集成  mq  redis  tomcat starter      

application.yml文件或者---->@ConfigurationProperties注解修改

4.0server.xml里面用不到的标签也可以删除,

从上面的源码可以看出一个connect,executor,Listener等都是一个组件,tomcat都会使用在java层面创建对象,占用内存和IO开销

 

 

4.0  host优化

unpackWARs    把war包进行解压,默认也是开启的  不需要war包的其实可以在xml删除这个属性

autoDeploy  自动部署,默认是开启的

 

 

<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true" startStopThreads="5">

把startStopThreads加上去可以多线程部署web应该用,默认值为1个线程部署

5.0  session默认配置也可以优化

  <!-- ==================== Default Session Configuration ================= -->
  <!-- You can set the default session timeout (in minutes) for all newly   -->
  <!-- created sessions by modifying the value below.                       -->

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

如果会话管理在第三方,web.xml的默认session配置也可以去掉
 6.0把work问价夹下的Catalina里面可以清理,log文件夹的东西也可以删掉
5.0和6.0就可以增加tomcat部署启动的速度

 

posted @ 2022-03-01 21:43  余生请多指教ANT  阅读(26)  评论(0编辑  收藏  举报