apache---压力测试工具ab.exe

本文详细介绍Linux环境下使用ab工具进行性能测试的方法,包括命令参数说明、常见错误解析及配置优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux中使用

默认安装在/usr/bin/ab

/usr/bin/ab -n 100 -c 100 http://192.168.4.51/ci/index.php/home/login/index

-n : 请求次数

-c :并发数,即同时多少人访问

Server Software:        web服务器软件及版本
Server Hostname:        请求的地址
Server Port:            请求的端口

Document Path:          请求的页面路径
Document Length:        页面大小

Concurrency Level:      并发数
Time taken for tests:   测试总共花费的时间
Complete requests:      完成的请求数
Failed requests:        失败的请求数
Write errors:           写入错误
Total transferred:      总共传输字节数,包含http的头信息等
HTML transferred:       html字节数,实际的页面传递字节数
Requests per second:    每秒处理的请求数,服务器的吞吐量(重要)
Time per request:       平均数,用户平均请求等待时间
Time per request:       服务器平均处理时间
Transfer rate:          平均传输速率(每秒收到的速率)

实例

Server Software:        Apache/2.2.15
Server Hostname:        192.168.4.51
Server Port:            80

Document Path:          /ci/index.php/home/login/index
Document Length:        2079 bytes

Concurrency Level:      100------------------------并发数
Time taken for tests:   1.636 seconds--------------花费的总时间
Complete requests:      100------------------------请求次数
Failed requests:        0--------------------------失败次数
Write errors:           0
Total transferred:      246800 bytes
HTML transferred:       207900 bytes
Requests per second:    61.13 [#/sec] (mean)-----------------一秒完成多少个请求
Time per request:       1635.852 [ms] (mean)-----------------<span style="font-family: Arial, Helvetica, sans-serif;">100人请求一次的时间</span>
Time per request:       16.359 [ms] (mean, across all concurrent requests)----------------1人请求一次的时间
Transfer rate:          147.33 [Kbytes/sec] received

其它注意事项
1)
ab并发数不能大于请求数,会提示


ab: Cannot use concurrency level greater than total number of requests


2)
请求数默认不能超过1024个,会提示


socket: Too many open files (24)


可用ulimit -n命令修改,例如:ulimit -n 8192 (设置用户可以同时打开的最大文件数)。


3)
并发数默认不能大于20000个,会提示


ab: Invalid Concurrency [Range 0..20000]


需要修改apache源代码support目录下ab.c文件,找到:
#define MAX_CONCURRENCY 20000
将宏定义的值改大,重新编译安装apache。


4)
提示


apr_socket_recv: Connection reset by peer (104)
其实并发数超过服务器硬件负荷就会报这个错误

网上说是apr-util有些问题,不太稳定,多试几次就好了。


5)
还有单独的apache bench源码包,及如何单独安装ab教程
下载:http://apachebench-standalone.googlecode.com/files/ab-standalone-0.1.tar.bz2
安装教程:https://code.google.com/p/apachebench-standalone/wiki/HowToBuild


6)测试时发现有如下错误


...
Failed requests:        998
   (Connect: 0, Receive: 0, Length: 998, Exceptions: 0)
...


是因为在测试动态页面时,返回的长度和第一次不同,所以ab就判断失败了,对于动态页面这是合理的。可参考:http://mib168.iteye.com/blog/1299990

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值