正文开始 <p>转自:http://blog.csdn.net/zhangzmb/article/details/51884011</p><p><br /></p><p>该工具是apache自带的,可以用它来测试网站的并发量有多大和某个页面的访问时间。</p><br />基本用法:<br /><br />1、 进入CMD,转到apache的bin目录下。<br /><br />2、 执行命令ab.exe -n 访问的问次数–c 多少人访问(并发量) 访问的地址如:ab.exe –n 1000 –c 100 http://localhost/index.PHP;<br /><br />如输入以下命令ab.exe-n 10000 -c 100 http://localhost/test/index.php,<br /><br />Index.php的内容为<br /><br /><?php<br /><br />for($i=0;$i<100;$i++){<br /><br /> echo$i.'|';<br /><br />}<br /><br /> <br /><br />该命令的意思为100个人访问该地址1W次。会出现以下结果。<br /><br /> <br />[plain] view plain copy<br /><br /> Server Software: Apache/2.4.4 #apache版本号 <br /> Server Hostname: localhost <br /> Server Port: 80 <br /> <br /> Document Path: /test/index.php <br /> Document Length: 5 bytes <br /> <br /> ConcurrencyLevel: 100 <br /> Time taken fortests: 54.111 seconds #访问的总时间(秒) <br /> Completerequests: 10000 #访问的总次数 <br /> Failed requests: 0 <br /> Write errors: 0 <br /> Totaltransferred: 2060000 bytes <br /> HTMLtransferred: 50000 bytes <br /> Requests persecond: 184.80 [#/sec] (mean) #每秒访问多少次 <br /> Time perrequest: 541.111 [ms] (mean) #这么多人(100)访问一次的时间 <br /> Time perrequest: 5.411 [ms] (mean, acrossall concurrent requests) #一个人访问一次花费的时间 <br /> Transfer rate: 37.18 [Kbytes/sec] received <br /><br /><br /><br /> <br /><br />另外,如果我们把并发数增加到500,即把命令调整成ab.exe -n 10000 -c 500 http://localhost/test/index.php它就会出现以下结果。<br /><br /> <br />[plain] view plain copy<br /><br /> apr_socket_connect():由于目标计算机积极拒绝,无法连接。 (730061) <br /> Total of 902 requestscompleted <br /><br /><br />原因是因为apache在windows下默认的最大并发访问量为150。我们可以设置confextra下的httpd-mpm.conf文件来修改它的最大并发数。在修改之前我们要说明一下,mpm是个什么东西<br /><br /> <br /><br />Mpm为多路处理模块,即apache采用怎么样的方式来处理并发,主要有三种方式<br /><br />1、 perfork 预处理进程方式(用进程服务)<br /><br />2、 worker 工作模式(用进程下的线程服务)<br /><br />3、 winnt这个一般是windos 下采用的。(针对windows)<br /><br />说完这个我们就可以动手修改配置文件了。步骤如下:<br /><br /> <br /><br />1、 打开httpd.conf配置文件,打开下面的配置<br /><br /># Server-poolmanagement (MPM specific)<br /><br />Include conf/extra/httpd-mpm.conf<br /><br />2、 确定当前 apache是mpm模式,CMD下进放到apache的bin目录输入指令httpd.exe –l<br /><br />会出现以下结果,就可知道它用的是什么模式<br />[plain] view plain copy<br /><br /> Compiledin modules: <br /> core.c <br /> mod_win32.c <br /> mpm_winnt.c 这是为winnt模式 <br /> http_core.c <br /> mod_so.c <br /><br /><br /><br />3、 修改httpd-mpm.conf文件,因为从上面可以看到,我的apache用的是winnt模式,所以在该文件下找到对应的winnt_module模块,修改参数,原先为150,我们把它修改成1000<br />[plain] view plain copy<br /><br /> <IfModulempm_winnt_module> <br /> ThreadsPerChild 1000 <br /> MaxConnectionsPerChild 0 <br /> </IfModule> <br /><br /><br /><br />4、 重启服务器<br /><br /> <br /><br />修改完之后我们重新运行上面的命令ab.exe-n 10000 -c 500 http://localhost/test/index.php<br /><br />它就会运行成功了,出现与ab.exe -n10000 -c 100 http://localhost/test/index.php时类似的效果。<br /><br />同理,如果是其它模式,则在httpd-mpm.conf中修改对应的地方即可。如下<br />[plain] view plain copy<br /><br /> <IfModule mpm_prefork_module> <br /> StartServers 5 #开始启动的进程 <br /> MinSpareServers 5 #最小准备进程 <br /> MaxSpareServers 10 #最大空闲进程 <br /> MaxRequestWorkers 1000 #最大并发数 <br /> MaxConnectionsPerChild 0 <br /> </IfModule> <br />
正文结束 |
阿里云、腾讯云 apache的vhost配置https | 利用PHP-Minify提高前端性能 |