一 前言 tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。
二 bio 默认的模式 blocking IO,性能非常低下,没有经过任何优化处理和支持.
三 nio 利用java的异步io护理技术,no blocking IO技术.
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为
<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
enableLookups="false"
redirectPort="8443" />
启动后,就可以生效。性能得到初步优化但与apr相比,还是有一些差距。
四 apr 安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
必须要安装apr和native,直接启动就支持apr。
下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native
如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol
五 补充 1)安装APR的方法,请看我另一篇博客http://phl.iteye.com/blog/910984;
2)关于性能数据请读者们自行研究,笔者不是在写教科书在此只是给出思路,性能研究是个很深的领域,请各位按需自行搭建环境测试;
3)总的来说,bio是不推荐使用的,apr的模式推荐;
item | protocol | Requests per second |
BIO | org.apache.coyote.http11.Http11Protocol | 916.06 [#/sec] (mean) |
NIO | org.apache.coyote.http11.Http11NioProtocol | 2102.26 [#/sec] (mean) |
APR | org.apache.coyote.http11.Http11AprProtocol | 1997.24 [#/sec] (mean) |
http://phl.iteye.com/blog/910996