我用apache bench (ab)的一系列图像处理函数对一个笨重的PHP脚本运行了一系列测试。
当我修改我的PHP脚本以排除keep-alive HTTP头(而不是使用"keep-alive: timeout=1,max=20")时,速度报告大约快了30%。如果我添加了具有指定的超时和最大值的keep-alive标头,那么速度将再次变慢。
我用20个模拟用户和每个用户的20个连接运行了所有测试。
我正在运行apache,并通过DSO/ModRuid2连接php。在我的apache配置中,我将keepalive超时设置为1秒。
如果省略了值,我会尝试找出keep-alive HTTP头的默认值,并且我会尝试找出这些值是否是从系统中的其他地方导入的。
有人能给点建议吗?
发布于 2014-11-14 02:19:06
缺省情况下,ab会忽略Keep-alive标头--根据http://httpd.apache.org/docs/2.2/programs/ab.html上的ab文档
-k Enable the HTTP KeepAlive feature, i.e., perform multiple requests within one HTTP session. Default is no KeepAlive.
因此,在服务器上打开和关闭Keep-Alive似乎不太可能是导致问题的原因。
然而..。使用Keep-Alive的服务器将向客户端发送ping并等待响应。这应该是一个快速的ping/ack,如果它没有得到一个快速的确认,你的服务器应该断开连接,但可能是因为ab没有回答你的web服务器正在用不必要的连接弄乱管道。
试试ab -k,看看这是否会改变你的结果。
https://stackoverflow.com/questions/26446912
复制相似问题