`

Tomcat 6 支持 NIO -- Tomcat的四种基于HTTP协议的Connector性能比较

阅读更多

Tomcat从5.5版本开始,支持以下四种Connector的配置分别为:

1.<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"/> 
2.<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" 
              redirectPort="8443"/> 
3.<Connector executor="tomcatThreadPool" 
              port="8081" protocol="HTTP/1.1" 
              connectionTimeout="20000" 
              redirectPort="8443" /> 
4.<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。

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

 

http://blog.csdn.net/qq66921494/archive/2009/09/22/4581400.aspx

分享到:
评论
2 楼 zhangskills 2011-08-31  
不错,好文章
1 楼 yoo_bj 2010-11-18  
采用HTTP方式会有那么低吗?!在无数据链接的情况下并发才那么少。我对这组数据表示怀疑。

相关推荐

    apr库(tomcat优化)

     Http Connector, 基于HTTP协议,负责建立HTTP连接。它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。  AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http...

    apr库(tomcat优化) for native 20

     Http Connector, 基于HTTP协议,负责建立HTTP连接。它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。  AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http...

    Apache-Tomcat-8.5.5(Linux )

    如果细究会发现Tomcat有两个NIO Connector,一个是Http11NioProtocol,另一个是Http11Nio2Protocol。 如果配置Connector不指定class name,而是指定协议。那么如果没有配置APR,Tomcat会使用Http11NioProtocol。 为...

    【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!

    Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,性能非常...

    tomcat-7_API_帮助文档

    Tomcat 7.0 is designed to run on Java SE 6 and later. In addition, Tomcat 7.0 uses the Eclipse JDT Java compiler for compiling JSP pages. This means you no longer need to have the complete Java ...

    APACHE 2.2.9+TOMCAT6.0.18配置负载均衡

    把四个tomcat的&lt;Connector port="XXX" /&gt;port分别改成与上面 #与tomcatA对应,route与对应。 BalancerMember ajp://127.0.0.1:9001 loadfactor=1 route=jvm1 #与tomcatB对应,route与对应。 BalancerMember ajp:/...

    Tomcat面试专题及答案.pdf

    tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以...

    jiajianrong#documents#理解tomcat nio1

    tomcat默认的 HTTP connector 是阻塞的,并且每个连接对应一个线程。这会造成线程资源的浪费,因为连接本身可能不一定频繁被使用,而是仅仅被用来k

    javaweb项目常用jar包

    mysql-connector-java-5.0.8.jar ognl-3.0.5.jar ojdbc6-1.0.jar pdfbox-app-1.6.0.jar poi-3.12.jar poi-examples-3.12.jar poi-excelant-3.12.jar poi-ooxml-3.12.jar poi-ooxml-schemas-3.12.jar poi-...

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

    在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接...

    看透springMvc源代码分析与实践

    4.2 NioSocket的用法28 第5章 自己动手实现HTTP协议33 第6章 详解Servlet37 6.1 Servlet接口37 6.2 GenericServlet40 6.3 HttpServlet41 第7章 Tomcat分析44 7.1 Tomcat的顶层结构及启动过程44 7.1.1 ...

    restful restful所需要的jar包

    * Servlet adapter provided to let you deploy any Restlet application in Servlet compliant containers like Tomcat, when the usage of standalone HTTP connectors is not possible. * Implementation of ...

    一个comet应用的小例子

    这是我做的一个comet应用的小例子,使用tomcat 6实现的,例子只能在FireFox上运行,运行时打开两个浏览器就能达到你要的效果了,还要记住把conf/server中的连接类型改为NIO &lt;Connector port="8080" protocol=...

    java head space.txt

    2019-10-09 18:02:32.858 [http-nio-8239-exec-6] ERROR c.a.b.c.exceptionHandler.CodeBaseExceptionHandler:69 - Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Java heap space org...

Global site tag (gtag.js) - Google Analytics