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部署启动的速度
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/15952760.html

浙公网安备 33010602011771号