ab压力测试

介绍一款测试压力的工具 ab.exe  该工具程序是apache自带的(在C:xamppapachein目录下,具体目录根据自己安装的apache确定)。

基本用法,首先需要进入到cmd 控制台。

然后执行以下命令:

ab.exe –n 访问的总次数 –c  有多少人访问(并发量) 访问的页面url

实例:

ab.exe –n 10000 –c 100 http://locahost:8080/ab/test.php

执行以上命令会得到如下结果:红色的标注是我们需要注意的。

当我们把 –c 调整到1000时,发现apache瘫痪。

我们可以通过调整最大并发的方式来进行处理。下面我们来说说怎样调整apache的最大并发量。

MPM (多路处理模块, 即 apache采用怎样的方式来处理并发.), 主要有三种方式

  1:perfork 预处理进程方式

  2:worker 工作模式

  3:winnt  这个一般说是windows采用。

原理示意图:

如何设置我们的apache的最大并发数 ,步骤如下:

(1)    在httpd.conf 文件中 修改

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

(2)    确定当前的apahce是什么MPM模式

进入到 apache/bin

httpd.exe –l

 

说明: 看 mpm_xxx.c 如果xxx是 winnt 说明是winnt  ,另外还可能是 perfork 或者  worker

(3)    修改httpd-mpm.conf 文件.

<IfModule mpm_winnt_module>

    ThreadsPerChild      1000 

    MaxRequestsPerChild    0

</IfModule>

(4)    重启apahce ,测试(我测试将ThreadsPerChild 改为1000的时候最高 -c 可以到500,500以上就崩了。如果没有修改的话,500就会崩。)

因为在linux下,一般说采用的MPM是 perfork模式,我们看看如何配置.

<IfModule mpm_prefork_module>

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150   #并发量

    MaxRequestsPerChild   0  #一个进程对应的线程数,对 worker更用.

</IfModule>

给大家一个合理的建议配置. 对大部分网站,中型网站,配置:

<IfModule mpm_prefork_module>
              StartServers         5      #预先启动
              MinSpareServers      5
              MaxSpareServers      10  #最大空闲进程
              ServerLimit          1500   #用于修改apache编程参数
              MaxClients           1000   #最大并发数
              MaxRequestsPerChild  0

</IfModule>

如果你的网站pv值  百万

ServerLimit          2500   #用于修改apache编程参数
MaxClients           2000   #最大并发数

原文地址:https://www.cnblogs.com/573734817pc/p/10095204.html