Tomcat、Netty、Jetty很有趣的简单压测报告

今早对Tomcat7.0.5、Netty3.2.3、Jetty-hightide-7.2.2做了一个简单的压测,

测试方案我想肯定是不太严谨的,但是对于快速评估还是有点价值的,测试结果出乎意外。

 

压测工具: ApacheBench(简称ab), Version 2.3

 

测试服务器有两台:

被压测服务器 和 运行ab的服务器

 

两台服务器的配置都是:

64位Linux,双CPU,4G内存

 

 

Tomcat7.0.5 使用BIO(阻塞IO),最大线程开了200个

Netty3.2.3和Jetty-hightide-7.2.2都使用NIO,Jetty最大线程开了250个

 

请求总数固定是10万,对每个请求的响应字节数固定是1k

 

以下是测试结果:

第一列是最大并发数,其他三列是每妙处理的请求数,

并发500、1000时测了4次,并发2000、3000测了两次,并发10000时测了3次。

 

        BIO      NIO      NIO
 并发   Tomcat   Netty    Jetty

 500    8723     8311     4471
        11270    10737    5667
		11064    10986    5570
		11625    10469    4688

1000    7994     8321     5021
        10045    9885     5006
		10162    10156    4736
		9842     10166    4762

2000    8040     7803     4668
        8487     8148     4562

3000    6540     6784     4528
        7145     7166     4158

10000   4303     5099     3500
        4558     5973     3006
		4457     5037     3471

 

 

可以看出Tomcat和Netty只有达到10000并发时才开始有明显差距,

而Jetty在并发为2000以下时都比Tomcat和Netty要差一倍,即使达到10000并发,Jetty的NIO也比Tomcat的BIO差。

 

从这个结果来看,我真的很怀疑在64位OS和高速局域网中是否有必要使用NIO?

 

补充:

Tomcat7.0.5的NIO基本上不可用,每次压都是:

 

严重: 
java.lang.OutOfMemoryError: Java heap space
        at org.apache.coyote.http11.InternalNioInputBuffer.<init>(InternalNioInputBuffer.java:58)
        at org.apache.coyote.http11.Http11NioProcessor.<init>(Http11NioProcessor.java:77)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.createProcessor(Http11NioProtoc
ol.java:435)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:
363)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1526)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Exception in thread "http-8080-exec-321" java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start failing.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值