对于广大的编程人员来说压力测试是永远不会避免的一步,正如测试虐我千百遍我待测试如初恋下面小弟说一下自己遇到的压力测试的问题,个人拙见,仅供参靠!!!
一般情况下我们在windows平台上进行开发,那么开发环境的要么是Lnmp 要么就是 Lamp 也有的人用环境的集成包,不管用什么只要是apache就好,正如所说小弟使用的就是apache,下面就是我在用apache进行压力测试的时候的问题,通过 cmd命令行进行测试如下图报错
看见这个报错之后只听大脑中嗡的一声,我了个日,为啥报错啊,但是经过查询之后感觉自己这个问题很好解决
这个问题的原因就在于我们的参数问题,首先普及一下参数,正如大家所见我们在命令中使用了 -r -n -c 那么他们的具体含义如下
-r 指定接收到错误信息时不退出程序
-n 即requests,用于指定压力测试总共的执行次数
-c 即concurrency,用于指定压力测试的并发数
那么经过这几个参数我们就能总结出这个问题的原因应该就是我们设置的并发参数过大造成的所以进行更改
更改之后完美执行压力测试!!!
再说一下其他的参数
-t 即timelimit,等待响应的最大时间(单位:秒)
-d 不显示百分比
-h 显示用法信息,其实就是ab -help
其实这种情况下还有另一种的解决办法
1、停止Apache服务;
2、找到apache/conf/httpd.conf文件,用文本编辑器打开找到这两行:
# Server-pool management (MPM specific)
# Include conf/extra/httpd-mpm.conf
把第二行include........这行的注释去掉。
3、找到apache/conf/extra/httpd-mpm.conf文件,打开,找到:
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
把上面的150调大,Windows下最大为1920.
注意:尖括号里的名字是winnt,不要看错了
以上就是小弟在自己测试的时候遇到的问题并且解决的方法,以上是自己拙见希望帮助大家