在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。
但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相
同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。
目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner。
webbench由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL,部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发) 。
ab(apache bench)Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数,多见用于静态压力测试,功能较弱,非专业压力测试工具。
tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近后起之秀,主要用于中大型压力测试,所有基于tcp的packets均可测试。
loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
下面,笔者就以webbench为例,来讲解一下网站在上线之前压力测试是如何做的。
安装webbench
#wget
http:
#tar
zxvf
webbench-1.5
.
tar.
gz
#cd
webbench-1.5
#make
&&
make install
进行压力测试,并发200时。
# webbench
-
c 200
-
t 60
http:
参数解释:-c为并发数,-t为时间(秒)
Webbench -
Simple Web Benchmark 1.5
Copyright
(
c)
Radim Kolar 1997-2004
,
GPL Open Source
Software.
Benchmarking:
GET
http:
200
clients,
running 60
sec.
Speed=
1454
pages/
min,
2153340
bytes/
sec.
Requests:
1454
susceed,
0
failed.
当并发200时,网站访问速度正常
并发800时
#webbench
-
c 800
-
t 60
http:
Webbench -
Simple Web Benchmark 1.5
Copyright
(
c)
Radim Kolar 1997-2004
,
GPL Open Source
Software.
Benchmarking:
GET
http:
800
clients,
running 60
sec.
Speed=
1194
pages/
min,
2057881
bytes/
sec.
Requests:
1185
susceed,
9
failed.
当并发连接为800时,网站访问速度稍慢
并发1600时
#webbench
-
c 1600
-
t 60
http:
Webbench -
Simple Web Benchmark 1.5
Copyright
(
c)
Radim Kolar 1997-2004
,
GPL Open Source
Software.
Benchmarking:
GET
http:
1600
clients,
running 60
sec.
Speed=
1256
pages/
min,
1983506
bytes/
sec.
Requests:
1183
susceed,
73
failed.
当并发连接为1600时,网站访问速度便非常慢了
并发2000时
#webbench
-
c 2000
-
t 60
http:
Webbench -
Simple Web Benchmark 1.5
Copyright
(
c)
Radim Kolar 1997-2004
,
GPL Open Source
Software.
Benchmarking:
GET
http:
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网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大
分享到:
相关推荐
WebBench是一款开源的、基于Linux系统的Web服务器压力测试工具,它被设计用来模拟大量并发用户对服务器进行访问,以此来测试服务器的性能和稳定性。WebBench的强大之处在于其简单易用,同时能模拟真实用户的行为,...
服务器压力测试是对服务器在高负载或大量并发请求下的性能表现进行评估的一种重要手段。通过压力测试,我们可以了解服务器在极限工作状态下的稳定性、资源利用效率以及处理能力,从而为优化服务器配置、提升服务质量...
【压力测试与对比】 通过Web性能测试工具如Webbench,可以模拟大量并发连接来测试服务器性能。文中对比了Nginx与Apache在同一负载下处理请求的能力,Nginx在每秒处理的请求数和系统负载方面都表现出优越性,表明在...
Webbench是一种常用的网站压力测试工具,被恶意用户利用时,它能发送大量请求,模拟DDoS(分布式拒绝服务)攻击,使得服务器无法正常处理合法用户的请求。针对这种攻击,以下是一种基于PHP和iptables的解决方案: ...
- **传统压力测试工具**(如ab, webbench, httpperf):这些工具简单易用,成本较低,但它们假设的网络环境过于理想化,请求类型单一,无法完全模拟真实的用户行为。 - **基于Web服务器的请求复制**:这类方法能提供...
ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。 下面我们开始介绍有关ab命令的使用: 1、ab的原理 2、ab的安装 3、ab参数说明 4...
例如,利用http_load、webbench、ab和siege进行Web服务器的压力测试,以及netstat和lsof命令来检查网络连接和进程状态。同时,atop、iostat等工具用于监控系统资源使用,而Vim/Vi是强大的文本编辑器。此外,需要掌握...
性能测试工具目前常见的有以下几种:ab、http_load、webbench、siege。 ab的原理: ab命令会创建多个...自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
压力测试是预防性能瓶颈的重要手段,包括单机压测、集群压测、机房间压测等,利用jmeter、webbench、tcpcopy等工具模拟真实流量,找出系统潜在的问题。同时,交易监控系统(如交易红绿灯监控)持续监测性能、可用率...
线上压测与容量规划是指通过对线上生产环境进行压力测试,并基于测试结果来优化和调整系统的资源配置,确保系统在面对高并发访问时能够稳定运行,同时避免资源浪费的一种方法。这种做法对于大规模分布式系统尤为重要...