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.kjueaiud.com