Nginx应用案例分享:压力测试

简介:

在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。

但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。

目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner

软件名称
简介
优缺点
webbench
由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL
 
部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)
ab(apache bench)
Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数
 
多见用于静态压力测试,功能较弱,非专业压力测试工具
tcpcopy
基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近
后起之秀,主要用于中大型压力测试,所有基于 tcp的packets均可测试
loadrunner
压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真
模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。

下面,笔者就以webbench为例,来讲解一下网站在上线之前压力测试是如何做的。

安装webbench

 

 
  1. #wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz  
  2. #tar zxvf webbench-1.5.tar.gz  
  3. #cd webbench-1.5  
  4. #make && make install 

进行压力测试

并发200时

 

 
  1. # webbench -c 200 -t 60 http://blog.luwenju.com/index.php 

参数解释:-c为并发数,-t为时间(秒)

 

 
  1. Webbench - Simple Web Benchmark 1.5  
  2. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  3. Benchmarking: GET http://blog.luwenju.com/index.php  
  4. 200 clients, running 60 sec.  
  5. Speed=1454 pages/min, 2153340 bytes/sec.  
  6. Requests: 1454 susceed, 0 failed. 

当并发200时,网站访问速度正常

并发800时

 

 
  1. #webbench -c 800 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 800 clients, running 60 sec.  
  6. Speed=1194 pages/min, 2057881 bytes/sec.  
  7. Requests: 1185 susceed, 9 failed. 

当并发连接为800时,网站访问速度稍慢

并发1600时

 

 
  1. #webbench -c 1600 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 1600 clients, running 60 sec.  
  6. Speed=1256 pages/min, 1983506 bytes/sec.  
  7. Requests: 1183 susceed, 73 failed. 

当并发连接为1600时,网站访问速度便非常慢了

并发2000时

 

 
  1. #webbench -c 2000 -t 60 http://blog.luwenju.com/index.php  
  2. Webbench - Simple Web Benchmark 1.5  
  3. Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.  
  4. Benchmarking: GET http://blog.luwenju.com/index.php  
  5. 2000 clients, running 60 sec.  
  6. Speed=2154 pages/min, 1968292 bytes/sec.  
  7. Requests: 2076 susceed, 78 failed. 

当并发2000时,网站便出现“502 Bad Gateway”,由此可见web服务器已无法再处理用户访问请求

总结:

1、压力测试工作应该放到产品上线之前,而不是上线以后

2、测试时尽量跨公网进行,而不是内网

3、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开是否流程,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少

4、 应尽量进行单元测试,如B2C网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大

本文转自    geekwolf   51CTO博客,原文链接: http://blog.51cto.com/linuxgeek/999027
相关文章
|
1月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
265 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
1月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习--ingress详细解释与应用(nginx ingress controller))
k8s学习--ingress详细解释与应用(nginx ingress controller))
164 0
|
1月前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
105 0
|
3月前
|
关系型数据库 应用服务中间件 PHP
如何在 Ubuntu 16.04 上使用 Nginx 部署 Laravel 应用
如何在 Ubuntu 16.04 上使用 Nginx 部署 Laravel 应用
34 1
|
3月前
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
148 1
|
3月前
|
JavaScript 网络协议 前端开发
如何在单个VPS上使用nginx、forever和crontab托管多个Node.js应用
如何在单个VPS上使用nginx、forever和crontab托管多个Node.js应用
26 0
|
3月前
|
应用服务中间件 Linux 网络安全
如何在 CentOS 6.5 上使用 Unicorn 和 Nginx 部署 Rails 应用
如何在 CentOS 6.5 上使用 Unicorn 和 Nginx 部署 Rails 应用
45 0
|
3月前
|
缓存 Ubuntu 应用服务中间件
如何在 Ubuntu 14.04 上使用 Passenger 和 Nginx 部署 Rails 应用
如何在 Ubuntu 14.04 上使用 Passenger 和 Nginx 部署 Rails 应用
26 0
|
3月前
|
关系型数据库 应用服务中间件 数据库
如何在 Ubuntu 14.04 上使用 Unicorn 和 Nginx 部署 Rails 应用
如何在 Ubuntu 14.04 上使用 Unicorn 和 Nginx 部署 Rails 应用
35 0
|
3月前
|
Ubuntu 应用服务中间件 网络安全
在 Ubuntu 14.04 上使用 Capistrano、Nginx 和 Puma 部署 Rails 应用
在 Ubuntu 14.04 上使用 Capistrano、Nginx 和 Puma 部署 Rails 应用
44 0