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

发表于:2012-10-24来源:Csdn作者:放翁点击数: 标签:web测试
4. 异步请求在提高处理能力的情况下,对于资源消耗也较大(线程切换较为频繁),不过还是在承受范围。 三个场景组合比较: 容器 并发用户 模式 TPS Ave

  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%
  最后将三个场景合并起来做一个简单的比较,得到信息如下:
  1. 随着并发用户的增加,本身异步处理也会有衰减,同时对于性能消耗(线程切换)也会不断增长。
  2. 异步化在消息头上会增加一些数据,会增加回写的带宽消耗(不过量不大),一个请求增加了100byte左右的消息数据。
  测试总结:
  1. Web请求异步化在TOP很合适。
  重复两个条件:
  a. 处理耗时大多消耗在于对后端或者外部服务资源的请求上。
  b. 后端或者外部资源在更多的流量下不会成为瓶颈。
  2. Web请求异步化在Jetty6到7上已经经历了2年多的成长(Google App Engine , Yahoo Hadoop),稳定性和效率较好。(同时很多优化可以通过扩展自行定制,jetty的可扩展性很好)Tomcat7在servlet3上处于刚发布阶段,还有待继续完善。(Servlet3的另一种模式尚未执行成功,直接导致jvm退出)
  后续需要继续跟进的:
  1. 对于大数据量请求的容器间性能对比。(图片上传或者大数据量的Post请求)
  2. 容器安全性。(是否容易被攻击)
  3. 代码迁移成本。

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