Apache Bench对网站性能进行测试
2018-01-09 17:43
281 查看
1 简介
Apache Bench简称ab,是Apache附带的一个工具,可以用来测试网站性能。通过ab指定命令发送请求后,可以得到每秒传送字节数、每秒处理请求数、每请求处理时间等统计数据。
2 下载
要使用ab,需要先下载Apache,从Apache首页进入下载页:在下载页面中我们能看出,Apache目前最新的版本为2.4.17:
网上的教程大都是针对linux下ab的使用的,就不再赘述了。这里介绍一下Windows环境下ab的安装与使用。需要说明的一点,Apache官方只提供Apache的源码版,也就是source版,而不提供二进制版(Binaries)。一般来说各个平台下的Binaries版本都是一些社区或其它网站提供的,我们在Windows上使用ab,不可能拿着远吗再去用VS重新一遍吧,肯定直接用编译好的。所以在上图中选择Binaries,点进去,选择win32:
这里就能看到Windows平台下有关Apache的二进制版本的下载信息了。这里很明确的说明:
【
The Apache HTTP Server Project itself does not provide binary releases of software, only source code. Individual committers may provide binary packages as a convenience, but it is not a release deliverable.
If you cannot compile the Apache HTTP Server yourself, you can obtain a binary package from numerous binary distributions available on the Internet.
Popular options for deploying Apache httpd, and, optionally, PHP and MySQL, on Microsoft Windows, include:
ApacheHaus
Apache Lounge
BitNami WAMP Stack
WampServer
XAMPP
】
想获取二进制版本,可以选择一个网站来下载,这里我们选择第一个:
打开Apache Haus的网站:
在“Apache 2.4 Server Binaries”部分,选择“Apache 2.4.17 x64”这一项右边的德国国旗(看来镜像在德国):
3 依赖
这时候下载会自动开始,下载下来后:将其解压到一个盘符的根目录,比如C盘的根目录,或者D盘的根目录,例如解压到D盘,则为:
D:\Apache24
这很重要,一会儿会作出说明。
同时解压出来的还有一个html文件,这个文件一定要看看,里面对Apache的使用有哪些注意事项做出了说明,比较重要的有几点:
本机必须已安装“Visual C++ 2008 Redistributable Package”,如果没有安装,下载路径可以在刚才的下载页面找到。
Apache需要解压在任意一个盘符的根目录下,这就是所谓的“ServerRoot”,默认是配置在:{Apache24}\conf\httpd.conf这个文件中的。
准备好了之后,就可以运行bin目录下的httpd.exe文件,运行之后后台服务就启动起来了,任务管理器中可以看到两个进程:
这时候 在浏览器中输入:http://localhost/,如果能够看到Apache Haus的测试页面,就说明服务启动成功了。
这时候我们要使用Apache Bench的功能,在bin目录下,运行ab.exe就能够看到提示信息了:
这里一定要注意url中的path,也就是图中标红的地方,如果你要测试百度首页,那么url一定要写成:
http://www.baidu.com/path1
而不是:
http://www.baidu.com1
也就是一定要在需要测试的url末尾加一个path,否则测试时总会认为url非法。
4 使用方式
例如有一个请求,请求命令为:ab.exe -n 500 -c 50 http://ip:8081/path[/code]1
注意这里的:
-n 500
是说本次测试请求总数为500,而:
-c 50
是说本次请求并发数为50。
测试结果的截图如下:
如图列出了“请求命令”、“测试结果主体”、“所测试数据返回时间的百分比”,其中,“测试结果主体”如下所示:Concurrency Level: 50 Time taken for tests: 32.626 seconds Complete requests: 500 Failed requests: 0 Non-2xx responses: 500 Total transferred: 564000 bytes HTML transferred: 479500 bytes Requests per second: 15.33 [#/sec] (mean) Time per request: 3262.587 [ms] (mean) Time per request: 65.252 [ms] (mean, across all concurrent requests) Transfer rate: 16.88 [Kbytes/sec] received1
2
3
4
5
6
7
8
9
10
11
5 各参数含义并发量。
5.1 Concurrency Level整个测试所用的时间。
5.2 Time taken for tests完成的请求数。
5.3 Complete requests失败的请求数。
5.4 Failed requests如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。
5.5 Non-2xx responses表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。
5.6 Total transferred表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。
5.7 HTML transferred:吞吐率。要清楚吞吐率是与并发数相关的,即使请求总数相同,但如果并发数不一样,吞吐率还是很可能有很大差异的。
5.8 Requests per second
计算公式:Complete requests/Time taken for tests用户平均请求等待时间。也就是一次并发(在本例中为50)总的时间。
5.9 Time per request(mean):
计算公式:Time token for tests/(Complete requests/Concurrency Level)。服务器平均请求等待时间。也就是一次请求(在本例中也就是500中的平均每一次)所需时间。
5.10 Time per request(mean, across all concurrent requests)
计算公式:Time taken for tests/Complete requests
正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level。表示这些请求在单位时间内从服务器获取的数据长度。
5.11 Transfer rate
计算公式:Total trnasferred/ Time taken for tests
这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。
5.12 Percentage of requests served within a certain time(ms)
相关文章推荐
- 使用Apache Bench对网站性能进行测试
- 用 Apache Bench 进行网站性能测试
- 使用Apache Bench对网站性能进行测试
- 使用Apache的ab工具进行网站性能测试
- 使用ApacheBench进行网站性能测试
- 使用loadrunner和HttpClient对163网站进行性能测试实验
- 使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 淘宝网大规模网站如何进行性能测试!
- 使用Apache的ab工具进行网站性能测试
- 使用Apache的ab工具进行网站性能测试
- 使用Apache的ab工具对网站进行性能测试
- 网站服务器压力Web性能测试工具Webbench,Apache Bench,http_load
- 使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 如何使用Apache的ab工具进行网站性能测试
- 记在VMware虚拟机中对网站进行性能压力测试的经历