`

Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

 
阅读更多

Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

标签: tomcat bio nio.apr | 发表时间:2014-08-13 10:04 | 作者:jsczxy2
分享到:
出处:http://www.iteye.com

 

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。 

1)bio 

默认的模式,性能非常低下,没有经过任何优化处理和支持. 

2)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" /> 

启动后,就可以生效。 

3)apr 

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能. 

必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native 

如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol

 

 

Tomcat的四种基于HTTP协议的Connector性能比较
<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"                           connectionTimeout="20000" redirectPort="8443"/>
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
               redirectPort="8443"/>
<Connector executor="tomcatThreadPool"
               port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector executor="tomcatThreadPool"
               port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

我们姑且把上面四种Connector按照顺序命名为 NIO, HTTP, POOL, NIOP

为了不让其他因素影响测试结果,我们只对一个很简单的jsp页面进行测试,这个页面仅仅是输出一个Hello World。假设地址是 http://tomcat1/test.jsp

我们依次对四种Connector进行测试,测试的客户端在另外一台机器上用ab命令来完成,测试命令为: ab -c 900 -n 2000 http://tomcat1/test.jsp ,最终的测试结果如下表所示(单位:平均每秒处理的请求数):



NIO HTTP POOL NIOP
281 65 208 365
666 66 110 398
692 65 66 263
256 63 94 459
440 67 145 363

由 这五组数据不难看出,HTTP的性能是很稳定,但是也是最差的,而这种方式就是Tomcat的默认配置。NIO方式波动很大,但没有低于280 的,NIOP是在NIO的基础上加入线程池,可能是程序处理更复杂了,因此性能不见得比NIO强;而POOL方式则波动很大,测试期间和HTTP方式一 样,不时有停滞。

由于linux的内核默认限制了最大打开文件数目是1024,因此此次并发数控制在900。

尽管这一个结果在实际的网站中因为各方面因素导致,可能差别没这么大,例如受限于数据库的性能等等的问题。但对我们在部署网站应用时还是具有参考价值的。

 

分享到:
评论

相关推荐

    JAVA_Tomcat面试专题14道.pdf

    Tomcat的Connector有bio、nio、aio和apr四种运行模式: 1. bio:传统的Java I/O操作,同步且阻塞IO。 2. nio:JDK1.4开始支持,同步阻塞或同步非阻塞IO。 3. aio(nio.2):JDK7开始支持,异步非阻塞IO。 4. apr:...

    Tomcat面试专题及答案.pdf

    Tomcat 有多种 Connector 运行模式,包括 bio、nio、aio 和 apr。 1. bio 模式:传统的 Java I/O 操作,同步且阻塞 IO。 2. nio 模式:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。 3. aio 模式:JDK7 开始支持,...

    tomcat的运行模式

    在本文中,我们将详细介绍Tomcat的三种主要运行模式:BIO(Blocking I/O)、NIO(Non-blocking I/O)和 APR(Apache Portable Runtime),并探讨它们的配置方法。 #### 1. BIO (Blocking I/O) BIO 模式是最传统的I...

    Tomcat面试题 14道.pdf

    Tomcat 的 Connector 运行模式有多种,包括 bio、nio、aio、apr 等。其中,bio 是传统的 Java I/O 操作,同步且阻塞 IO。nio 是 JDK 1.4 开始支持的同步阻塞或同步非阻塞 IO。aio 是 JDK 7 开始支持的异步非阻塞 IO...

    apr库(tomcat优化)

    它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。  AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度...

    浅谈Tomcat三种运行模式

    Tomcat服务器有三种运行模式:bio、nio和apr。每种模式都有其特点和优缺点,本文将对这三种模式进行详细的介绍。 bio模式 bio模式是Tomcat服务器的传统运行模式,也是Tomcat 7以下版本的默认运行模式。bio模式使用...

    10.3Tomcat三种工作模式介绍.txt

    根据提供的文件信息,本文将详细介绍Tomcat服务器的三种工作模式:BIO(Blocking I/O)、NIO(Non-blocking I/O)以及AIO(Asynchronous I/O),并简要提及APR(Apache Portable Runtime)的工作原理及其与Tomcat的...

    tomcat apr模式所需资源包

    APR模式利用操作系统底层的I/O功能,如TCP/IP套接字和多线程,从而提供了比默认的Java NIO或BIO模型更高的效率。 首先,我们需要理解什么是APR。APR是Apache HTTP服务器项目的一部分,它提供了一个跨平台的API,...

    服务器Tomcat面试题

    Tomcat 有三种 Connector 运行模式: * bio:传统的 Java I/O 操作,同步且阻塞 IO。 * nio:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。 * aio (nio.2):JDK7 开始支持,异步非阻塞 IO。 * apr:Tomcat 将以 JNI ...

    apr库(tomcat优化) for native 20

    它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。  AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度...

    Tomcat实战-调优方案.docx

    Tomcat有三种运行模式:**BIO**(Blocking I/O,默认模式,性能较低)、**NIO**(Non-blocking I/O,性能优于BIO)和**APR**(Apache Portable Runtime,基于操作系统的异步I/O,性能最佳但安装复杂)。通常建议使用NIO或...

    apache-tomcat-8.5.8

    Tomcat通常使用两种类型的连接器:Bio( Blocking I/O)和Nio(Non-blocking I/O),其中Nio在处理大量并发请求时表现更优。 4. **Jasper**:这是JSP引擎,用于将JSP文件转换为Servlet类并执行。 5. **...

    15道经典的Tomcat面试题!.pdf

    Tomcat的Connector支持以下几种运行模式: - **Bio(Blocking I/O)**:传统的Java I/O操作,同步且阻塞。例如,`&lt;Connector port="8080" protocol="HTTP/1.1"&gt;` - **Nio(Non-blocking I/O)**:JDK1.4开始支持...

    Tomcat7性能优化.docx

    Tomcat启动日志中的`Starting ProtocolHandler`信息可显示当前使用的运行模式,如`http-bio-8080`、`http-nio-8080`或`http-apr-8080`。 5. 启动NIO模式 修改`server.xml`中`Connector`节点的`protocol`属性为`...

    Tomcat7优化.docx

    Tomcat有三种运行模式:Bio(阻塞I/O)、NIO(非阻塞I/O)和APR(使用操作系统级别的异步I/O)。NIO模式利用Java的异步I/O技术,性能优于Bio,而APR虽然安装复杂,但性能提升更大。 3. **启用NIO模式** 修改`...

Global site tag (gtag.js) - Google Analytics