Freebsd中的Apache2并发请求导致连接重置

时间:2016-08-29 01:37:01

标签: json ubuntu httprequest freebsd unix-socket

我目前正在尝试将我的Web服务器(基于php zendframework)从Ubuntu移动到FreeBSD。两台服务器都具有相同的硬件配置。迁移后,我做了服务器的JMeter测试(Http请求(Json),Concurrent = 200),FreeBSD服务器中的“吞吐量”是Ubuntu服务器的两倍,令人惊叹。

然而,当我将并发数增加到500时,由于“ java.net.SocketException:Connection reset ”,我看到几乎50%请求失败。但它在Ubuntu服务器中正常工作。

经过多次测试,我发现Ubuntu可以无误地处理1500并发的httprequest,FreeBSD服务器可以双倍速度处理200个并发请求而不会出错,但无法处理更多。为了验证结果,我尝试了AB命令。 **ab -c 200 -n 5000 127.0.0.1/responseController。如果¬-c参数超过200,它会失败并终止,但在Ubuntu中工作正常。

为了调试我做了以下事情: 1.以某种方式调整httpd.conf,/​​boot/loader.conf,/​​etc/sysctl.conf,但看起来没什么变化。 2.我尝试在Apache配置中切换到 mpn_worker_module 及其在php中的相关配置。没有任何改变,但是故障部分日志不同,显示“请求无法响应”而不是“java.net.SocketException:Connection reset”

我做了很多搜索,但找不到这个失败的原因。我虽然Json请求会等到响应或超时? 我不确定哪个配置文件或参数能够正常工作。

请帮忙。

1 个答案:

答案 0 :(得分:0)

感谢Michael Zhilin,是的" ipfw"做了什么导致了这个,是的" kern.ipc.soacceptqueue"是这种情况下的瓶颈。