`

Tomcat6 的四种基于HTTP协议的Connector性能比较

阅读更多
Tomcat从5.5版本开始,支持以下四种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。
尽管这一个结果在实际的网站中因为各方面因素导致,可能差别没这么大,例如受限于数据库的性能等等的问题。但对我们在部署网站应用时还是具有参考价值的。
分享到:
评论

相关推荐

    tomcat6的源码

    7. **连接器(Connector)**:Tomcat支持多种协议,如HTTP/1.1、AJP等。`Coyote`组件负责处理这些协议,其中` CoyoteConnector`是核心部分。 8. **JSP和 Jasper**:Tomcat内置了JSP引擎Jasper,负责编译JSP页面为...

    解析Tomcat处理请求的类Connector<三>

    `Connector`是Tomcat的Catalina核心模块的一部分,它通过一个特定的协议(如HTTP/1.1或AJP)监听客户端的请求,并将这些请求转化为内部可处理的格式,然后传递给`Container`(通常是`Engine`、`Host`和`Context`)...

    tomcat6,7源码

    Tomcat 6是基于Java Servlet 2.5和JavaServer Pages (JSP) 2.1规范,而Tomcat 7则支持Servlet 3.0和JSP 2.2。这两个版本的源码分析可以帮助我们理解这些规范的实现细节以及如何在实际应用中利用它们。 源码分析的...

    apr库(tomcat优化)

     AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与Apache服务器集成时,采用这个协议。  APR HTTP Connector, 用C实现,通过JNI调用...

    Tomcat 6 Developer’s Guide

    Tomcat 6 是 Tomcat 的一个重要版本,它基于 Java Servlet 规范 2.5 和 JavaServer Pages (JSP) 规范 2.1 构建,提供了一个稳定、高效且功能丰富的平台来部署Web应用。 #### Tomcat 的框架与主要模块 Tomcat 6 的...

    tomcat6解压缩版

    6. **连接器与协议**:Tomcat6支持多种连接器,如HTTP/1.1,可以配置不同的端口和SSL支持。`server.xml`中的`Connector`元素用于配置这些连接器。 7. **线程池**:Tomcat6允许自定义线程池设置,以优化性能和并发...

    Apache Tomcat 6高级编程 pdf

    - **架构概述**:了解Tomcat 6的基本架构,包括Server、Service、Connector、Container等核心组件及其相互之间的关系。 - **启动流程**:深入分析Tomcat 6的启动过程,掌握如何自定义配置文件以及启动参数以优化启动...

    http协议详解和tomcat源码,how tomcat works

    HTTP(Hypertext Transfer Protocol)超文本传输协议是互联网上应用最广泛的一种网络协议。它是客户端浏览器和其他任何可以发送或接收数据的客户端应用程序与Web服务器之间通信的标准。HTTP协议基于TCP/IP协议,工作...

    tomcat6-server-and-src

    3. **Connector**:处理客户端请求并转发给Catalina,有多种连接器供不同协议(如HTTP、AJP)使用。 4. **GlobalNamingResources**:提供全局的JNDI资源,方便在多个应用间共享资源。 5. **Web Applications**:用户...

    基于tomcat的连接数与线程池详解

    APR协议的Connector利用本地库,能够提供更好的性能,特别是在高并发环境下,它更适合运行需要高性能的Web应用。 在server.xml配置文件中,&lt;Connector&gt;元素的protocol属性可以指定Connector使用的协议。如果没有...

    tomcat6.028源码

    Apache Tomcat 6.0.28 是一个广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够构建基于Java的Web应用程序。Tomcat以其轻量级、高效和易用性而闻名,是许多初学...

    tomcat6服务器

    【描述】:Tomcat6是Apache软件基金会的Jakarta项目中的一个核心项目,是一款开源的、免费的、基于Java Servlet和JavaServer Pages(JSP)技术的Web应用服务器。它实现了Java EE的Web容器部分,用于部署和运行Java ...

    一个简单的安装版apache-tomcat6

    总的来说,"一个简单的安装版apache-tomcat6"旨在提供一种快速部署和运行Java Web应用的方式,简化了配置和管理过程,尤其适合初学者和小型项目使用。虽然它的功能相对基础,但对于理解Java Web应用的工作原理和部署...

    apr库(tomcat优化) for native 20

     AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与Apache服务器集成时,采用这个协议。  APR HTTP Connector, 用C实现,通过JNI...

    Tomcat7性能优化.docx

    - AJP协议:AJP是Apache与Tomcat之间通信的协议,基于socket,可实现负载均衡,通过权数和算法分配请求。 3. Tomcat运行模式 - BIO(Blocking I/O):默认模式,性能较低,每个请求对应一个线程,高并发时资源...

    tomcat6绿色版

    2. 支持Servlet和JSP:Tomcat6全面支持Servlet 2.5和JSP 2.1规范,能够处理基于这些技术的Web应用程序。 3. 易于部署:绿色版Tomcat6无需复杂安装过程,解压即用,大大简化了部署流程。 4. 开源免费:Tomcat遵循...

    tomcat 6 源码

    Apache Tomcat 6是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Servlet和JSP规范。源码分析有助于深入理解其工作原理,提高开发和调试Web应用的能力。在这个压缩包中,你将找到Apache Tomcat 6.0.32...

    tomcat6 解压版 跑项目

    7. **性能优化**:Tomcat6虽然轻量,但也可以通过调整JVM参数、增加线程池大小、启用连接器优化等方法提升性能。例如,添加 `-Xms` 和 `-Xmx` JVM参数来设置堆内存大小。 8. **安全性**:Tomcat6支持SSL/TLS协议,...

    Tomcat---Connector 分析.docx

    在Apache Tomcat服务器中,`Connector`扮演着至关重要的角色,它是Tomcat接收客户端请求并与之通信的关键组件。`Connector`的主要职责是建立与客户端之间的网络连接,接收HTTP请求,并将其转换为内部可处理的形式,...

    Tomcat6_0_18 源代码 src

    在Tomcat6.0.18中,主要有两个协议处理器:AprLifecycleListener(使用Apache Portable Runtime库)和 CoyoteAdapter(用于Java的NIO和BIO实现)。源码分析可以帮助我们理解数据传输的细节。 3. **Jasper与JSP编译*...

Global site tag (gtag.js) - Google Analytics