该工具是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次。会出现以下结果。

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

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

  1. apr_socket_connect():由于目标计算机积极拒绝,无法连接。   (730061)
  2. 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

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

  1. Compiledin modules:
  2. core.c
  3. mod_win32.c
  4. mpm_winnt.c 这是为winnt模式
  5. http_core.c
  6. mod_so.c

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

  1. <IfModulempm_winnt_module>
  2. ThreadsPerChild        1000
  3. MaxConnectionsPerChild   0
  4. </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中修改对应的地方即可。如下

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

http://blog.csdn.net/zhangzmb/article/details/51884011

PHP的压力测试工具ab.exe 和mpm介绍提高并发数的更多相关文章

  1. Apache -- 压力测试工具ab.exe

    ab全称ApacheBench是Apache超文本传输协议(HTTP)的性能测试工具.是描绘当前所安装的Apache的执行性能, 主要是显示你安装的Apache每秒可以处理多少个请求Apache自带的 ...

  2. Apache自带压力测试工具ab用法简介

    ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...

  3. Apache中压力测试工具ab的操作说明

    1.压力测试工具ab(ApacheBench)的简单说明 1)     网站性能压力测试是性能调优过程中必不可少的一环.只有让服务器处在高压情况下才能真正体现出各种设置所暴露的问题.Apache中有个 ...

  4. apache自带压力测试工具ab的使用及解析

    当你搭建了apache服务器并在上面部署了web网站,在网站运行前,为了使apache服务器的性能得到更好的应用,我们可以先对其进行压力测试.进行压力测试其实非常简单,我们也不用再额外下载安装什么测试 ...

  5. 压力测试工具ab及centos下单独安装方法

    压力测试工具Ab简介 Apache安装包中自带的压力测试工具 Apache Benchmark(简称ab) 简单易用,这里就采用 ab作为压力测试工具了. 1.独立安装 ab运行需要依赖apr-uti ...

  6. httpd的压力测试工具-ab工具使用案例

    httpd的压力测试工具-ab工具使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.httpd自带的工具程序 事实上,在我们安装完Apache之后,它默认就会给我们安 ...

  7. 压力测试工具 ab

    ab 是Apache 自带的一个压力测试工具,命令行,是 ApacheBench 命令的缩写. ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基 ...

  8. PHP测试与优化(1)-- Apache自带的压力测试工具ab(apache bench) - 简单使用

    ab是apache自带的网站压力测试工具,能够测试网站在一定时间内的发生高并发时的反应. 使用 1.进入apache的bin文件夹 2.模拟并发级别为100,请求数为1000个的api数据请求数量测试 ...

  9. 压力测试工具ab的使用

    ab是Apache自带的HTTP压力测试工具,全称是ApacheBench 路径为\Apache\bin\ab.exe 参数文档: http://httpd.apache.org/docs/2.2/p ...

随机推荐

  1. ThinkPHP之APP_DEBUG给我带来的问题

    1.刚开始学习Thinkphp,在模块分组之后,自己配置了模块分组后,发现打不开网页了,分组配置如图 2.问题现象如图 在处理空模块时写的函数也不能运行 这时我很困惑,一直检查自己的拼写和配置没发现错 ...

  2. 根据PHP手册什么叫作变量的变量?

    在最近做的一个项目中,发现了一个新的概念,关于在PHP中使用变量的变量.在的程序中,需要在一个页面同时更新多个记录,在经过相当长时间的痛苦思索之后,脑海中偶然地闪现出了变量的变量(variable v ...

  3. 给php增加gd库(转)

    1.安装zlib tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure --prefix=/usr/local/zlib make make ins ...

  4. 【翻译】Kinect v1和Kinect v2的彻底比较

      本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较.   ...

  5. ThinkPHP中的三大自动简介

    ThinkPHP中的三大自动简介 文章TAG:thinkphp 自动简介 时间:2014-08-23来源:商业源码网 作者:源码库 文章热度: 186 ℃ 过期已备案域名,注册就能用!终身VIP会员, ...

  6. Class Abstraction -- Object Interfaces

    <?php /* PHP 5 introduces abstract classes and methods. Classes defined as abstract may not be in ...

  7. global.asax、global.asax.compiled、PrecompiledApp.config三者关系

    global.asax用WebDeploy发布后,会在bin下面产生一个global.asax.compiled,同时根目录下产生PrecompiledApp.config. 正常情况下global. ...

  8. nrf51822-配对绑定实现过程

    关于配对绑定的一些原理内容这里不再重复介绍,看之前的几篇文档,静态密码,动态密码,连接时触发配对就可以了. 配对绑定的内容可能比较难懂,升入的学习需要去看规范,将前面的几篇相关文档看一遍实验一边再去看 ...

  9. Best practice: escape, or encodeURI / encodeURIComponent

    escape() Don't use it, as it has been deprecated since ECMAScript v3. encodeURI() Use encodeURI when ...

  10. 创建数据库指定路径sql

    create database stuDB on  primary  -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/    name='stuDB_data',  - ...