如何使用Apache的ab工具进行网站性能测试_HTTP压力测试工具
2014-09-26 15:44:36  By: dwtedx

压力测试、相信大家都有做过吧、或者是即将开始做、那么用什么工具来进行压力测试呢

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):这部分数据描述每个请求处理时间的分布情况


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+