Tomcat壓力測試

轉自:http://zhumeng8337797.blog.163.com/blog/static/100768914201241953448388/

Tomcat壓力測試

I. 前言

我公司網站的部署使用了Tomcat,網絡上關於Linux下Tomcat的性能數據比較少.爲了對Tomcat的性能有一個大概的瞭解,分別對Tomcat和Apache作了多次的壓力測試,並將測試的數據進行對比.
每次壓力測試大體的測試環境一樣,以下說明是每次測試環境中相同的部分,不同的部分在下面的章節另外補充說明.

測試環境說明:
1. 測試工具: siege
2. 併發線程數100~1000,每次遞增100,測試完一次重啓一次tomcat.
3. 測試時間: 每次 1 分鐘
4. tomcat服務器硬件配置:
Cpu: 雙核Pentium(R) Dual-Core  CPU      E5800  @ 3.20GHz
內存: 2G
6. siege每次最多隻能產生1000併發訪問,超過1000會報錯.

測試工具siege介紹

Siege是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB站點進行多用戶的併發訪問,記錄每個用 戶所有請求過程的相應時間,並在一定數量的併發訪問下重複進行。可以從ftp://ftp.joedog.org/pub/siege/下載最新版本的siege.

1、命令使用及解釋

siege -c 1000 -t 1 -f test2.url -i -b

-c 設置併發的用戶(連接)數
-t 持續時間,即測試持續時間,單位默認爲分鐘;如果需要按秒測試(比如30秒),可以用”-t 30s”
-f url列表文件,在裏面輸入要測試的ip地址或者url即可.
-i 隨機URL,默認是按列表文件從上往下順序連接.
-b 進行壓力測試,不進行延時
-r 重複次數. (本次測試沒有用到這個參數)
test2.url 隨機訪問的url列表

2、測試結果及解釋

Transactions: 68263 hits #一共完成了68263次測試
Availability: 99.51 % #測試有效率爲99.51%
Elapsed time: 59.60 secs #用時59.6s
Data transferred: 607.23 MB #傳輸數據607.23MB
Response time: 0.72 secs #響應時間0.72s
Transaction rate: 1145.35 trans/sec #每秒傳輸1145.35次
Throughput: 10.19 MB/sec #每秒吞吐量10.19MB
Concurrency: 827.78 #實際併發數827.78
Successful transactions: 68263 #測試成功次數68263
Failed transactions: 339 #失敗次數339
Longest transaction: 29.54 #單次傳輸所花最長時間29.54
Shortest transaction: 0.01 #單次傳輸所花最短時間0.01

另外,本人測試中發現,在32bit ubuntu中,siege最大併發數爲300;在64bit ubuntu中,siege最大併發數爲1000.

II.測試過程

測試過程根據網絡環境不同分兩部分,第一部分是局域網,理論速度100M;第二部分是城域網,兩端的帶寬均爲4M.

1、局域網測試

1.1、Tomcat測試

測試環境補充說明(以下城域網的測試,也是相同的環境):
tomcat軟件:
tomcat運行程序: raaslabs網站,沒有連接mysql
測試方式: 隨機訪問raaslabs網站的各個頁面,比如customizedDataMining.jsp、setupSupport.jsp、analysisResultSupport.jsp、aboutus、news等.

測試所得數據:

設置併發訪問數 完成測試次數 測試有效率 傳輸數據量(MB) 響應時間(secs) 每秒傳輸次數(trans/sec) 每秒吞吐量( MB/sec) 實際併發訪問數 測試成功次數 測試失敗次數
100 62627 100.00% 557.08 0.09 1045 9.3 98.25 62627 0
200 66083 100.00% 586.27 0.18 1119.1 9.93 198.64 66083 0
300 66498 100.00% 592.2 0.27 1116.49 9.94 296.44 66498 0
400 67265 100.00% 598.8 0.35 1121.83 9.99 392.08 67265 0
500 68068 99.92% 605.26 0.41 1148.83 10.22 467.34 68068 55
600 68057 99.85% 606.52 0.49 1151.17 10.26 561.23 68057 103
700 67837 99.80% 603.51 0.54 1143.58 10.17 621.75 67837 139
800 68405 99.86% 608.1 0.63 1148.51 10.21 729.14 68405 93
900 68288 99.79% 607.88 0.69 1145.2 10.19 785.64 68288 146
1000 68715 99.60% 612.79 0.75 1149.85 10.25 857.34 68715 273

