tomcat性能调优
1 内存调优
2 线程优化
一些参考文献:
1)深度理解Tomcat的acceptCount、maxConnections、maxThreads
https://blog.youkuaiyun.com/zzzgd_666/article/details/88740198
2) 杜绝假死,Tomcat容器做到自我保护,设置最大连接数
https://blog.youkuaiyun.com/huaweitman/article/details/50552983
3) tomcat最大线程数、最大等待数和最大连接数
https://blog.youkuaiyun.com/u012661248/article/details/80748814
3 配置调优
3.1 autoDeploy
该参数默认为true,tomcat会在运行过程中周期性检查是由有新的应用部署,生产环境下开启会降低tomcat性能。
我们需要在conf/server.xml
中修改成false
Q:不自动部署了,那么我们把war包放进去之后,怎么成功部署项目?
最直接的方式,我们在tomcat的manager里,或者是我在
https://blog.youkuaiyun.com/XuDe_Universe/article/details/97679132 里提到的psi-peobe里,对单个的项目进行start
Q:为啥不重启tomcat呢?
重启也是可以的,但是tomcat里放了那么多应用,你重启的时候,别人访问就报错了,这有点过分吧?
3.2 enableLookups
该值在tomcat8.5已经设置为false,不要打开,影响性能。
在生产环境会进行DNS查询,DNS查询需要经过网络,网络如果不好,直接降低性能。
3.3 reloadable
默认是关闭的,不需要打开,开启之后会通过一个线程检查两个文件夹的文件是否发生变化,影响性能!
3.4 protocol(慎重)
讲道理这个想用,还得配几样东西:
APR库
openSSL
等
亲身试验,修改后启动不起来···
关于上述内容,可以看看这篇文章:https://codeplayer.vip/p/j7s9m
conf/server.xml
中
修改协议为Apr,在高并发的情况下性能很好!!!如下:
org.apache.coyote.http11.Http11AprProtocol
3.5 session 优化
在Jsp页面中可以设置禁用Session,session存放于tomcat中,影响性能,而且不方便做分布式,可以设置jsp中的session为false
禁用jsp中session的方法:
在jsp页面中,
<% page session="false" %>