在学习ab工具之前,我们需了解几个关于压力测试的概念
吞吐率(Requests per second)
bin文件打开方法如下:1、首先打开此电脑,点击查看,勾选文件扩展名。2、右键点击bin文件,选择重命名,修改文件后缀,尝试txt、jpg、zip、pdf等常见格式。3、系统提示改变扩展名可能导致文件不可用,点击是,然后打开文件,。
概念:服务器并发处理能力的量化描述,单位是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。
ab工具简介
ab全称为:apache bench
在官网上的解释如下:
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
其他网站解释:
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,bin文件查看器app下载,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。,
下载ab工具
Window官方下载地址:
下载完成后解压,修改解压根目录下的conf/httpd.conf文件的端口配置,默认是80端口,应该是被占用了,无法安装,可以自行修改为其他,我在这里修改为8088端口,然后输入命令安装:httpd -k install
启动ab工具
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去,我是在bin目录下打开命令行的
开始测试
输入命令ab -n 100 -c 10其中-n表示请求数,-c表示并发数
其余命令请参见
有关 ab 命令的使用,我们可以通过帮助命令进行查看。如下:
[root@localhost bin]39;application/x-www-form-urlencoded&39;text/plain&39;Apache=1234&39;Accept-Encoding: gzip&39;t exit on socket receive errors.-hDisplay usage information (this message)-Z ciphersuiteSpecify SSL/TLS cipher suite (See openssl ciphers)-f protocol Specify SSL/TLS protocol(SSL3,TLS1,TLS1.1,TLS1.2 or ALL)
下面我们对这些参数,进行相关说明。如下:
参数
说明
-n
在测试会话中所执行的请求个数。默认时,仅执行一个请求。
-c
一次产生的请求个数。默认是一次一个。
-t
测试所进行的最大秒数。其内部隐含值是 -n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p
包含了需要 POST 的数据的文件。
-P
对一个中转代理提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即,是否发送了 401 认证需求代码),此字符串都会被发送。
-T
POST数据所使用的 Content-type 头信息。
-v
设置显示信息的详细程度 -4 或更大值会显示头信息,3 或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。
-V
显示版本号并退出。
-w
以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i
执行 HEAD 请求,而不是 GET。
-X
对请求使用代理服务器。
-x
设置 属性的字符串。
-y
设置
-z
设置
属性的字符串。
-C
对请求附加一个 Cookie 行。其典型形式是 name=value 的一个参数对,此参数可以重复。
-H
-A
对服务器提供 BASIC 认证信任。用户名和密码由一个:隔开,并以 base64 编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。
-h
显示使用方法。
-d
不显示 “percentage served within XX [ms] table” 的消息(为以前的版本提供支持)。
-e
产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比 gnuplot 格式更有用。
-g
1、首先双击打开电脑上的软媒魔方应用程序。2、然后在软媒魔方主界面找到【应用大全】,点击打开。3、在【磁盘文件】下找到虚拟光驱,点击打开。4、弹出“软媒虚拟光驱”窗口,点击上方的【加载镜像】。5、下一步就是选择你。
把所有测试结果写入一个 gnuplot 或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor 甚至 Excel 中。其中的第一行为标题。
-k
启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能。
-q
如果处理的请求数大于 150,ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 -q 标记可以抑制这些信息。
属性的字符串。
测试结果分析
上面的命令运行完毕后就出来测试报告了
这段展示的是web服务器的信息,可以看到服务器采用的是nginx,域名是wan.bigertech.com,端口是80
这段是关于请求的文档的相关信息,所在位置“/”,文档的大小为338436 bytes(此为http响应的正文长度)
这段展示了压力测试的几个重要指标
Concurrency Level: 100 ==>并发请求数
Complete requests: 1000 ==>完成的请求数
1)首先,为了确定“.bin”文件是否真的是PE光盘镜像文件。在这个文件上点击鼠标右键--->选择用记事本程序打开。需要注意的是如果本来此文件就有几百M,请不要用记事板打开测试这个文件!2)如果打开后是乱码!则证明这个文。
Failed requests: 0 ==>失败的请求数
Total transferred: 13701482 bytes ==>整个场景中的网络传输量
HTML transferred: 13197000 bytes ==>整个场景中的HTML内容传输量
Requests per second: 19.66 [#/sec] (mean) ==>吞吐率,大家最关心的指标之一,相当于 LR 中的每秒事务数,后面括号中的 mean 表示这是一个平均值
Time per request: 50.872 [ms] (mean,across all concurrent requests) ==>服务器平均请求处理时间,大家最关心的指标之三
这段表示网络上消耗的时间的分解
这段是每个请求处理时间的分布情况,50%的处理时间在4930ms内,66%的处理时间在5008ms内…,重要的是看**90%**的处理时间。
关于登录的问题
先用账户和密码登录后,用开发者工具找到标识这个会话的Cookie值(Session ID)记下来
如果只用到一个Cookie,那么只需键入命令: ab -n 100 -C key=value如果需要多个Cookie,就直接设Header: ab -n 100 -H “Cookie: Key1=Value1; Key2=Value2”
总结
总的来说ab工具ab小巧简单,上手学习较快,可以提供需要的基本性能指标,但是没有图形化结果,不能监控。因此ab工具可以用作临时紧急任务和简单测试。
同类型的压力测试工具还有:webbench、siege、http_load等
开始测试
如果你需要在命令行的任意路径下可以输入ab测试,可以把bin目录路径加到环境变量的path中去
我是在bin目录下打开命令行的 注意,下面的是错误的,因为需要在域名后加上/path
ab -n 100 -c 10
报错信息如下:
ab: invalid URLUsage: ab [options] [http://]hostname[:port]/path
必须要接有path 所以我换一下测试命令:
ab -n 100 -c 10
-n 表示请求数,-c 表示并发数. s为path,表示指定测试地址,不指定可能会报”ab: invalid url” 错误. 另外还有-t 表示多少s内并发和请求
测试出来的数据如下:
D:\apacheab\Apache24\bin>ab -n 100 -c 10is ApacheBench,Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss,Zeus Technology Ltd, to The Apache Software Foundation, www.baidu.com (be patient).....doneServer Software:BWS/1.1 /sec] (mean)# 60%的请求在400ms内返回 75%42680%46590%76195%93098% 119299% 1283 100% 1283 (longest request)
因为ab工具消耗小,所以有些人也用来进行ddos攻击,算一种ddos攻击工具
[Linux]ApacheBench(ab)压力测试工具
ab是apachebench命令的缩写。
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等
ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机
安装命令:yum -y install httpd-tools 查看版本命令:ab -V 查看参数说明:ab --help
ab的使用 常用方式:ab -c 500 -n 5000 http://localhost
[root@H__D /]测试服务器的名字Server Hostname:localhost请求端口Document Path:/HTTP响应数据的正文长度Concurrency Level:500所有这些请求被处理完成所花费的总时间 单位秒Complete requests:5000表示失败的请求数量Write errors: 0Total transferred:4230000 bytes 所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度Requests per second:12284.44 [吞吐量,计算公式:Complete requests/Time taken for tests总请求数/处理完成这些请求数所花费的时间Time per request: 40.702 [ms] (mean) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency LevelTransfer rate:10149.06 [Kbytes/sec] received。50%用户请求在7ms内返回66%7 98%用户请求在12ms内返回99% 12 100%404 (longest request)
1、MAC中应该是自带了Apache。
2、在使用ab命令时,并发了过高会出现错误:Too many open files,由于系统打开文件数量限制了。
查看系统打开文件数量,命令:ulimit -a
修改打开文件数量,修改成1024,命令:ulimit -n 1024
查看修改后情况,命令:ulimit -n
–d/p/9903959.html