史上最强Tomcat8性能优化(上)( 二 )



史上最强Tomcat8性能优化(上)文章插图
重启tomcat , 查看效果 。 可以看到AJP服务已经不存在了 。
史上最强Tomcat8性能优化(上)文章插图
执行器(线程池)在tomcat中每一个用户请求都是一个线程 , 所以可以使用线程池提高性能 。
修改server.xml文件:
保存退出 , 重启tomcat , 查看效果 。
史上最强Tomcat8性能优化(上)文章插图
在页面中显示最大线程数为-1 , 这个是正常的 , 仅仅是显示的问题 , 实际使用的是指定的值 。 如果配置了一个Executor , 则该属性的任何值将被正确记录 , 但是它将被显示为-1
3种运行模式tomcat的运行模式有3种:
bio性能非常低下 , 没有经过任何优化处理和支持
nionio(new I/O) , 是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包) 。 Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API , 因此nio也被看成是non-blocking I/O的缩写 。 它拥有比传统I/O操作(bio)更好的并发运行性能 。 Tomcat8默认使用nio运行模式 。
apr安装起来最困难 , 但是从操作系统级别来解决异步的IO问题 , 大幅度的提高性能
对于每种协议 , Tomcat都提供了对应的I/O方式的实现 , 而且Tomcat官方还提供了在每种协议下每种I/O实现方案的差异 ,HTTP协议下的处理方式如下表 , 详情可查看Tomcat官网说明
BIONIONIO2APR类名Http11ProtocolHttp11NioProtocolHttp11Nio2ProtocolHttp11AprProtocol引用版本≥3.0≥6.0≥8.0≥5.5轮询支持否是是是轮询队列大小N/AmaxConnectionsmaxConnectionsmaxConnections读请求头阻塞非阻塞非阻塞阻塞读请求体阻塞阻塞阻塞阻塞写响应阻塞阻塞阻塞阻塞等待新请求阻塞非阻塞非阻塞非阻塞SSL支持Java SSLJava SSLJava SSLOpen SSLSSL握手阻塞非阻塞非阻塞阻塞最大链接数maxConnectionsmaxConnectionsmaxConnectionsmaxConnections
推荐使用nio , 在tomcat8中有最新的nio2 , 速度更快 , 建议使用nio2
设置nio2:

史上最强Tomcat8性能优化(上)文章插图
可以看到已经设置为nio2了 。
部署测试用的web项目为了方便测试性能 , 我们将部署一个java web项目 , 这个项目本身和本博客没有什么关系 , 仅仅用于测试 。