Tomcat8性能优化:
Tomcat提供了三种模式 BIO ,NIO ,APR
BIO : Tomcat8以下默认的I/O模式,性能低下
NIO : Tomcat8默认的非阻塞I/O,性能相较BIO更好
APR : 性能有大幅的提升,但安装困难。
Tomcat8 也可以采用NIO2 模式 (推荐使用)
优化1 禁用AJP:
由于我们大部分架构采用的是Nginx+Tomcat的架构,tomcat的AJP对应用系统来说没有什么用,所以我们可以禁用AJP
找到server.xml文件:vim 进入编辑
注释掉
Connector port=“8009” protocol=“AJP/1.3” redirectPort=“8443”
优化2 采用线程池提高性能:
找到server.xml文件:vim 进入编辑
打开注释
<Executor name=“tomcatThreadPool” namePrefix=“catalina-exec-” maxThreads=“500” minSpareThreads=“50” prestartminSpareThreads ="true"maxQueueSize=“100”/>
参数说明:
maxThreads :最大并发数,默认设置为200, 一般建议在500-1000。
minSpareThreads: Tomcat初始化时创建的最大线程数,默认设置为25
prestartminSpareThreads:在Tomcat初始化的时候就初始化minSpareThreads的参数设置,如果不等于true,minSpareThreads的值就没啥效果
maxQueueSize:最大等待队列数,超过则拒绝请求
然后在Connector设置一个执行器 executor的属性值指向上面执行器的name
优化3 : tomcat8采用NIO2的模式
找到server.xml文件:vim 进入编辑
在Connector中配置 protocol
如果想要性能更高 可以采用APR的模式 :
具体的创建可以采用:https://www.cnblogs.com/freeweb/p/6430053.html
优化4 : 关闭tomcat自动部署的功能 将autoDeploy改为false:
找到server.xml文件:vim 进入编辑
Host name=“localhost” appBase=“webapps” unpackWARs=“true” autoDeploy=“false”