ab网站压力测试命令

我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的LoadRunner以及等等其他的,但这些软件学习起来还是需要花费些时间,在选择上实在头痛,后来在郭欣的那本《构建高性能WEB站点》上看到了他介绍的这款Apache自带的压力测试工具ab,十分喜爱,于是今天终于有机会体验下ab对网站的压力测试。 实验之前我的apache已经安装了,操作系统:Ubuntu 10.04 VMware 7.0

1、先查看一下版本信息 ab -V(注意是大写的V)

studiogang@studiogang:~$ ab -V
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ 

 2、我们也可以使用小写的v查看下ab命令的一些属性 ab -v

studiogang@studiogang:~$ ab -v
ab: option requires an argument -- v
ab: wrong number of arguments
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
 -n requests  Number of requests to perform
 -c concurrency Number of multiple requests to make
 -t timelimit Seconds to max. wait for responses
 -b windowsize Size of TCP send/receive buffer, in bytes
 -p postfile  File containing data to POST. Remember also to set -T
 -u putfile  File containing data to PUT. Remember also to set -T
 -T content-type Content-type header for POSTing, eg.
     'application/x-www-form-urlencoded'
     Default is 'text/plain'
 -v verbosity How much troubleshooting info to print
 -w    Print out results in HTML tables
 -i    Use HEAD instead of GET
 -x attributes String to insert as table attributes
 -y attributes String to insert as tr attributes
 -z attributes String to insert as td or th attributes
 -C attribute Add cookie, eg. 'Apache=1234. (repeatable)
 -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
     Inserted after all normal header lines. (repeatable)
 -A attribute Add Basic WWW Authentication, the attributes
     are a colon separated username and password.
 -P attribute Add Basic Proxy Authentication, the attributes
     are a colon separated username and password.
 -X proxy:port Proxyserver and port number to use
 -V    Print version number and exit
 -k    Use HTTP KeepAlive feature
 -d    Do not show percentiles served table.
 -S    Do not show confidence estimators and warnings.
 -g filename  Output collected data to gnuplot format file.
 -e filename  Output CSV file with percentages served
 -r    Don't exit on socket receive errors.
 -h    Display usage information (this message)
 -Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
 -f protocol  Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL) 

3、现在我们就对51CTO的网站进行一次压力测试吧,使用命令ab -n1000 -c10 http://www.jb51.net/index.php,其中 -n1000 表示总请求数 -c10表示并发用户数为10 http://www.jb51.net/index.php 表示请求的URL,下面是测试的结果,其中我们最关心的三个指标,我已经注释出来了。

studiogang@studiogang:~$ ab -n1000 -c10 http://www.51cto.com/index.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/ 

Benchmarking www.51cto.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests 

 /*WEB服务器用的是nginx*/
Server Software:  nginx
Server Hostname:  www.51cto.com
Server Port:   80 

Document Path:   /index.php
Document Length:  154 bytes 

