在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。
但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证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网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大
分享到:
相关推荐
Nginx应用案例分享:压力测试,Nginx测试,Nginx压力测试
目录 1-keepalived 2-nginx-tcp 3-apachei和nginx常用面试题 4压力测试
nginx四层代理测试 及SLB负载均衡功能配置测试
nginx日志测试使用 access.log.zip
awk测试从nginx查询qps的测试日志
有时需要进行并发测试,需要排除本地机器等环境问题,可以使用web服务器NGINX的流量拷贝方式把请求进行翻倍,从而达到并发目的
在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大... 目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner。 webbench由Lionbridge公司
Nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的...
由于生成的证书是jks格式,nginx不能直接用,需要要转成PEM格式,这要用到jks2pfx工具进行转换。 jks2pfx的命令格式:JKS2PFX.bat keystore password alias exportname keystore:KeyStore文件绝对路径 password:...
nginx -t -c F:/nginx-1.12.2/conf/nginx.conf 测试nginx配置文件是否正确 start nginx nginx -s stop nginx -s quit nginx -s reload nginx -t 修改后的hosts文件放入c:\windows\system32\drivers\etc替换以前的...
nginx + header 转发 灰度测试
nginx安装与使用 http://blog.163.com/njut_wangjian/blog/static/1657964252013327103716818/ Nginx开发从入门到精通 http://tengine.taobao.org/book/index.html nginx官网上下载相应的安装包,--- 直接解压就...
Linux下mysql+PHP+nginx的搭建,这是结合了网上各种安装方法后最终整理所得,目前我linux机器上已经配置成功并且项目运行正常了,希望能对大家有用。另外,相关的安装包在我上传的另外的资源里,如果需要可以去下载
Nginx是轻量级、高性能的web服务器/反向代理服务器。能够实现负载均衡。 负载均衡(Load Balance)指的是将请求/数据(均匀)分摊到多个服务器上去执行,其...淘宝网站中大部分功能也是直接使用nginx进行反向代理实现的。
1、ab 测试工具安装 2、wrk测试工具 1、系统和nginx是否可以建立多个socket连接 2、系统和nginx是否允许一次性打开多个文件 1、http连
关于nginx+tomcat 的配置文件,及详细介绍
包含lvs+nginx负载均衡 nginx安装手册 nginx使用文档 keepalived高可用高可用方法 SwitchHosts软件包 还有相关安装包
因为我们公司也是做国产软件的,这些必须测试成功,到客户那里直接安装和使用 安装命令: sudo dpkg -i 你的路径/*.deb 安装完可以直接使用 查看是否安装成功 : nginx -version 如果安装和使用遇到什么问题也可以...
软件测试面试题介绍-Nginx使用场合介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。