【问题标题】:gzipped Apache response packet analysisgzipped Apache 响应包分析
【发布时间】:2009-08-03 20:25:32
【问题描述】:

在我的 Apache 服务器 (mod_deflate) 中启用 gzip 压缩后,我始终发现最终用户的服务平均比未压缩响应慢 200 毫秒。

这是出乎意料的,因此我将压缩指令修改为仅压缩文本/HTML 响应,启动了 wireshark 并查看了压缩前后的网络转储。

这是我对网络中流量最小的 GET 的观察

压缩前

在线交易:46 46个trans的总时间:791ms 一世。 TCP seq/ack: 14ms ii.第一个数据段:693ms 三。剩余时间:83ms(27/28 个数据单元传输 + tcp/ip 握手)

压缩后

在线交易:10 46个trans的总时间:926ms 一世。 TCP seq/ack: 14ms ii.第一个数据段:746ms 三。剩余时间:165 毫秒(传输 6 个数据单元中的 5 个)

设置压缩后,网络上的事务数量明显低于未压缩时,这一点很清楚且可以理解。

但是,压缩数据单元从源传输到目标需要更长的时间。

似乎可以理解,额外的压缩工作需要时间,但无法理解为什么压缩时发送的每个数据都明显变慢。

我对压缩过程的理解是:

1. Apache收到GET请求 2. Apache识别资源 3.压缩资源 4. 以压缩响应响应

使用这个方案,我假设第三步是(响应的第一段之前的步骤将花费更长的时间,因为我们正在 -- 压缩 + 响应 -- 但其余的我假设的块的平均时间应该与未压缩的块相同,但事实并非如此。

谁能告诉我为什么……或者建议一种更好的方法来分析这种情况。还有人有之前和之后的比较...我将不胜感激任何反馈/cmets/问题

【问题讨论】:

  • 这确实属于Serverfault。
  • 好的,我会跟进serverfault。谢谢

标签: apache compression gzip deflate mod-deflate


【解决方案1】:

我使用不足的测试来比较这两种情况(我认为少于 100 个资源)。经过充分的测试——超过 6000 个 url,它表明在提供 text/html 时,对第一个字节的压缩响应时间快了 200 毫秒,而 TTLB 平均快了 25 毫秒。

我还没有对此进行负载测试,我打算这样做并更新这个答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2014-01-18
    相关资源
    最近更新 更多