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