使用ab进行web服务器压测详解

-X proxy:port Proxyserver and port number to use

-V Print version number and exit

-k Use HTTP KeepAlive feature

-d Do not show percentiles served table.

-S Do not show confidence estimators and warnings.

-g filename Output collected data to gnuplot format file.

-e filename Output CSV file with percentages served

-h Display usage information (this message)

参数很多,一般我们用 -c -n 参数就可以了。例如:

ab -c 2 -n 10 www.51ste.com/

ab使用详解

结果参数分析说明:

Document Path:测试页面

Document Length: 页面大小

Concurrency Level: 测试的并发数

Time taken for tests:整个测试持续的时间

Complete requests:完成的请求数量

Failed requests: 失败的请求数量

Write errors: 0

Total transferred: 整个过程中的网络传输量

HTML transferred: 整个过程中的HTML内容传输量

Requests per second: 最重要的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值

Time per request: 最重要的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值

Time per request: 每个连接请求实际运行时间的平均值

Transfer rate: 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

常见的一些坑

1)请求URL地址必须为指定格式 [http://]hostname[:port]/path,如果hostname后面不带“/”,大家可以试试会发生什么?

2ab发送的是http1.0请求。

3-t可以指定时间,-n指定发送请求总数,同时使用时压测会在-t秒或者发送了-n个请求之后停止。但是-t一定要在-n之前(abbug-n-t之前最多只会跑5s)。

4)为了使测试结果更可靠,单次压测时间应在2分钟以上。

理论上,压测时间越长,结果误差越小。同时,可以在瓶颈附近进行长时间压测,例如一个小时或者一天,可以用来测试系统稳定性。许多系统的bug都是在持续压力下才会暴露出来。

5)小心压测客户端成为瓶颈。

例如上传,下载接口的压测,此时压测客户端的网络上行,下行速度都会有瓶颈,千万小心服务器还没到达瓶颈时,客户端先到了瓶颈。此时,可以利用多客户端同时压测。

6ab可以将参数写入文件中,用此种方式可以测试上传文件的接口。此时需要配合-p -t 使用,如:ab -n 10000 -c 10 -p post_img.txt -T "multipart/form-data;type=img/jpg" http://xxxx/path

上一页12下一页


留言