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 |
根据以上数据,可得出下面的曲线图
[/url] 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 |
根据以上数据,可得出下面的曲线图
[url=http://blog.raaslabs.com/wp-content/uploads/2012/02/sendpix0.jpg] 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 |
根据以上数据,可得出下面的曲线图 [/url] 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 |
根据以上数据,可得出下面的曲线图 [url=http://blog.raaslabs.com/wp-content/uploads/2012/02/sendpix2.jpg] III.结果在局域网测试中,当Tomcat并发数达到500时,出现失败的访问.而Apache并发数达到700时,才出现失败的访问 .
在城域网测试中,当Tomcat并发数超过500时,siege运行失败.而Apache并发数达到1000时,siege可一直正常运行,但一直都有失败的访问. IV. 总结从数据来看,Apache的性能略优于Tomcat.个人认为,从综合因素来看,二者性能并无太大差别.因为Tomcat是随机访问多个网页,Apache是循环访问一个html文件.每次访问中,Tomcat的吞吐量比Apache要大得多.
from:http://go.cxweb.com.cn/xbgi9
|