如何使用Apache的ab工具进行网站性能测试_HTTP压力测试工具
压力测试、相信大家都有做过吧、或者是即将开始做、那么用什么工具来进行压力测试呢
Apache附带的压力测试工具ab、非常容易使用、并且完全可以摸你各种条件对Web服务器发起测试请求
ab可以直接在Web服务器本地发起测试请求、这对于需要了解服务器的处理性能至关重要
因为它不包括数据的网络传输时间以及用户PC本地的计算时间
下面我们开始压力测试(环境说明:win7、需要在命令行cmd中切换至ab.exe所在目录)
执行以下命令:
ab -n1000 -c10 http://localhost/index.php/
执行结果如下:
This is ApacheBench, Version 2.3 <$Revision: 655654 &$gt; Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache/2.2.21 Server Hostname: localhost Server Port: 80 Document Path: /index.php/ Document Length: 0 bytes Concurrency Level: 10 Time taken for tests: 1.047 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 187000 bytes HTML transferred: 0 bytes Requests per second: 955.06 [#/sec] (mean) Time per request: 10.471 [ms] (mean) Time per request: 1.047 [ms] (mean, across all concurrent requests) Transfer rate: 174.41 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.5 0 4 Processing: 2 10 4.5 9 42 Waiting: 2 10 4.5 9 41 Total: 2 10 4.5 9 42 Percentage of the requests served within a certain time (ms) 50% 9 66% 11 75% 13 80% 15 90% 17 95% 18 98% 20 99% 21 100% 42 (longest request)
1、执行ab时3个参数的意思分别表示:
-n1000 :总请求数为1000
-c10 :并发用户数为10
http://localhost/index.php/ :表示这些请求的目标url
2、ab测试结果的各项说明:
Server Software:表示被测试的Web服务器软件名称
Server Hostname:表示请求的URL中的主机名称、这里是localhost
Server Port:表示被测试的Web服务器软件的监听端口
Document Path:表示请求的URL中的根绝对路径
Document Length:表示HTTP响应数据的正文长度
Concurrency Level:表示并发用户数、这是我们设置的参数
Time taken for tests:表示所有这些请求被处理完成所要花费的总时间
Complete requests:表示总请求数、这也是我们设置的参数
Failed requests:表示失败的总请求数、这里的失败指请求在连接服务器、发送数据、接收数据等环节发生异常、以及无响应超时等情况
Total transferred:表示所有请求的响应数据长度总和、包括HTTP响应的头信息和正文数据的长度
HTML transferred:表示所有请求的响应数据中正文数据的总和
Requests per second:表示服务器吞吐率(这是我们应该重点关注的)
Time per request:表示用户平均请求的等待时间
Time per request (mean, across all concurrent requests):表示服务器平均请求处理时间
Transfer rate:表示这些请求在单位时间内从服务器获取的数据长度
Percentage of the requests served within a certain time (ms):这部分数据描述每个请求处理时间的分布情况