网站上线之前一般都会做下抗压能力测试,比如并发和最大请求数等。其实我们可以使用 httpd(ab) 来模拟测试。
ubuntu上安装 Ab
使用命令 sudo apt-get install httpd
安装,有时你会得类似 “Package httpd is a virtual package provided by: “的错误提示;这是因为httpd是作为一个lib,会被给出的包所自动安装,所以随便选择一个提示的包就好,比如选择 apache2-mpm-worker 2.2.22-6ubuntu5.1
。
sudo apt-get install apache2-mpm-worker 2.2.22-6ubuntu5.1
Ab命令的使用
使用ab命令进行测试的时候,主要用到的参数-c 和-n ; 其中-c 表示并发量(模拟同时多少人访问),-n表示一共发送的http请求数,所谓请求数量越大,数据相对越准确。
实战之 Ruby-China
测试语句:ab -c 20 -n 2000 http://ruby-china.org/
执行结果:
Server Software: nginx/1.4.2
Server Hostname: ruby-china.org
Server Port: 80
Document Path: /
Document Length: 33568 bytes
Concurrency Level: 20
Time taken for tests: 116.274 seconds
Complete requests: 2000
Failed requests: 1128
(Connect: 0, Receive: 0, Length: 1128, Exceptions: 0)
Write errors: 0
Non-2xx responses: 22
Total transferred: 68131781 bytes
HTML transferred: 66399247 bytes
Requests per second: 17.20 [#/sec] (mean)
Time per request: 1162.744 [ms] (mean)
Time per request: 58.137 [ms] (mean, across all concurrent requests)
Transfer rate: 572.22 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 144 70.0 140 1183
Processing: 18 1017 422.2 1005 2925
Waiting: 18 302 163.9 261 1429
Total: 37 1160 417.0 1147 3041
分析测试结果可知,ruby-china 使用的是nginx web 服务器,大约每秒可以处理17个请求,每个请求大概耗时1162ms, 网络流量572Kb/每秒 .