Web服务请求异步化测试(2)

发表于:2012-10-24来源:Csdn作者:放翁点击数: 标签:web测试
这个场景的结果可以看到TPS在异步模式下与并发用户数呈现同步增长,就好比配置了1000个线程作为线程池一样,同样在后端打出的最大请求数上也证明了

  这个场景的结果可以看到TPS在异步模式下与并发用户数呈现同步增长,就好比配置了1000个线程作为线程池一样,同样在后端打出的最大请求数上也证明了这一点,因此前段线程池的服务能力在异步的情况下充分复用(当然这里使用的异步服务处理使用的是NIO而不是BIO的Connector)。同样在吞吐量上依然是增加的,由于异步附加的内容。
  场景3:1500 并发用户场景下,后端服务一次请求消耗3秒钟
容器 模式 TPS Average Response Time(s) Average Throughput(byte/s) Server Load Success rate
Jboss syn 75.546 5.347 21002 0.115 68%
Jetty7 Syn 163.156 8.788 19252 0.129 100%
Jetty7 Asyn(complete) 432.153 3.312 76491 2.649 100%
Jetty7 Asyn(resume) 423.638 3.375 99979 2.826 100%
Tomcat6 Syn 163.836 8.75 18513 0.258 100%
Tomcat7 ASyn 423.501 3.328 54632 1.064 99.3%
  场景三比对了现有TOP的部署模式(Apache + modjk + Jboss)和Jetty7的同步模式,两种异步模式,Tomcat同步模式,Tomcat的servlet3.0异步模式的处理情况。根据测试可以得到的信息如下:
  1. 现有部署方式在后端服务处理耗时较大的情况下,处理能力不如Jetty7和Tomcat6,同时出错率很高。
  2. Jetty7的同步处理测试结果和Tomcat6的同步处理测试结果很类似,但是load方面jetty7更好。
  3. 异步处理方面Jetty7的两种方式基本上差别不大(后续还需要深入源码看看对于数据缓存资源复用的状况),Tomcat7的异步处理成功率有些问题(错误多半是在获取response回写的时候,response已经被提前释放,看来Tomcat7还是需要一些时间来考验),load上来说tomcat结果比较好。
  4. 异步请求在提高处理能力的情况下,对于资源消耗也较大(线程切换较为频繁),不过还是在承受范围。
  三个场景组合比较:
容器 并发用户 模式 TPS Average Response Time(s) Average Throughput(byte/s) Success rate
Jetty7 500 asyn(resume) 162.8 3.008 38430 100%
Jetty7 1000 asyn(resume) 317.06 3.036 74826 100%
Jetty7 1500 asyn(resume) 423.638 3.375 99979 100%
Tomcat6 500 syn 163.3 3.005 18453 100%
Tomcat6 1000 syn 163.323 5.904 18455 100%
Tomcat6 1500 Syn 163.836 8.75 18513 100%
  最后将三个场景合并起来做一个简单的比较,得到信息如下:

原文转自:http://www.ltesting.net