`

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

 
阅读更多
今天在osc上看到对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。

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



复制代码
<Connector
executor="tomcatThreadPool"
port="8090"
redirectPort="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
compression="on"
compressionMinSize="2048"
enableLookups="false"
acceptCount="1000"
URIEncoding="UTF-8"
connectionTimeout="40000" />
复制代码
连接器使用的线程池的名子:executor="tomcatThreadPool"
连接器端口                        :port="8090"
连接器使用的传输方式      :protocol="org.apache.coyote.http11.Http11NioProtocol"
传输时是否支持压缩          :compression="on"
压缩的大小                        :compressionMinSize="2048"

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="800" minSpareThreads="400" maxSpareThreads="700"/>
线程池名:           name="tomcatThreadPool"
线程前缀:           namePrefix="catalina-exec-"
最大产生线程数:maxThreads="800"

最小初始现程数:minSpareThreads="400"

最大初始现程数:minSpareThreads="700"

转自https://www.cnblogs.com/sunxucool/archive/2013/07/31/3227366.html
分享到:
评论

相关推荐

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

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

    apr库(tomcat优化)

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

    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

    总的来说,`Connector`是Tomcat中连接客户端和Servlet容器的桥梁,它实现了网络通信的基本功能,包括TCP/IP连接的建立、HTTP协议的解析以及请求的转发和响应的发送。通过灵活配置`Connector`,可以适应不同的网络...

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

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

    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)。它...

    tomcat源码

    Tomcat的设计遵循了Servlet容器的基本规范,主要包括四个核心组件:Catalina(核心处理引擎)、Jasper(JSP编译器)、 Coyote(HTTP协议处理)和Juli(日志系统)。Catalina负责处理请求和响应,Jasper负责JSP的预...

    Tomcat 8 免安装版本

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

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

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

    how tomcat work

    通过阅读《深度剖析Tomcat》中文版和源码,可以更深入地理解Tomcat的内部运作机制,这对于开发、调试和优化基于Tomcat的Web应用具有极大的帮助。书中的案例和源码分析能帮助开发者解决实际问题,提高工作效率。

    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 7.0

    9. **WebSocket支持**:Tomcat 7.0开始支持WebSocket协议,这是一种双向通信协议,允许服务器和客户端之间实时、低延迟地交换数据。 10. **性能优化**:Tomcat 7.0对内存管理、线程池和垃圾回收进行了优化,提升了...

    tomcat6的源码

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

    tomcat源码分析1

    - **AJP Connector**:基于AJP(Apache JServ Protocol)协议,专为Tomcat与其他HTTP服务器(如Apache)间通信设计,具有高速传输效率。 - **APR (Apache Portable Runtime) HTTP Connector**:C语言实现,通过JNI...

Global site tag (gtag.js) - Google Analytics