PHP的压力测试工具ab.exe 和mpm介绍提高并发数


该工具是apache自代的,可以用它来测试网站的并发量有多大和某个页面的访问时间。

基本用法:

1、  进入CMD,转到apache的bin目录下。

2、  执行命令ab.exe  -n 访问的问次数–c 多少人访问(并发量) 访问的地址如:ab.exe –n 1000 –c 100 http://localhost/index.php;

如输入以下命令ab.exe-n 10000 -c 100 http://localhost/test/index.php

Index.php的内容为

<?php

for($i=0;$i<100;$i++){

         echo$i.'|';

}

 

该命令的意思为100个人访问该地址1W次。会出现以下结果。

 

Server Software:        Apache/2.4.4                                   #apache版本号
Server Hostname:        localhost
Server Port:            80
 
Document Path:          /test/index.php                     
Document Length:        5 bytes
 
ConcurrencyLevel:      100
Time taken fortests:   54.111 seconds                                 #访问的总时间(秒)
Completerequests:      10000                                          #访问的总次数
Failed requests:        0
Write errors:           0
Totaltransferred:      2060000 bytes
HTMLtransferred:       50000 bytes
Requests persecond:    184.80 [#/sec] (mean)                          #每秒访问多少次
Time perrequest:       541.111 [ms] (mean)                            #这么多人(100)访问一次的时间
Time perrequest:       5.411 [ms] (mean, acrossall concurrent requests)         #一个人访问一次花费的时间
Transfer rate:          37.18 [Kbytes/sec] received


 

另外,如果我们把并发数增加到500,即把命令调整成ab.exe -n 10000 -c 500 http://localhost/test/index.php它就会出现以下结果。

 

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

原因是因为apache在windows下默认的最大并发访问量为150。我们可以设置conf\extra下的httpd-mpm.conf文件来修改它的最大并发数。在修改之前我们要说明一下,mpm是个什么东西

 

Mpm为多路处理模块,即apache采用怎么样的方式来处理并发,主要有三种方式

1、  perfork 预处理进程方式(用进程服务)

2、  worker 工作模式(用进程下的线程服务)

3、  winnt这个一般是windos 下采用的。(针对windows)

说完这个我们就可以动手修改配置文件了。步骤如下:

 

1、  打开httpd.conf配置文件,打开下面的配置

# Server-poolmanagement (MPM specific)

Include conf/extra/httpd-mpm.conf

2、  确定当前 apache是mpm模式,CMD下进放到apache的bin目录输入指令httpd.exe –l

会出现以下结果,就可知道它用的是什么模式

Compiledin modules:
  core.c
  mod_win32.c
  mpm_winnt.c 这是为winnt模式
  http_core.c
  mod_so.c


3、  修改httpd-mpm.conf文件,因为从上面可以看到,我的apache用的是winnt模式,所以在该文件下找到对应的winnt_module模块,修改参数,原先为150,我们把它修改成1000

<IfModulempm_winnt_module>
    ThreadsPerChild        1000
    MaxConnectionsPerChild   0
</IfModule>


4、  重启服务器

 

修改完之后我们重新运行上面的命令ab.exe-n 10000 -c 500 http://localhost/test/index.php

它就会运行成功了,出现与ab.exe -n10000 -c 100 http://localhost/test/index.php时类似的效果。

同理,如果是其它模式,则在httpd-mpm.conf中修改对应的地方即可。如下

<IfModule mpm_prefork_module>
   StartServers             5                  #开始启动的进程
   MinSpareServers          5                 #最小准备进程
   MaxSpareServers         10                #最大空闲进程
   MaxRequestWorkers      1000            #最大并发数
   MaxConnectionsPerChild   0
</IfModule>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值