启用gzip压缩在我的Apache服务器之后(mod_deflate模块)我发现一致的是最终用户正在上比未压缩的响应较慢的平均200毫秒提供服务。

这是出乎意料的,所以我修改了压缩指令仅压缩文本/ HTML的响应,发射了Wireshark的,看着网络转储压缩前后。

下面是我的意见的 GET 的最小流量的网络中

压缩之前

 
Transactions on the wire: 46

Total time for 46 trans: 791ms
  i. TCP seq/ack:       14ms
 ii. 1st data segment: 693ms 
iii. Remaining:         83ms (27/28 data units transferred + tcp/ip handshakes)

压缩后

 
Transactions on the wire: 10

Total time for 46 trans: 926ms
  i. TCP seq/ack:       14ms
 ii. 1st data segment: 746ms 
iii. Remaining:        165ms  (5 out of 6 data units transfered)
压缩被设定

后可以清楚和理解的是,在金属丝的事务的数目比未压缩显著低。

然而,压缩数据部花更长时间来从源传输到目的地。

看来,压缩的额外的工作可以理解的服用时间,但不明白为什么发送的每个数据是在被压缩时显著慢。

我的压缩过程的理解是:

  1. GET Request is received by Apache
  2. Apache identifies resource
  3. Compress the resource
  4. Respond with compressed response

使用此方案,我假设第三步骤是(因为我们的响应的第一个段之前的步骤将需要较长的时间 - 的压缩+响应 - 但其余组块的我假定应就等于平均时间作为未压缩块,但它们不是。

谁能告诉我为什么......或者提出一个更好的方法来分析这种情况。也没有任何人前后对比有...我将不胜感激任何反馈/评论/问题

有帮助吗?

解决方案

我用测试不足以将两个场景比较(我认为小于100组的资源)。具有足够的测试 - 超过6000页的URL,它表明,压缩响应时间的第一个字节是由快200毫秒在服务的text / html,其中作为TTLB是更快通过在平均25毫秒

我还没有负载条件下测试此,我打算做并更新此答案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top