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)实际并发访问数测试成功次数测试失败次数
10062627100.00%557.080.0910459.398.25626270
20066083100.00%586.270.181119.19.93198.64660830
30066498100.00%592.20.271116.499.94296.44664980
40067265100.00%598.80.351121.839.99392.08672650
5006806899.92%605.260.411148.8310.22467.346806855
6006805799.85%606.520.491151.1710.26561.2368057103
7006783799.80%603.510.541143.5810.17621.7567837139
8006840599.86%608.10.631148.5110.21729.146840593
9006828899.79%607.880.691145.210.19785.6468288146
10006871599.60%612.790.751149.8510.25857.3468715273

根据以上数据,可得出下面的曲线图

1.2、Apache测试

测试环境补充说明(以下城域网的测试,也是相同的环境):
Apache运行程序: 单个静态html页面,未连接mysql

测试所得数据:

设置并发访问数完成测试次数测试有效率传输数据量(MB)响应时间(secs)每秒传输次数(trans/sec)每秒吞吐量( MB/sec)实际并发访问数测试成功次数测试失败次数
100390103100.00%16.370.016499.550.2744.043901030
200376018100.00%15.780.016260.710.2678.033760180
300322767100.00%13.550.025376.760.23114.173229110
400265862100.00%11.160.044490.150.19194.122659452
500245208100.00%10.290.073995.570.17292.52453312
600214715100.00%9.020.113624.490.15386.792149399
70020219599.99%8.490.143326.120.14461.6120238127
80025518299.99%10.710.183278.710.14585.2525533919
90016948399.98%7.120.222858.540.12638.5216972935
100015830999.96%6.650.282675.490.11759.715841666

根据以上数据,可得出下面的曲线图

2、城域网测试

2.1、Tomcat测试

说明:当并发数超过500时,siege运行失败.

测试所得数据:

设置并发访问数完成测试次数测试有效率传输数据量(MB)响应时间(secs)每秒传输次数(trans/sec)每秒吞吐量( MB/sec)实际并发访问数测试成功次数测试失败次数
1002738100.00%24.221.8645.910.4185.3827380
200276599.32%24.343.4546.140.41159.07276519
300268799.08%23.745.1544.840.4230.81268725
400256298.84%22.596.5343.060.38281.31256230
500254898.95%22.618.0142.840.38343.16254827

根据以上数据,可得出下面的曲线图

2.2、Apache测试

测试所得数据:

设置并发访问数完成测试次数测试有效率传输数据量(MB)响应时间(secs)每秒传输次数(trans/sec)每秒吞吐量( MB/sec)实际并发访问数测试成功次数测试失败次数
100562699.40%0.240.7795.28073.3562634
200561299.10%0.241.67940157.32561251
300553597.21%0.231.7493.50162.35535159
400576795.78%0.241.7996.340172.665767254
500566596.85%0.243.3495.890320.35665184
600543194.81%0.233.7389.80335.325431297
700535394.58%0.224.4190.360398.715353307
800547693.21%0.234.6891.830429.325476399
900521888.46%0.222.8887.580252.535218681
1000570788.41%0.243.2596.110312.275707748

根据以上数据,可得出下面的曲线图

                   

III.结果

在局域网测试中,当Tomcat并发数达到500时,出现失败的访问.而Apache并发数达到700时,才出现失败的访问

.
在城域网测试中,当Tomcat并发数超过500时,siege运行失败.而Apache并发数达到1000时,siege可一直正常运行,但一直都有失败的访问.

IV. 总结

从数据来看,Apache的性能略优于Tomcat.个人认为,从综合因素来看,二者性能并无太大差别.因为Tomcat是随机访问多个网页,Apache是循环访问一个html文件.每次访问中,Tomcat的吞吐量比Apache要大得多.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值