博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat 6 支持 NIO -- Tomcat的四种基于HTTP协议的Connector性能比较
阅读量:4106 次
发布时间:2019-05-25

本文共 1139 字,大约阅读时间需要 3 分钟。

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

Java代码  
  1. 1.<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"/>   
Java代码  
  1. 2.<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"   
  2.               redirectPort="8443"/>   
Java代码  
  1. 3.<Connector executor="tomcatThreadPool"   
  2.               port="8081" protocol="HTTP/1.1"   
  3.               connectionTimeout="20000"   
  4.               redirectPort="8443" />   
Java代码  
  1. 4.<Connector executor="tomcatThreadPool"   
  2.               port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"   
  3.               connectionTimeout="20000"   
  4.               redirectPort="8443" />  

  

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

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

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

Java代码  
  1. NIO   HTTP   POOL   NIOP   
  2. 281   65       208     365   
  3. 666   66      110      398   
  4. 692   65      66       263   
  5. 256   63      94       459   
  6. 440   67      145     363   

 

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

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

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

转载地址:http://lynsi.baihongyu.com/

你可能感兴趣的文章
Win10下搭建绿色版基于WAMP的PHP开发环境
查看>>
如何优雅地使用 Sublime Text
查看>>
理解 HTTPS 的工作原理
查看>>
解决命令启动Android模拟器出现lib64OpenglRender.so: cannot open shared object file问题
查看>>
全站 HTTPS 来了
查看>>
Win8.1/10中删除文件的默认关联程序
查看>>
修改Android系统默认关闭“验证应用”功能
查看>>
Win10下使用PHP7+XDebug+Sublime Text 3搭建PHP集成开发环境
查看>>
即使被拖库,也可以保证密码不泄露
查看>>
Android网络时间同步
查看>>
最简明扼要的 Systemd 教程,只需十分钟
查看>>
Gradle的神奇之处
查看>>
受用不尽的Gradle使用方法与技巧
查看>>
Android系统移植与调试之------->如何修改Android的默认语言、默认时区
查看>>
Grub 2:拯救你的 bootloader
查看>>
Android开发中常用ADB命令总结
查看>>
grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令
查看>>
Android抓取各种log的方法
查看>>
在项目中记住Github用户名和密码的方法
查看>>
个人总结的一些C/C++编码规范
查看>>