2024年3月14日发(作者:)
在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受
多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。
但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全
相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问
题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们
就能对自己做维护的平台做到心中有数。
目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、
loadrunner
软件名称 简介 优缺点
webbench 由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,
同时支持静态、动态、SSL
部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)
ab(apache bench) Apache自带的压力测试工具,主要功能用于测试网站每秒钟
处理请求个数
多见用于静态压力测试,功能较弱,非专业压力测试工具
tcpcopy 基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压
力测试功能,所测试数据与实际生产数据较为接近 后起之秀,主要用于中大型压力测试,
所有基于 tcp的packets均可测试
loadrunner 压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从
而录制成脚本,其测试结果也最为逼真 模拟最为逼真,并可进行独立的单元测试,但是部
署配置较为复杂,需要专业人员才可以。
下面,笔者就以webbench为例,来讲解一下网站在上线之前压力测试是如何做的。
安装webbench
#wget /~cz210552/distfiles/
#tar zxvf
#cd webbench-1.5
#make && make install进行压力测试
并发200时
# webbench -c 200 -t 60 /参数解释:-c为并
发数,-t为时间(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET /
200 clients, running 60 sec.
Speed=1454 pages/min, 2153340 bytes/sec.
Requests: 1454 susceed, 0 failed.当并发200时,网站访问速度正常
并发800时
#webbench -c 800 -t 60 /
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET /
800 clients, running 60 sec.
Speed=1194 pages/min, 2057881 bytes/sec.
Requests: 1185 susceed, 9 failed.当并发连接为800时,网站访问速度稍慢
并发1600时
#webbench -c 1600 -t 60 /
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET /
1600 clients, running 60 sec.
Speed=1256 pages/min, 1983506 bytes/sec.
Requests: 1183 susceed, 73 failed.当并发连接为1600时,网站访问速度便非常慢
了
并发2000时
#webbench -c 2000 -t 60 /
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET /
2000 clients, running 60 sec.
Speed=2154 pages/min, 1968292 bytes/sec.
Requests: 2076 susceed, 78 failed.当并发2000时,网站便出现“502 Bad
Gateway”,由此可见web服务器已无法再处理用户访问请求
总结:
1、压力测试工作应该放到产品上线之前,而不是上线以后
2、测试时尽量跨公网进行,而不是内网
3、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开
是否流程,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多
少
4、 应尽量进行单元测试,如B2C网站可以着重测试购物车、推广页面等,因为这些
页面占整个网站访问量比重较大
转自51cto


发布评论