CentOS-apachebench(ab)压力测试 – 记忆角落

CentOS-apachebench(ab)压力测试

/ 0评 / 0

CentOS安装ab做压力测试

ab(apachebench)简介

ApacheBench 是 Apache 服务器自带的一个web压力测试工具,简称ab。
ab又是一个命令行工具,对发起负载的本机要求很低,根据ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问,因此可以用来测试目标服务器的负载压力。
总的来说ab工具小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。

ab性能指标

在进行性能测试过程中有几个指标比较重要:

1.吞吐率(Requests per second)

服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

2.并发连接数(The number of concurrent connections)

并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

3.并发用户数(Concurrency Level)

要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。

4.用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:

Time per request=Time taken for tests/(Complete requests/Concurrency Level)

5.服务器平均请求等待时间(Time per request:across all concurrent requests)

计算公式:处理完成所有请求数所花费的时间/总请求数,即:Time taken for/testsComplete requests

可以看到,它是吞吐率的倒数。同时,它也等于用户平均请求等待时间/并发用户数,即:Time per request/Concurrency Level

ab安装

centos下安装ab非常简单,直接用yum就可以安装了:yum install -y httpd-tools

看帮助信息,使用ab -help,其中最主要的是-c 并发数-n 总的连接数

ab -help
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
    -n requests     要执行请求总数,默认会执行一个请求
    -c concurrency  一次执行多个请求的数量,也就是并发数
    -t timelimit     用于基准测试的最大秒数,使用它在固定的总时间内对服务器进行基准测试。默认情况下,没有时间限制。
    -s timeout      超时之前等待的最大秒数。 默认值是30秒。
    -b windowsize  TCP发送/接收缓冲区的大小,以字节为单位。
    -B address     进行传出连接时要绑定的地址。
    -p postfile     包含数据到POST的文件。 还请记住设置-T。
    -u putfile     包含PUT数据的文件。 还请记住设置-T 。
    -T content-type  Content-type用于POST / PUT数据的内容类型内容类型标题,例如:'application/x-www-form-urlencoded' 默认是' 'text/plain'
    -v verbosity    verbosity 要打印多少个疑难解答信息,设置详细级别 - 4和以上打印标题信息,3和以上打印响应代码(404,200等),2和以上打印警告和信息。
    -w             以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
    -i              执行HEAD请求,而不是GET。
    -x attributes   用作<table>的属性的字符串。 属性被插入<table here>。
    -y attributes  用作<tr>的属性的字符串。
    -z attributes   用作<td>的属性的字符串。
    -C attribute    将cookie添加到请求。 参数通常采用名称=值对的形式。 这个字段是可重复的。
    -H attribute   例如 ‘Accept-Encoding: gzip’ 插入所有普通标题行之后

    -A attribute   添加基本的WWW认证,该属性是一个冒号分隔的用户名和密码,auth-username:password

    -P attribute     添加基本代理验证,属性是一个冒号分隔的用户名和密码,proxy-auth-username:password

    -X proxy:port   使用代理服务器和端口号。
    -V           打印版本号并退出。
    -k             使用HTTP KeepAlive功能。
    -d            不要显示百分点服务表。
    -S           不要显示信心估计和警告。
    -q            做超过150个请求时不要显示进度。
    -g filename    将收集的数据输出到gnuplot格式文件。
    -e filename    输出提供百分比的CSV文件。
    -r             不要退出套接字接收错误。
    -h            显示使用情况信息(此消息)。
    -Z ciphersuite  密码套件指定SSL / TLS密码套件(请参阅openssl密码)
    -f protocol    指定SSL / TLS协议 (SSL3, TLS1, TLS1.1, TLS1.2 or ALL)

ab压测示例

请求并发数为10, 总共发100个请求,测试地址:https://199604.com/

demo:ab -c 10 -n 100 https://199604.com/

 ab -c 10 -n 100 https://199604.com/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 199604.com (be patient)...


..done


Server Software:        nginx
Server Hostname:        199604.com
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128

Document Path:          /
Document Length:        54241 bytes

Concurrency Level:      10
Time taken for tests:   24.670 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      5454600 bytes
HTML transferred:       5424100 bytes
Requests per second:    4.05 [#/sec] (mean)
Time per request:       2466.981 [ms] (mean)
Time per request:       246.698 [ms] (mean, across all concurrent requests)
Transfer rate:          215.92 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       23   60 127.5     32    1055
Processing:  1847 2156 257.6   2094    3224
Waiting:     1726 2055 215.4   2006    2891
Total:       1876 2216 294.5   2133    3264

Percentage of the requests served within a certain time (ms)
  50%   2133
  66%   2201
  75%   2281
  80%   2335
  90%   2719
  95%   2949
  98%   3261
  99%   3264
 100%   3264 (longest request)

一般测试环境服务器,和压力测试ab的服务器不要用同一个,要不然对整个结果会有影响

发表评论

您的电子邮箱地址不会被公开。