Tomcat 超过500并发访问时出错
Tomcat压力测试I. 前言我公司网站的部署使用了Tomcat,网络上关于Linux下Tomcat的性能数据比较少.为了对Tomcat的性能有一个大概的了解,分别对Tomcat和Apache作了多次的压力测试,并将测试的数据进行对比.每次压力测试大体的测试环境一样,以下说明是每次测试环境中相同的部分,不同的部分在下面的章节另外补充说明.测试环境说明:
1. 测试工具: siege
2. 并发线程数100~1000,每次递增100,测试完一次重启一次tomcat.
3. 测试时间: 每次 1 分钟
4. tomcat服务器硬件配置:
Cpu: 双核Pentium(R) Dual-CoreCPU 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要大得多.
from:http://go.cxweb.com.cn/xbgi9
页:
[1]