今天在用Apache自带的ab工具做以下简单的压测,本来是随便填几个参数,发现ab在1000并发以上报错:apr_socket_recv "connection reset by peer" 104
我用的是当前最新版本编译的,Apache 2.4.23
出了这样的问题,作为小白的我直接谷歌,然后百度,找到的都是一些看起来好高大上的答案,但是我并没有实验成功。
其中有一个是修改源代码的,通过这个答案的启发,我发现根本不用修改任何代码或者被测webserver的系统配置(这里仅针对ab出现的这个错误,如果是要调优webserver不在此范围内)
ab提供了一个参数:-r
这个参数的意思是当出现“receive error”,即接收数据错误时是否退出,默认是退出的,所以会出现上述的问题,加上这个标志就表示不退出了,有源码为证,如下:
源码路径: {apache_root_path}/support/ab.c