Concurrency Level:  10
Time taken for tests: 74.373 seconds
Complete requests:  1000
Failed requests:  0
Write errors:   0
Non-2xx responses:  1000
Total transferred:  330000 bytes
HTML transferred:  154000 bytes
/*大家最关心的指标之一,指的是吞吐率
相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值*/
Requests per second: 13.45 [#/sec] (mean)
/*大家最关心的指标之二,指的是用户平均请求等待时间
相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值*/
Time per request:  743.726 [ms] (mean)
/*大家最关心的指标之三,指的是服务器平均请求处理时间
Time per request:  74.373 [ms] (mean, across all concurrent requests)
Transfer rate:   4.33 [Kbytes/sec] received 

Connection Times (ms)
    min mean[+/-sd] median max
Connect:  129 163 245.3 145 3154
Processing: 129 576 1510.8 147 11756
Waiting:  129 567 1502.0 147 11756
Total:  261 739 1543.7 294 11888 

Percentage of the requests served within a certain time (ms)
 50% 294
 66% 297
 75% 304
 80% 308
 90% 1290
 95% 3452
 98% 7582
 99% 7962
 100% 11888 (longest request) 

4、为了使结果更有对比性,我们将并发用户更改为100个进行压力测试,我这里只将三个指标贴出来

Requests per second: 190.95 [#/sec] (mean)
Time per request:  523.694 [ms] (mean)
Time per request:  5.237 [ms] (mean, across all concurrent requests) 

5、将并发用户改为200个进行测试

    Requests per second: 186.00 [#/sec] (mean)
    Time per request:  1149.433 [ms] (mean)
    Time per request:  5.747 [ms] (mean, across all concurrent requests) 

6、500个并发用户时的情况

Requests per second: 180.99 [#/sec] (mean)
Time per request:  2631.662 [ms] (mean)
Time per request:  5.263 [ms] (mean, across all concurrent requests) 

我们来分析下测试的结果,先对比下吞吐率,当并发用户的时候吞吐率最高为190 reqs/s,当并发用户数为200,500 吞吐率下降了,随之用户的等待时间更是明显增加了,已经有2s的等待时间了。这说明性能明显下降了。当然分析这个测试结果并不是说明51CTO的网站的并发用户只能在500左右,因为我是在服务器负荷的情况下就行测试的,这显然不能说明问题。另外我们在生产环境下测试的时候,最好能将测试结果做成报表,这样可以非常清晰地对比出问题来,好了,我该准备下,给上面提交一份我们公司网站的测试报告了。

(0)

相关推荐

  • Apache添加多端口及实现单ip多端口映射的方法

    先给大家说下apache添加多端口的方法,具体步骤如下所示: Apache\conf 目录下 添加端口监听 Vhost.conf简单写写 下面是有关apache实现单ip多端口映射的内容 我使用一个apache服务器.在我的apache根目录下有这么几个网站,如Test.Child这两个文件夹,也就是两个网站.我想这样,当我访问http://localhost的时候就访问Test,当我访问http://localhost:8080的时候就访问Child. 我们需要配置apache.讲apache

  • Apache服务器中.htaccess文件的实用配置示例集锦

    .htaccess 是什么? htaccess (hypertext access,超文本访问) 是为网站所有者提供用于控制服务器环境变量以及其它参数的选项,从而增强他们网站的功能的文件.这些文件可以在网站目录树的任何一个目录中,并向该目录以及目录中的文件和子目录提供功能. 这些功能是什么呢?其实这些是服务器的指令,例如命令服务器执行特定任务的行,这些命令只对该文件所在目录中的文件和子目录有效.这些文件默认是隐藏的,因为所有操作系统和网站服务器默认配置为忽略它们,但如果查看隐藏文件的话,你就可以

  • 使用Apache ab工具对Apache服务器进行简单的压力测试

    1.安裝ab命令 sudo apt-get install apache2-utils 2.ab命令参数说明 Usage: ab [options] [http[s]://]hostname[:port]/path  Options are: //总的请求数 -n requests Number of requests to perform //一次同时并发的请求数 总的请求数(n)=次数*一次并发数(c) -c concurrency Number of multiple requests t

  • ab网站压力测试命令

    我们知道压力测试的软件确实很多,诸如微软的WAST,惠普的LoadRunner以及等等其他的,但这些软件学习起来还是需要花费些时间,在选择上实在头痛,后来在郭欣的那本<构建高性能WEB站点>上看到了他介绍的这款Apache自带的压力测试工具ab,十分喜爱,于是今天终于有机会体验下ab对网站的压力测试. 实验之前我的apache已经安装了,操作系统:Ubuntu 10.04 VMware 7.0 1.先查看一下版本信息 ab -V(注意是大写的V) studiogang@studiogang:~

  • 详解Mysql5.7自带的压力测试命令mysqlslap及使用语法

    前言 mysqlslap是一个诊断程序,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间.它就像多个客户端正在访问服务器一样工作. 1.使用的语法: mysqlslap [options] --auto-generate-sql, -a :自动生成测试表和数据,表示用mysqlslap自己生成的SQL脚本来测试并发压力. --auto-generate-sql-load-type=type :测试语句的类型,取值包括:read,key,write,update和mixed(默认). --

  • android压力测试命令monkey详解

    一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题. 三.Monkey 测试的特点?Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性. 四.Monkey 命令详解 1).标准的monkey 命令[adb shell] monkey [options] <eventcount> , 例如:adb shell monkey -

  • Linux下Web网站压力测试工具Webbench使用教程

    Webbench是一个非常简单的压力测试工具,Webbench最多可以模拟3万个并发连接去测试网站的负载能力. (1)Webbench安装 复制代码 代码如下: wget http://www.jb51.net/soft/linux/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make make install (2)Webbench使用 复制代码 代码如下: webbench -c 1000 -t 60 ht

  • Nginx与Tomcat实现动静态分离和负载均衡

    本文介绍了Nginx与Tomcat实现动静态分离和负载均衡,所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片.html等静态的文件,tomcat(或weblogic)处理jsp.do等动态文件,从而达到动静页面访问时通过不同的容器来处理. 一.Nginx简介: Nginx一个高性能的HTTP和反向代理服务器, 具有很高的稳定性和支持热部署.模块扩展也很容易.当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器,N

  • Web压力测试工具:http_load、webbench、ab、Siege使用方法

    前言:常在网络飘,哪有不挨刀?做网站的站长说不准哪天得罪了XX人,二话不说直接操着DDOS就上来搞你了,黑不了你,哥就D死你,遇到这样的无赖,还真没办法,因此经常性的给自己的网站做做压力测试,看看服务器的承载能力是很有必要的一件事. 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 下载地址:h

  • 配置ab来为Nginx服务器做压力测试的方法

    在运维工作中,压力测试是一项非常重要的工作.比如在一个网站上线之前,能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验. 但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同.面对这些问题,我们只能尽量去想方设法去模拟.所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数. 目前较为常见的网站压力测试工具有webbench.ab(apache benc

  • 用Python的Tornado框架结合memcached页面改善博客性能

    原因 Blog是一个更新并不很频繁的一套系统,但是每次刷新页面都要更新数据库反而很浪费资源,添加静态页面生成是一个解决办法,同时缓存是一个更好的主意,可以结合Memcached添加少量的代码进行缓存,而且免去去了每次更新文章都要重新生成静态页面,特别当页面特别多时. 实现 主要通过页面的uri进行缓存,结合tornado.web.RequestHandler的prepare和on_finish方法函数, prepare 主要是请求前执行,on_finish()是请求结束之前执行.在渲染模板时缓存

  • ASP.NET性能优化之让浏览器缓存动态网页的方法

    OutputCache是针对所有访问服务器资源的用户,本篇要介绍的浏览器缓存则是针对单个用户,让浏览器在我们的控制下彻底不持续访问服务器上的动态内容,也就是我们要让浏览器变成我们的缓存机制中的一部分,在某些特定的场景下最大化地提升ASP.NET站点的性能.如果说OutputCache是从广度上提升并发效率,则浏览器缓存是从深度上提升效率. 一:HTTP头简介 1.1浏览器第一次请求 假设我们请求一个URL地址,譬如我服务器上的一个静态页面http://192.168.0.77/luminji2/

  • Docker 限制容器可用的CPU的方式

    默认情况下容器可以使用的主机 CPU 资源是不受限制的.和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难.本文将介绍如何限制容器可以使用的 CPU 资源. 本文的 demo 中会继续使用<Docker: 限制容器可用的内存>一文中创建的 docker 镜像 u-stress 进行压力测试,文中就不再过多的解释了. 限制可用的 CPU 个数 在 docker 1.13 及更高的

随机推荐