codetc - 网站开发技术 首页 后端 服务器 查看内容

使用Apache的ab工具进行压力测试

2015-11-18 17:51| 发布者: CODETC| 查看: 1741| 评论: 0

之前我们有介绍过一款Web压力测试工具Siege,这次我们介绍一下Apache的ab工具,ab(本文使用的Windows上的Apache服务器,ab工具位于D:\Apache24\bin)非常容易使用,可以直接在Web服务器本地发起测试请求,这至关重要,因为有些时候我们需要测试的仅仅是服务器的处理性能,并不想掺杂着网络传输时间的影响。ab进行一切测试的本质都是基于HTTP的,所以可以说ab对于Web服务器软件的黑盒性能测试,获得的一切数据和计算结果,都是可以通过HTTP来解释的。

测试本机是否正确安装ab工具,在power shell上把当前目录定位到Apache中的bin,输入 .\ab –V 命令,如果安装正确,则会将其版本信息打印出来。

D:\Apache24\bin>.\ab -V
This is ApacheBench, Version 2.3 <$Revision: 1638069 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

好了,一切就绪,下面提供一个压力测试的实例:

命令窗口定位到ab所在的目录,输入命令 .\ab -n1000 -c10 http://www.codetc.com/index.php

结果如下:(由于本站的机子配置低得可怜,所以,结果非常不理想)



下面我们来解析这其中的一些参数

-n1000 表示请求总数为1000

-c10 表示并发用户数为10

http://www.codetc.com/index.php 表示这是请求的目标URL

 

测试结果也一目了然,测试出的吞吐率为:Requests per second: 2.75 [#/sec] (mean)

Server Software 表示被测试的Web服务器软件名称

Server Hostname 表示请求的URL主机名

Server Port 表示被测试的Web服务器软件的监听端口

Document Path 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型

Document Length 表示HTTP响应数据的正文长度

Concurrency Level 表示并发用户数,这是我们设置的参数之一

Time taken for tests 表示所有这些请求被处理完成所花费的总时间

Complete requests 表示总请求数量,这是我们设置的参数之一

Failed requests 表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为 “Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。

Total transferred 表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。

HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。

Requests per second 吞吐率,计算公式:Complete requests / Time taken for tests

Time per request 用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)

Time per requet(across all concurrent request) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level

Transfer rate 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。

Percentage of requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都在3655ms以下,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-268-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部