`
异步获取爱
  • 浏览: 80045 次
  • 性别: Icon_minigender_1
  • 来自: 大男子主义世界
社区版块
存档分类
最新评论

Tomcat基于http协议下4种协议的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。

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

相关推荐

    apr库(tomcat优化)

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

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

    在Tomcat的源码中,`Connector`主要由`org.apache.coyote`包下的`AbstractProtocol`抽象类及其子类实现,比如`Http11Protocol`。这些类实现了具体的通信协议,例如HTTP/1.1。它们定义了连接管理、请求处理和响应生成...

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

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

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

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

    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):默认模式,性能较低,每个请求对应一个线程,高并发时资源...

    Tomcat---Connector 分析.docx

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

    Tomcat中的Connector配置讲解

    了解和正确配置Tomcat的Connector组件对于提升Tomcat服务器的性能和稳定性至关重要。 Connector组件可以支持不同的协议,包括HTTP/1.1、AJP等。其中HTTP/1.1 Connector是处理Web请求的主要协议。它不仅能处理...

    tomcat5/tomcat5.5安装包

    【标题】"Tomcat5/tomcat5.5安装包" 涵盖了两个不同版本的Apache Tomcat服务器,即Tomcat 5.0和Tomcat 5.5。Tomcat是一个开源的、免费的应用服务器,主要用于部署和运行Java Servlets和JavaServer Pages(JSP)。它...

    tomcat6的源码

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

    《深入剖析 Tomcat》PDF版本下载.txt

    Tomcat采用了一种基于组件的模块化架构设计,主要由以下几部分组成: - **Connector**:负责监听客户端请求并将它们传递给Container处理。 - **Container**:容器负责处理具体的Web应用程序。在Tomcat中,Container...

    tomcat9 源码学习

    Tomcat是基于Sun Microsystems(现为Oracle)的Java Servlet和JavaServer Pages(JSP)技术标准的实现。它是一个轻量级、高性能且易用的应用服务器,广泛应用于各种规模的企业和开发者。 源码学习对于理解Tomcat的...

    tomcat-9.2.3.zip

    Tomcat 9.2.3是Tomcat 9系列的一个关键更新,它基于Java EE 8规范,提供了对最新JSP、Servlet和WebSocket API的支持。此版本的主要改进包括错误修复、性能提升和安全增强,为开发者提供了一个更加稳定可靠的运行环境...

    Tomcat 8 免安装版本

    - 通过调整`conf/server.xml`中的`Connector`元素,可以优化连接器配置,例如启用或禁用NIO、APR等协议。 - 使用JVM参数调整内存分配、垃圾回收策略等,以提升性能。 7. **安全性** - 在`conf/server.xml`中配置...

    59-Spring Boot内嵌Tomcat配置1

    Tomcat 支持三种协议:BIO(Blocking I/O)、NIO(Non-blocking I/O)和 APR (Apache Portable Runtime),它们在性能和资源利用上有显著差异。BIO 是最简单的,但效率较低;NIO 支持非阻塞 I/O,性能优于 BIO;APR ...

    tomcat7.0.73绿色版

    默认情况下,Tomcat使用8080端口处理HTTP请求,8009端口处理AJP协议,但这些都可以根据需求进行修改。 5. **安全性**:Tomcat支持SSL/TLS协议,可以通过配置`Connector`元素启用HTTPS服务。此外,`conf/tomcat-...

    tomcat7源码

    4. `Engine`:`Catalina`包下的`StandardEngine`是默认的Servlet引擎,处理`Connector`传递过来的请求。 5. `Host`:代表虚拟主机,可以配置多个Host来服务于不同的域名。 6. `Context`:每个Host可以有多个Context...

    Apache_HTTP_Server_与_Tomcat_的三种连接方式介绍.doc

    2. **Reverse Proxy 方式**:使用 `mod_proxy` 和 `mod_proxy_http`,将 Apache 配置为反向代理,适用于 HTTP/HTTPS 协议,可以将请求直接转发给 Tomcat 的 HTTP Connector。 #### 总结 Apache 和 Tomcat 的结合...

    tomcat源码

    6. **连接器(Connector)与协议处理** Tomcat支持多种连接器,如HTTP/1.1和AJP,它们负责与客户端的通信。Coyote连接器实现了这些协议,将网络数据包转化为内部的请求对象。 7. **部署与配置** 通过`web.xml`...

Global site tag (gtag.js) - Google Analytics