欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tomcat两种Http Connector的粗略测试比较 tomcathttpconnector

程序员文章站 2024-02-01 14:17:40
...
Tomcat有两种主要的Http Connector
org.apache.coyote.http11.Http11Protocol
支持参数:maxThreads,minSpareThreads,maxSpareThreads,acceptCount
org.apache.coyote.http11.Http11NioProtocol
支持参数:maxThreads

后者加入了Nio的运用,据说能提升性能

为了验证效果,粗略进行了测试,方法:
1)新建测试Servlet,其中做100,000,000次空循环
2)测试程序对测试Servlet同时发起一定数量的Http请求,看请求的成功率
3)调整参数和请求数量进行多轮测试,比较测试结果

测试结果:
1)Http11Protocol
并发请求从200逐步增加至1000。
在并发500以下的阶段时,在运行稳定后还是可以达到较高的请求成功率(90以上),但需要对应调高参数,如在并发500时,maxThreads=500,acceptCount=166
在并发500以上的阶段时,并发数再继续增加,成功率会明显下降,报大量“拒绝连接”错误;即使调高参数,效果并不明显。
在并发1000阶段,maxThreads=500,acceptCount=166,运行稳定后成功率大概在80
在并发1000以上阶段,很容易出现OutOfMemory错误(没有调大JVM内存,估计是
Socket连接不断增加,有没有及时释放)

2)Http11NioProtocol
并发数一直增加至1500,成功率都很高(接近100)。而且当前线程数基本维持在100-200水平,并没有随着并发数的增加而成比例增加;测试完后,可以很快看到线程数很快下降;内存也没有出现错误。

初步来看,Http11Protocol应对大并发量还是力不从心;Http11NioProtocol的优化效果则较明显,运行稳定、有效率且资源控制得较好。可进一步在实际环境中应用,在深入分析。

测试环境:
OS: Win7 32bit
Tomcat:6.0.26
RAM: 4G
CPU: P8700