在大型web开发过程中, 高并发的抗压能力是我们网站能够正常运作的关键,我们在部署上线之前需要对自己的网站进行抗压测试,Apache自带了一种工具ab.exe(apache/bin/ab.exe) 它能够在本地检测网站高访问量和高并发时的抗压能力,
它的用法很简单:
打开cmd控制台 (win+r 输入cmd enter)
提示:
当打开cmd后,需要进入apache/bin/目录下进行操作,若想打开后直接使用,请配置环境变量path
常用指令:
ab.exe -n 访问次数 -c 多少人访问(并发量) 访问页面的url
例如:
ab.exe -n 5000 -c 100 http://localhost/test.php
这里 :
Time taken for tests 代表这次测试共用了多久
Requests per second 代表1s中访问多少次
Time per request 代表100个人每人访问1次所需要的多久
Time per request 代表1个人访问一次需要多久
常见错误:
解决方法:
由于这里-c 1000,并发量1000过高,导致服务器瘫痪,所以不仅仅是拒绝,而是积极拒绝。
此时,需要进入apache/conf/extra/httpd-mpm.conf 修改并发量,这里牵涉到MPM(多路处理模块:prefork,worker ,winnt),可通过httpd.exe -l查看属于哪一种(windows下大多是winnt)进行配置,这里不多阐述。
解决方法:
当时这个问题我纠结了几个小时以为是apache出错,重装好几遍依旧出错,最终错误是在hosts文件中 localhost没有解析127.0.0.1
你可以将localhost改为127.0.0.1即可,或者 打开 C:/WINDOWS/system32/drivers/etc/hosts ,在最后面加上 127.0.0.1 locahost即可。
最后,就算apache怎么配置,在并发达到大概3000以上,不管怎么配置apache都会瘫痪,这时候只能利用其他技术来支持高并发,例如负载均衡+服务器集群,或者memcache内存缓存等等。感兴趣的开发者可以自行查询