对于网站性能测试来说,一般我们会使用loadrunner来实现,而它过于庞大,使我们感到有些不爽,而今天介绍的ApacheBench工具,它小而精,使用简单,效果直观,可以说,是比lr更好用的性能测试工具.
对于ApacheBench我们可以从这里下载
下面介绍几个概念
1:吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义,1:吞吐率和并发用户数相关;2:不同的并发用户数下,吞吐率一般是不同的。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests
2:并发连接数(The number of concurrent connections)
并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。
3:并发用户数(The number of concurrent users,Concurrency Level)
要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。
下面主要说一下它的几个主要的参数
运行参数
请求为100,并发为10,命令如下:ApacheBench -n100 -c10 http://uri
运行结果
Benchmarking www.cnblogs.com (be patient)
Completed 100 requestsCompleted 200 requestsCompleted 300 requestsCompleted 400 requestsCompleted 500 requestsCompleted 600 requestsCompleted 700 requestsCompleted 800 requestsCompleted 900 requestsFinished 1000 requestsServer Software:Server Hostname: www.cnblogs.comServer Port: 80Document Path: /Document Length: 45373 bytesConcurrency Level: 10Time taken for tests: 45.299591 secondsComplete requests: 1000Failed requests: 0Write errors: 0Total transferred: 45679011 bytesHTML transferred: 45373000 bytesRequests per second: 22.08 [#/sec] (mean)Time per request: 452.996 [ms] (mean)Time per request: 45.300 [ms] (mean, across all concurrent requests)Transfer rate: 984.73 [Kbytes/sec] receivedConnection Times (ms) min mean[+/-sd] median maxConnect: 26 44 189.5 31 3035Processing: 89 405 583.3 284 5190Waiting: 30 143 344.6 97 5031Total: 116 450 611.7 315 5224Percentage of the requests served within a certain time (ms) 50% 315 66% 322 75% 331 80% 343 90% 408 95% 549 98% 3333 99% 3375 100% 5224 (longest request)