根據以上數據,可得出下面的曲線圖

1.2、Apache測試

測試環境補充說明(以下城域網的測試,也是相同的環境):
Apache運行程序: 單個靜態html頁面,未連接mysql

測試所得數據:

設置併發訪問數 完成測試次數 測試有效率 傳輸數據量(MB) 響應時間(secs) 每秒傳輸次數(trans/sec) 每秒吞吐量( MB/sec) 實際併發訪問數 測試成功次數 測試失敗次數
100 390103 100.00% 16.37 0.01 6499.55 0.27 44.04 390103 0
200 376018 100.00% 15.78 0.01 6260.71 0.26 78.03 376018 0
300 322767 100.00% 13.55 0.02 5376.76 0.23 114.17 322911 0
400 265862 100.00% 11.16 0.04 4490.15 0.19 194.12 265945 2
500 245208 100.00% 10.29 0.07 3995.57 0.17 292.5 245331 2
600 214715 100.00% 9.02 0.11 3624.49 0.15 386.79 214939 9
700 202195 99.99% 8.49 0.14 3326.12 0.14 461.61 202381 27
800 255182 99.99% 10.71 0.18 3278.71 0.14 585.25 255339 19
900 169483 99.98% 7.12 0.22 2858.54 0.12 638.52 169729 35
1000 158309 99.96% 6.65 0.28 2675.49 0.11 759.7 158416 66

根據以上數據,可得出下面的曲線圖

2、城域網測試

2.1、Tomcat測試

說明:當併發數超過500時,siege運行失敗.

測試所得數據:

設置併發訪問數 完成測試次數 測試有效率 傳輸數據量(MB) 響應時間(secs) 每秒傳輸次數(trans/sec) 每秒吞吐量( MB/sec) 實際併發訪問數 測試成功次數 測試失敗次數
100 2738 100.00% 24.22 1.86 45.91 0.41 85.38 2738 0
200 2765 99.32% 24.34 3.45 46.14 0.41 159.07 2765 19
300 2687 99.08% 23.74 5.15 44.84 0.4 230.81 2687 25
400 2562 98.84% 22.59 6.53 43.06 0.38 281.31 2562 30
500 2548 98.95% 22.61 8.01 42.84 0.38 343.16 2548 27

根據以上數據,可得出下面的曲線圖

2.2、Apache測試

測試所得數據:

設置併發訪問數 完成測試次數 測試有效率 傳輸數據量(MB) 響應時間(secs) 每秒傳輸次數(trans/sec) 每秒吞吐量( MB/sec) 實際併發訪問數 測試成功次數 測試失敗次數
100 5626 99.40% 0.24 0.77 95.28 0 73.3 5626 34
200 5612 99.10% 0.24 1.67 94 0 157.32 5612 51
300 5535 97.21% 0.23 1.74 93.5 0 162.3 5535 159
400 5767 95.78% 0.24 1.79 96.34 0 172.66 5767 254
500 5665 96.85% 0.24 3.34 95.89 0 320.3 5665 184
600 5431 94.81% 0.23 3.73 89.8 0 335.32 5431 297
700 5353 94.58% 0.22 4.41 90.36 0 398.71 5353 307
800 5476 93.21% 0.23 4.68 91.83 0 429.32 5476 399
900 5218 88.46% 0.22 2.88 87.58 0 252.53 5218 681
1000 5707 88.41% 0.24 3.25 96.11 0 312.27 5707 748

根據以上數據,可得出下面的曲線圖

                   

III.結果

在局域網測試中,當Tomcat併發數達到500時,出現失敗的訪問.而Apache併發數達到700時,纔出現失敗的訪問

.
在城域網測試中,當Tomcat併發數超過500時,siege運行失敗.而Apache併發數達到1000時,siege可一直正常運行,但一直都有失敗的訪問.

IV. 總結

從數據來看,Apache的性能略優於Tomcat.個人認爲,從綜合因素來看,二者性能並無太大差別.因爲Tomcat是隨機訪問多個網頁,Apache是循環訪問一個html文件.每次訪問中,Tomcat的吞吐量比Apache要大得多.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章