ab压测

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

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。

Step 3 — ab 测试 PHP 网站

[root@daguanren ~]# ab -n1000 -c10 http://localhost/index.php
-n1000 表示总请求数为1000
-c10 表示并发用户数为10
http://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"

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

 

 

 

 

https://www.jianshu.com/p/c87eb4b1e480

介绍

  • 吞吐率(Requests per second)
    概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
    计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complete requests
    / Time taken for tests
  • 并发连接数(The number of concurrent connections)
    概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
  • 并发用户数(The number of concurrent users,Concurrency Level)
    概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。
  • 用户平均请求等待时间(Time per request) 计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
    Time per request = Time taken for tests /( Complete requests /
    Concurrency Level)
  • 服务器平均请求等待时间(Time per request: across all concurrent requests)
    计算公式:处理完成所有请求数所花费的时间 / 总请求数,即 Time taken for / testsComplete requests
    可以看到,它是吞吐率的倒数。 同时,它也=用户平均请求等待时间/并发用户数,即 Time per request /
    Concurrency Level
  • Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用
  • 在此提供 ab 在 centOS7 下的安装和使用方法

链接:https://www.jianshu.com/p/c87eb4b1e480
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ab是Apache HTTP服务器自带的一个压测工具,也可以独立使用。以下是ab的用法和一个简单的案例: 1. 安装ab ab通常与Apache HTTP服务器一起安装,可以通过以下命令确认ab是否已经安装: ``` ab -V ``` 如果输出包含"ApacheBench"字样,则表示ab已经安装。 如果没有安装,则可以通过以下命令安装: Ubuntu/Debian系统: ``` sudo apt-get install apache2-utils ``` CentOS/RHEL系统: ``` sudo yum install httpd-tools ``` 2. 使用ab进行压测 以下是一个例子: ``` ab -n 1000 -c 100 http://localhost:8080/index.html ``` 这条命令表示发起1000个请求,每次并发100个请求,访问http://localhost:8080/index.html页面,并输出压测结果。 3. 压测结果分析 ab的输出结果包含三个部分:请求的数量、请求的吞吐量和请求的延迟。其中,请求的数量和吞吐量可以直接用于评估系统的性能,而请求的延迟则可以用于优化系统的性能。 例如,以下是一条ab的输出结果: ``` Concurrency Level: 100 Time taken for tests: 2.256 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 130000 bytes HTML transferred: 11000 bytes Requests per second: 443.72 [#/sec] (mean) Time per request: 225.602 [ms] (mean) Time per request: 2.256 [ms] (mean, across all concurrent requests) Transfer rate: 56.24 [Kbytes/sec] received ``` 其中,Requests per second表示每秒钟处理的请求数量,Time per request表示每个请求的平均延迟。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值