ApacheBench(ab)是一个非常实用的Web服务器的基准测试工具,它可以在命令行下运行。而且使用起来也是非常简单的。一分钟之内就可以快速的获取到测试的输出结果,使用ab也不需要特别的负载和性能测试的内容,安装ab也是一个很简单的事情,它虽然没有其他的更高级的软件的一些特性,但是,这阻止不了它是一个很好用的软件。
本文中使用的测试环境
测试环境如下:
OS:Ubuntu Server 12.04.1 LTS(LTS代表长期维护版本-LongTermSupport)
AWS: Micro Instance
网站系统: Wordpress 3.5.1,搭配 W3 Total Cache 插件(在Memcache中保存页面缓存)
网站服务器:Apache 2.2.2
在Web服务器本地运行ApacheBench
在Web服务器上直接运行下面的命令:
ab -n 500 -c 100 http://yoursite.com/
上面的命令会发出500个请求,每100个为一组。需要注意的一下这些点:
你可以增加总的请求数,但是这个数需要大于同时进行的任务数。
你可以增加参数 -H "Accept-Encoding: gzip,defalte" 来模拟更真实的请求,但是因为我们在同一台机器上进行的,所以没有网络的问题,这个参数可以忽略。
像这么高数量的请求测试需要在本地完成或者是在同一个局域网内完成,否则的话,可能会得到错误的结果,因为会有网络的延迟或者是服务器错误。实际的情况下,同一时间发出请求的用户不会来自同一台电脑。
这个请求没有模拟所有真实的环境。但是对于了解你网站的主要问题已经足够了。
ApacheBench的结果输出
下面就是由刚到的命令执行完成后得到的输出
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 infoheap.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
Server Software: Apache/2.2.22
Server Hostname: infoheap.com
Server Port: 80
Document Path: /
Document Length: 24359 bytes
Concurrency Level: 100
Time taken for tests: 8.978 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12305000 bytes
HTML transferred: 12179500 bytes
Requests per second: 55.69 [#/sec] (mean)
Time per request: 1795.684 [ms] (mean)
Time per request: 17.957 [ms] (mean, across all concurrent requests)
Transfer rate: 1338.39 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 2 18 117.2 3 1001
Processing: 92 1639 475.4 1771 3022
Waiting: 65 1583 455.4 1711 2930
Total: 96 1657 490.0 1780 3025
Percentage of the requests served within a certain time (ms)
50% 1780
66% 1866
75% 1895
80% 1915
90% 1973
95% 2421
98% 2622
99% 2654
100% 3025 (longest request)
ApacheBench负载测试输出的分析
下面是关于输出结果的相关的分析:
整个500次请求的数据传输为12305000bytes,差不多每个页面(每次请求)是 20K(未压缩状态下).这与我的主页大小一致.
所有的测试在8.978秒内完成,没有发现任何的错误.整个数字我还比较满意.
每秒请求数为:55.69,也是一个非常不错的数字.
每次请求耗时:1795.684毫秒(同时进行100各请求),因此平均结果为1795.684ms/100=17.957ms
传输速率:1338.39[kb/sec].因为我们是在本地做测试,所以整个值略高,完全可以忽略.
在请求的时序图上,你可以看到很多的请求需要等待一段时间,这可能是因为Apache需要根据请求序列进行相应.
总体来说,所有的结果都是非常好的.这次测试并没有测试出来网络的延迟,主要反映出来的问题是,同时100个请求到了服务器,服务器做出了响应.
绘制ApacheBench输出结果,图形显示
我们可以使用下面的命令得到图形绘制数据
ab -n 500 -c 100 -g out.data http://yoursite.com/
然后我们可以使用gnuplot来进行绘制,下图是我的绘制结果.
本文暂时没有评论,来添加一个吧(●'◡'●)