【问题标题】:keep-alive header defaultskeep-alive 标头默认值
【发布时间】:2014-10-19 03:10:28
【问题描述】:

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

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

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

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

如果省略了值,我正在尝试找出 keep-alive HTTP 标头的默认值,并且我正在尝试找出这些值是否是从系统的其他地方导入的。

谁能给点建议?

【问题讨论】:

    标签: http http-headers


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2011-09-14
      • 2016-09-07
      • 1970-01-01
      • 2012-09-20
      • 2015-11-15
      • 2013-02-24
      相关资源
      最近更新 更多