keep-alive标头默认值



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

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

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

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

我试图弄清楚如果省略了值,保持活动HTTP标头的默认值,以及这些值是否是从系统中的其他地方导入的。

有人能提出建议吗?

默认情况下,ab会忽略Keep-alive标头——根据http://httpd.apache.org/docs/2.2/programs/ab.html

-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,看看这是否会改变你的结果。

最新更新