2

Centos 7 ab 压力测试安装与解释

 1 year ago
source link: https://www.daguanren.cc/post/ab_test_introduction.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Step 1 — ab (apache benchmark) 安装

yum -y install httpd-tools

安装完后输入 ab -V 显示类似如下:

alt

Step 2 — ab 测试的命令参数

alt

参数说明:

-n 即requests,用于指定压力测试总共的执行次数。-c 即concurrency,用于指定的并发数。-t 即timelimit,等待响应的最大时间(单位:秒)。-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。-v 即verbosity,指定打印帮助信息的冗余级别。-w 以HTML表格形式打印结果。-i 使用HEAD请求代替GET请求。-x 插入字符串作为table标签的属性。-y 插入字符串作为tr标签的属性。-z 插入字符串作为td标签的属性。-C 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。-H 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。-A 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。-P 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。-X 指定使用的和端口号,例如:"126.10.10.3:88"。-V 打印版本号并退出。-k 使用HTTP的KeepAlive特性。-d 不显示百分比。-S 不显示预估和警告信息。-g 输出结果信息到gnuplot格式的文件中。-e 输出结果信息到CSV格式的文件中。-r 指定接收到错误信息时不退出程序。-h 显示用法信息,其实就是ab -help。haml

Step 3 — ab 测试 PHP 网站

[root@daguanren ~]# ab -n1000 -c10 http://localhost/index.php
-n1000 表示总请求数为1000-c10 表示并发用户数为10http://localhost/index.php 表示这些请求的目标URL
alt

测试结果一目了然,我们看到吞吐率显示 17258.34 reqs/s 。

接下来测试并发数为129个和500个用户的吞吐率变化情况。

alt
alt

可以看到并发数为129个时,吞吐率显示 18017.69 reqs/s 。再往后随着并发数的递增,吞吐率开始大幅下降,当并发数为500个时,吞吐率下降为 4780.30 reqs/s 。(实际130个并发数时,已经骤降到不到 5000 reqs/s 的吞吐率)。

如果是 POST 请求:

[root@daguanren ~]# cat postData.txt name=daguanren&site=www.daguanren.cc
ab -n 1000 -c 100 -p postdata.txt -T application/x-www-form-urlencoded "http://localhost/index.php"

所以,并发数存在一个最优值可以使吞吐率达到最大。当并发数继续增加时,服务器的硬件配置无法跟上节奏,导致吞吐率骤降。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK