keep-alive头默认值

时间:2014-10-19 03:10:28

标签: http http-headers

我在一个沉重的PHP脚本上运行了一堆测试,其中包含一堆带有apache bench(ab)的图像处理函数。

当我修改我的PHP脚本以排除保持活动的HTTP标头(而不是使用" keep-alive:timeout = 1,max = 20")时,速度报告的速度提高了约30%。如果我添加了keep-alive标头并指定了超时和最大值,那么速度将再次变慢。

我用20个模拟用户和20个连接运行所有测试。

我通过DSO / ModRuid2连接php运行apache。在我的apache配置中,我将keepalive超时设置为1秒。

如果省略了值,我试图找出保持活动的HTTP标头的默认值,并且我试图弄清楚这些值是否是从系统中的其他位置导入的。

有人可以提供建议吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,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没有回答你的网络服务器正在弄乱管道不必要的联系

尝试ab -k以查看是否会改变您的结果。