PHP使用Apache中的ab(ApacheBench)测试网站的并发量以及常见问题

AB(ApacheBench) 是 Apache 自带的超文本传输协议 (HTTP) 性能测试工具。 其设计意图是描绘当前所安装的 Apache 的执行性能, 主要是显示 Apache 每秒可以处理多少个请求。

打开Apache服务器的安装路径(以xampp为例来说明),在bin目录中有一个ab.exe的可执行程序,它就是要介绍的网站并发量测试工具。

一, 工具使用方法:

首先需要注意的是,直接双击是无法正确运行的。在Windows系统的命令行下,进入ab.exe程序所在的目录,执行改程序。

d:(回车/进入D盘)



cd D:\xampp\apache\bin 进入bin目录



启动ab,如果显示如下,则说明启动成功




二, 参数说明:

ab常用参数的介绍:

  -n requests :Number of requests to perform(总共的请求执行数,缺省是1);

  -c concurrency  : Number of multiple requests to make(并发数,缺省是1);

  -t timelimit :Seconds to max. wait for responses(测试所进行的总时间,秒为单位,缺省50000s);

  -p postfile : File containing data to POST. Remember also to set -T(POST时的数据文件)

-u putfile      File containing data to PUT. Remember also to set -T(GET时的数据文件)

  -w :  Print out results in HTML tables(以HTML表的格式输出结果)


三, 示例:

开始启动ab 测试

ab -n 10000 -c 2000 http://localhost:88/test/testXY.php 表示这个脚本运行10000次,2000并发(模拟2000个用户同时访问)


结果显示如下:



常见问题


问题1 apr_socket_connect(): 由于目标计算机积极拒绝,无法连接。 (730061) Total of 45

遇到这样的情况通常是你开的并行数量太多了。。。

比如:ab -c 1000 -n 10000 http://localhost/index.html 如此大的请求就会挂掉,只是还是有补救措施的,能够通过添加并发数上限解决问题,过程例如以下:


1、停止Apache服务;

2、找到apache/conf/httpd.conf文件,用文本编辑器打开找到这两行:
# Server-pool management (MPM specific)
# Include conf/extra/httpd-mpm.conf
把第二行include........这行的凝视去掉。

3、找到apache/conf/extra/httpd-mpm.conf文件,打开。找到:

<IfModule mpm_ winnt _module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>

把上面的150调大。Windows下最大为1920.

注意:尖括号中的名字是winnt,不要看错了

4、又一次启动Apache服务.

猜你喜欢

转载自blog.csdn.net/sym134/article/details/80248827