设为首页 收藏本站
查看: 959|回复: 0

[经验分享] nginx压力测试

[复制链接]

尚未签到

发表于 2018-11-11 14:07:54 | 显示全部楼层 |阅读模式

  在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。
  但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。
  目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner
  软件名称简介优缺点
  webbench由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL
  部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)
  ab(apache bench)Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数
  多见用于静态压力测试,功能较弱,非专业压力测试工具
  tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近后起之秀,主要用于中大型压力测试,所有基于 tcp的packets均可测试
  loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
  下面,笔者就以webbench为例,来讲解一下网站在上线之前压力测试是如何做的。
  安装webbench
  #wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
  #tar zxvf webbench-1.5.tar.gz
  #cd webbench-1.5
  #make && make install
  进行压力测试
  并发200时
  # webbench -c 200 -t 60 http://blog.luwenju.com/index.php
  参数解释:-c为并发数,-t为时间(秒)
  Webbench - Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://blog.luwenju.com/index.php
  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://blog.luwenju.com/index.php
  Webbench - Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://blog.luwenju.com/index.php
  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://blog.luwenju.com/index.php
  Webbench - Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://blog.luwenju.com/index.php
  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://blog.luwenju.com/index.php
  Webbench - Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://blog.luwenju.com/index.php
  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网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-633764-1-1.html 上篇帖子: 打造高性能nginx缓存服务器 下篇帖子: nginx 报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表